The Best SaaS Boilerplate for Indie Hackers (What Actually Matters)

By Aziz Ali
indie hackersaas boilerplatetanstack startbunstripe

Most indie hackers waste their first three weekends not building their product — they're wiring up auth, fighting Stripe webhooks, and debugging email deliverability. I've done this more times than I care to admit. The whole point of a SaaS boilerplate is to skip that. But most boilerplates are either bloated with stuff you don't need or missing the one thing that bites you at 2 AM before launch.

Here's what actually matters when picking an indie hacker SaaS boilerplate — based on what I've shipped, scrapped, and shipped again.

Speed to "Hello, Paying Customer"

The only metric that matters for an indie hacker boilerplate is: how fast can you go from clone to your first paying customer?

This means auth must work on day one. Payments must work on day one. Email must work on day one. Not "configure AWS SES for 3 days" and not "read 40 pages of Clerk docs" — just work.

I built BetterStarter because I was tired of spending a week on setup before I could even validate the idea. It ships with Better-Auth, Stripe, Plunk email, and Drizzle ORM pre-wired on TanStack Start with Bun. Clone it, set your env vars, and you're writing product code in under an hour.

The boilerplates that fail indie hackers are the ones where "getting started" is a 3-hour tutorial.

The Tech Stack Matters More Than You Think

A lot of boilerplates are built on whatever framework is trending. That means you inherit their assumptions. Next.js boilerplates are fine until you realize you're paying for Vercel compute on a side project with 12 users.

Here's what I look for in a stack:

  • Runtime: Bun over Node.js. Bun is faster, ships with a test runner, and has a much leaner install footprint. I switched everything to Bun and haven't looked back.
  • Framework: TanStack Start over Next.js for full-stack TypeScript. It's type-safe end-to-end, and you're not fighting the App Router every day. More on why I made that switch here.
  • Auth: Better-Auth, full stop. It's open-source, runs on your own infra, and you're not paying Clerk $25/month for 1,000 monthly active users when you're pre-revenue. Check out the full Better-Auth vs NextAuth vs Clerk breakdown.
  • ORM: Drizzle. Lightweight, SQL-native, and doesn't make you write migrations in a proprietary format.
  • Email: Open-source Plunk. Not Resend, not SendGrid — no per-email pricing surprises.
// Example: Drizzle + Better-Auth user table setup
import { pgTable, text, timestamp } from "drizzle-orm/pg-core";

export const users = pgTable("users", {
  id: text("id").primaryKey(),
  name: text("name").notNull(),
  email: text("email").notNull().unique(),
  emailVerified: timestamp("email_verified"),
  createdAt: timestamp("created_at").defaultNow().notNull(),
});

This is the stack BetterStarter ships with. Every dependency was chosen because it's either free, self-hosted, or cheap enough that it won't kill your margins before you have any revenue.

What Every Indie Hacker Boilerplate Must Include

I've evaluated a lot of boilerplates — Shipfast, Supastarter, create-t3-app, and others. Here's the minimum viable feature list for an indie hacker:

Feature Must Have Nice to Have
Auth (email + social)
Stripe subscriptions + webhooks
Transactional email
Database ORM + migrations
shadcn/ui + Tailwind
TypeScript end-to-end
Dark mode
Admin dashboard
Blog / content
Multi-tenancy

If a boilerplate is missing auth, payments, or email — it's not saving you time. If it includes a full multi-tenant admin portal for a landing page you haven't validated yet — it's slowing you down. Pick the one that matches where you actually are.

Architecture That Doesn't Fight You

Here's how a good indie hacker SaaS boilerplate should be wired:

graph TD
    A[TanStack Start + Bun] --> B[Better-Auth]
    A --> C[Drizzle ORM]
    A --> D[Stripe Billing]
    A --> E[Plunk Email]
    B --> F[User Sessions]
    C --> G[PostgreSQL]
    D --> H[Webhooks → DB]
    E --> I[Transactional Emails]

Every layer is replaceable, nothing is magic, and you can read through the entire auth flow in under an hour. That's the bar. If you can't understand how auth works in your own boilerplate, you will not be able to debug it at launch.

Why "Cheap" Is the Wrong Filter

I see indie hackers filter boilerplates by price. That's backwards. The right filter is: how many days of founder time does this save me?

If a $99 boilerplate saves you 5 days of setup, and you value your time at $50/hour (a very conservative number), you just saved $2,000 in opportunity cost. The wrong boilerplate — even a free one — costs you those 5 days anyway, plus the mental overhead of making technical decisions you don't need to make.

The ones I've seen people get stuck on:

  • Boilerplates with half-finished Stripe webhook handling
  • Boilerplates built on Next.js Page Router in 2026
  • Boilerplates where "auth" means a basic JWT setup with no refresh token logic
  • Boilerplates with zero email integration — "just add your own"

If you want to skip all of this, BetterStarter ships with auth, Stripe, email, and DB pre-wired — $99 one-time, no subscription.

FAQ

What's the best SaaS boilerplate for indie hackers in 2026? The best one is the one that gets you to your first paying customer fastest. That means auth, Stripe, and transactional email all working on day one. BetterStarter, Shipfast, and Supastarter are the main options — each with different tradeoffs in stack, price, and philosophy.

Do I really need a boilerplate if I'm just validating an idea? Yes, especially then. Validation means shipping fast. Every day you spend on auth and payments is a day you're not getting user feedback. A boilerplate isn't premature optimization — it's the minimum viable foundation.

Is Shipfast worth it? Shipfast is solid but Next.js-first. If you're committed to the Next.js ecosystem and Vercel deployment, it's a reasonable choice. If you want Bun, TanStack Start, and open-source auth — it's not the right fit.

What's Better-Auth and why use it over Clerk? Better-Auth is an open-source auth library you self-host. Clerk is a SaaS auth provider. Clerk charges per monthly active user once you scale — Better-Auth doesn't. For indie hackers who want to control costs, Better-Auth is the smarter long-term bet.

Can I use a SaaS boilerplate with any database? Most support PostgreSQL. BetterStarter uses Drizzle ORM, which supports Postgres, MySQL, and SQLite — so you can start with a local SQLite DB and move to Postgres when you need to without changing your query code.