Series: Weekend at Claude's — misadventures in building a production app with an AI anyone could mistake for the person who's going to make the whole thing happen
I was at the gate, waiting to board, doing this whole session on my phone — which feels about right for this project at this point. We'd just finished the notification frequency design: daily digests, per-org dials, a global cap so eight chatty orgs couldn't bury someone's phone. I'd had Claude check the architecture twice before writing any of it.
Then, thumb-typing between gate announcements, I sent one more message: "I forgot to ask about a reminder function for events."
Claude went and checked. There was nothing there.
What "nothing there" actually meant
Not underspecified. Not deferred to V2. Genuinely absent. The Add/Edit Event form has a description, dates, times, an all-day toggle, a repeat option, a color picker, two layers of sharing controls. No reminder field. The calendar sync mapping table — the one that carefully maps title to title, start time to start date, org color to event color — has no row for a reminder at all.
That's not a bug. It's a gap that's easy to miss precisely because everything around it was already so well thought out. When the surrounding design is thorough, an absence doesn't look like an absence. It looks finished.
The question underneath my question
What I'd actually asked was sharper than "can we add reminders": if the event already syncs to the phone's calendar, do we even need our own reminder on top of that?
The answer is genuinely "it depends," in a way that mattered. Calendar sync is opt-in, per org — on for the kid's school, off for the grocery co-op, say. Where it's on, stacking an Aphilaty notification on the calendar's own alarm is just noise. But for any event in an org where sync is off, there's no reminder at all unless Aphilaty provides one, because the phone was never told the event exists.
So it's not one feature. It's two delivery paths for the same setting, and the app has to know which one is live for any given event at any given moment — including the moment right after someone flips their sync toggle and every existing reminder has to migrate from one path to the other without doubling up or silently dropping.
Why this is the satisfying kind of gap
Some missing features are missing because nobody thought of them. This one was missing because the calendar sync design was so complete elsewhere that a reminder field would have looked redundant unless you looked closely — surely a synced event already reminds you? Almost. Only if sync is on. Only for that org. Never as a fallback.
Finding a gap like that doesn't feel like catching a mistake. It feels like the documentation was good enough to make the gap visible in the first place.
Worth saying plainly: this entire design — the gap, the two-path fix, the reconciliation logic — got worked out from a phone at a gate, not a desk. That's the actual argument for keeping the project files this detailed. None of it depended on a laptop or a repo checked out. It depended on the documentation being good enough that a phone and a few spare minutes were enough.
Bernie never got asked a follow-up question at an airport gate. We did, and it found a real gap.
Aphilaty is a privacy-first community coordination app. aphilaty.com