ai-project-bootstrap
Docs / Choosing a stack / Presets

Presets

A preset pre-fills the categories it covers. The wizard still shows what it filled, still lets you back out, and still asks about anything the preset leaves unopinionated.

npx ai-project-bootstrap --preset startup-mvp          # review the rest interactively
npx ai-project-bootstrap --preset startup-mvp --yes    # fully non-interactive

The three shipped presets

Preset
Fills
For
startup-mvp
Expo · Supabase · Supabase Auth · RevenueCat · PostHog · Sentry · Jest
A fast solo or indie mobile stack
web-saas
Next.js · Supabase · Supabase Auth · Stripe · Resend · PostHog · Sentry · Jest
A solo or small-team web SaaS
enterprise
Next.js · NestJS · PostgreSQL · GitHub Actions · Better Stack · Sentry · Jest
A self-managed backend for a larger team

What a preset does not fill

Anything it leaves out is still asked. startup-mvp says nothing about email, storage, monitoring, CI/CD or deployment — you answer those, or skip them and add them later.

Validation

Presets are validated exactly the way a hand-written --config file is: every module id must exist, and the resulting selection must resolve without a conflict. A broken preset makes the tool refuse to start rather than ship broken output — and it fails on every test run, not just when someone happens to pass the flag.

Three ways to pre-fill, never combined

--preset, --archetype and --config cannot be used together. All three are ways of pre-filling the selection, and mixing them would leave it ambiguous which one wins.