This is a 24-hour open-source log, not a myth. The goal was never "one-shot perfection." The goal was a maintainable v1 — something someone else could read, run, and extend.
Step 0: cut scope
I kept four things, and four only:
- A working main path
- Clear feature boundaries
- Basic async tests
- Readable docs
Anything that would slow delivery without affecting first-version usability — out. Not deprioritized, not "later." Out.
Hours 0–6: execution path first
Make input → output traceable. Don't reach for clean abstractions yet. Early abstraction usually just hides bugs under nicer-looking surfaces. I'd rather have ugly, traceable code than tidy code I can't reason about.
Hours 6–10: OAuth timing
This was the real puzzle. Which errors should fail fast? Which should prompt the user toward a recovery action? Which states should I leave intact for a retry to pick up?
Working through this told me something I wasn't expecting: authorization is not a side feature. It's the usability foundation. If the auth flow is sloppy, nothing downstream feels reliable.
Hours 10–14: quota lives in the main flow
Quota does not get bolted on at the end. If you add metering late, it almost always drags pricing logic and error semantics into the rewrite with it.
So I put a small KeyValueStore-backed per-feature counter directly in the request path. No DB, no cron. (Wrote it up separately as part of this same series.)
Hours 14–18: the unglamorous cleanup
Async test coverage on the happy path and the obvious failure modes. Exception paths. Naming boundaries that won't bite a future contributor. None of this is exciting. All of it prevents the first wave of post-launch issues from being existential.
Hours 18–21: README + MIT license
MIT matters for indie builders in a very practical way: it removes the "can I actually use this?" friction. Collaboration is more valuable than control, especially when you have zero stars and need the door wide open.
Last 3 hours: stranger's-eye review
Read the repo as if I'd never seen it. Run the project from scratch following only the README. Check that nothing private leaked into commits.
This is the easiest step to skip and the most reliable way to catch your own blind spots.
What I'd say to a past me
- Speed isn't typing fast. Speed is deciding fast what not to build.
- Open-source quality isn't zero bugs. It's "visible, reproducible, fixable."
- The auth layer is the foundation, not a feature. Get it right early or pay forever.
Related
If you want to turn this kind of 24h sprint into a repeatable workflow, I bundled the scope-cutting, commit-cadence, and acceptance templates I used here: Claude Code Workflow Pack (pay-what-you-want).
- GitHub repo: https://github.com/foxck016077/apify-gmail-inbox-intel
- Series index: https://dev.to/foxck016077/series/39719
Top comments (0)