Today felt like it had momentum.
Started early digging into the session issues we’ve been wrestling with all week. Most of the bugs centered around auth state not persisting properly after hard page refreshes. After some deep diving into Supabase’s client library, I realized we were relying too much on implicit state sync. Added more explicit checks and rewired some async behavior on the client. Better now—still not bulletproof. But at least onboarding flows don’t randomly wipe anymore.
Also kicked off a bigger change: abstracting the session logic entirely out of Supabase. It’s still early, but the idea is to future-proof for Firebase or even custom auth down the line. Right now, the auth setup is too tightly coupled—feels like trying to yank out a charging cable mid-deploy. Not ideal.
Quick win: sat down with our part-time designer. We finally picked apart some of the clunkier bits of microcopy, especially in auth errors and modal feedback. Technical users are brutal with clunky UX. Just fixing the phrase "Create Account" to “Continue with GitHub” changed the tone of the signup moment. Feels more native now.
Random 3 PM call with a developer analytics SDK team turned into a rabbit hole. Think we could embed their usage metrics right into our dashboard for projects using our API. Could be huge for retention—but also something I’m definitely not building this week. Maybe post-beta.
Even found time to tweak the investor deck. Added some early traction signals ("traction" = 6 developers who aren’t me giving something vaguely positive on Slack, but hey). There’s movement. One angel seems interested. Not holding breath.
What I’m Learning
Here’s today’s mini-how-to:
How to handle persistent sessions with Supabase:
- Use
onAuthStateChange
to rehydrate auth state after refresh.- Explicitly store tokens in
localStorage
if you're doing custom UI—Supabase handles this by default, but wonky frameworks override things.- Avoid state being optimistic. Always validate via
.getUser()
on load, not just the local session.Don’t assume the session will survive a hard reload. Check it. Rebuild cleanly when stale.
Tomorrow will probably be:
- More polish on the auth experience (state transitions still feel clunky).
- Outreach to one backend-adjacent toolmaker I admire (shot in the dark, but whatever).
- Maybe a dry run of my founder circle talking points—developer-focused DX stories feel like they might land.
Shoutout to the one early user who emailed me at 2 AM with a completely broken UI state + a fix. Honestly made my day.
Little by little.