Free while in beta

Skip the boilerplate. Keep your stack. Ship the product.

Answer a few questions — framework, components, database, ORM, auth, billing, email, landing page, package manager — and the whole repo downloads, wired together, with its test suite already written and green on the first run.

Pick the tools you already trust

  • TanStack Start
  • Next.js
  • React 19
  • Neon
  • Drizzle ORM
  • Prisma
  • Better Auth
  • Tailwind CSS
  • Biome
  • Vercel

Generated, not forked

A fork goes stale. A generator does not.

A template ages because you forked it: the copy in your repo stops moving the day you download it. There is no template here to fork. The repo is assembled when you ask for it, from a generator that gets fixed in one place.

A template you fork

  • Upgrades become yours the moment you clone, months after whoever wrote it moved on.
  • Your changes and theirs collide. You rebase onto a stranger's decisions, or you drift.
  • It passed on the day it was published, in whichever configuration the author ran.

A repo we generate

  • Upgrades land in the generator, once. The next repo out already has them.
  • Nothing to rebase. There is no upstream — the tree is yours from the first commit.
  • Every combination is generated and run in CI before it is offered to anyone.

What this does not claim: a starter you have already downloaded is yours and stays exactly as delivered — nothing here reaches back into it. The promise is narrower, and it is the one that matters before you start: what you are handed is current on the day you ask for it.

Any stack. Any provider. Already wired.

Every tile below is a module the generator can wire for you. No single starter contains all of them — the grid is the menu, and the questions are what pick from it.

  • Next.jsApp Router + layouts
    Wiring
  • Next.jsServer actions
    Wiring
  • TanStack StartFile-based routing
    Wiring
  • TanStack StartServer-side rendering
    Wiring
  • TanStack RouterTyped route tree
    Wiring
  • TanStack QueryServer state caching
    Wiring
  • Better AuthEmail + password sign-in
    Wiring
  • Better AuthCookie sessions
    Wiring
  • Drizzle ORMTyped table schema
    Wiring
  • Drizzle KitMigrations + studio
    Wiring
  • PrismaGenerated client
    Wiring
  • Prisma MigrateVersioned migrations
    Wiring
  • NeonServerless Postgres driver
    Wiring
  • NeonBranch per preview
    Wiring
  • Tailwind CSSv4 design tokens
    Wiring
  • Tailwind CSSDark mode variant
    Wiring
  • TypeScriptStrict compiler
    Wiring
  • TypeScriptPath aliases
    Wiring

Modularity

Swap anything

Every question the wizard asks maps to an adapter, not a fork. Picking Prisma over Drizzle changes the files below and nothing above them.

This is also why the list can grow. A new framework or a new database is another adapter behind the same seam, so adding one does not multiply the templates we maintain — and every combination still has to go green in CI before it is offered.

Next.jsTanStack StartReact + Vite
  • app entrygenerated
  • routinggenerated
  • server handlersgenerated

The widest choice, and why the rest are cheap: routing and rendering sit in a framework adapter, invisible above it. React + Vite is the exception — with no server to keep a secret, later questions narrow to match.

3 places change · routes, components, and business logic untouched

Where is authentication configured?

  • src/
  • db/
  • client.ts
  • schema.ts
  • schema.test.ts
  • lib/
  • auth.ts
  • auth.test.ts
  • checkout.ts
  • checkout.test.ts
  • styles.css

src/lib/auth.ts
One module per integration, named after the thing it integrates. Nothing else reaches for the provider.

Built for assistants

AI reads it correctly

Every repo we generate has the same shape: predictable layout, typed boundaries, and a spec beside every module. An assistant can guess where something lives — and when it guesses wrong, the compiler says so before you run anything.

  • One module per concern

    Every integration gets a file named after it, in the same place in every repo we generate. There is no registry to keep in sync and no indirection to trace before making a change.

  • Wrong guesses fail loudly

    strictnoUnusedLocalsnoUnusedParametersnoFallthroughCasesInSwitchnoUncheckedSideEffectImportsverbatimModuleSyntax

  • Intent is executable

    Each module's test file states what it must do. That is context an assistant can run, not prose it has to trust.

How it works

Ten answers and the repo is on your machine

Every question narrows the next one, so you cannot assemble a stack that does not fit together. You see the whole repo before it is created.

01

Answer ten questions

Framework, components, database, ORM, auth, billing, and a name. Each answer narrows the next, so a combination that does not work is never offered in the first place.

02

See it before it exists

The full file tree and the suite it ships with, laid out before anything is generated. Nothing is built until you approve it.

03

Take delivery

A zip of the whole repo, yours to unpack and push wherever you like. Install, run the suite, and it is green on the first run.

Where it deploys is the one question we do not ask. Guessing your host would only give you a config file to delete, so the repo arrives without one.

Reels

Watch it, rather than read about it

Short clips on the problem this exists to solve — and what the generator does about it.

Is there a starter kit generator for developers?
Every time I start a new SaaS…

Pricing

One plan

No tiers to compare yet — every account gets the same allowance, and it costs nothing to try.

Free

$0· free while in beta

  • 5 generations to start — no card required
  • 10 more the first time you leave feedback
  • Every combination tested green in CI before it ships
  • Re-downloading a starter you already generated is always free
Get started free

Start with the tests already written

Answer ten questions. The whole repo downloads, ready to push wherever you like, with the suite already green. Free while in beta.