two months since the last entry, and a decent amount has shipped: the locked chapter grid, the shared progress bar, joining by link, optional google sign-in, multi-club support, and a manual entry path for when the book search doesn't find what you're looking for.
then april showed up and every single club was still stuck on march's book.
the months table had a status column — past, current, future, skipped — and the query driving the whole club page just asked for whichever row was marked current. that's the obvious way to write it. the problem is that nothing was ever going to flip that column when the calendar actually turned over. march stayed current forever, because "current" isn't something a date decides on its own, it's something someone has to go update.
what made it worse: the library page, which lists what a club's already read, was filtering for status = past. so march's book wasn't current and it wasn't past either. it just wasn't anywhere. gone.
the actual fix is boring — stop asking the column what month it is and ask the calendar instead. compare the row's year and month against today's actual year and month, and skip the status column for that decision entirely.
what i keep thinking about is that status was never really data, it was something i could've just computed and instead wrote down once and forgot about. i think i do this more than i'd like to admit — store a thing because it's convenient at the moment i'm writing the query, and quietly assume future-me will remember to keep it updated. future me does not remember. future me is currently me, and i genuinely didn't notice until a club member asked why march's book wouldn't go away.
if a value can just be worked out from a date i'm already storing, i don't think it should be its own column at all. it's not a fact about anything, it's a note i left myself that stopped being true the moment the month changed.

Comments (0)