Every time I started a SaaS project I had to rebuild the same infrastructure:
• authentication
• Stripe billing
• database setup
• transactional emails
• protected dashboards
It usually took 1–2 weeks before I could even start building the actual product.
So I started extracting these pieces into a reusable starter while building projects.
Over time it became a production-ready SaaS foundation with:
• OAuth + magic link auth
• Stripe subscriptions
• Prisma database
• email system
• AI integrations
• protected routes and dashboards
I used it to build the Zerodrag website itself, and the whole site took only a few hours because most of the infrastructure was already there.
I'm curious how other founders approach this.
Do you reuse your own starter projects or rebuild things every time?
If anyone wants to check it out: https://zerodrag.cloud
Would love feedback from other builders.
Reusing starters is the right call. The list you described — auth, billing, database, email, protected routes — is the standard payload.
One piece that's almost always missing from SaaS starters: what happens when the Stripe subscription billing fails. The starter handles checkout, webhooks, subscription status. But the payment failure recovery loop (listen for invoice.payment_failed, send a card update email within 2 hours, follow up at Day 3 and Day 7, stop when payment succeeds) is almost never in the starter kit.
It's a distinct enough problem that most founders add it later — usually after they've lost a few customers they didn't expect to lose. The webhook listener is one file. The D+1/D+3/D+7 email sequence is another. The stop condition on invoice.payment_succeeded is easy to forget. Together they take a day to build right, but that day rarely happens because it feels like ops, not product.
If you ever extend the starter to include the recovery loop, it'd be a genuinely differentiating addition. Most SaaS founders don't think about it until they're looking at their Stripe 'past due' subscriptions list for the first time.