Skip to contentNew: Does ChatGPT recommend your brand? Free 60-second AI visibility check →
By The DDH Team · Digital Dashboard Hub

Build a SaaS With Bolt.new Tutorial (2026)

By The DDH Team at Digital Dashboard HubUpdated

Stop writing AI prompts from scratch.

Tell us your business + your task + your model. We write the prompt — perfectly tuned for ChatGPT, Claude, Grok, Gemini, Midjourney, or any model. Plus 500+ pre-built prompts in your library.

14 days, no card. Cancel in 2 clicks.

Bolt.new is the most under-prompted tool in the 2026 AI builder stack. The product is excellent — it spins up a full Next.js or React app in 30 seconds, runs the dev server in your browser, and lets you iterate on the generated code in-place. The reason people get bad results isn't the model behind it; it's that they prompt it like ChatGPT ('build me a SaaS app') instead of like a senior engineer briefing a contractor.

This tutorial is the 6-phase path from signup to deployed SaaS. The killer phase is Phase 2 — the spec-shaped prompt — because the quality of your initial prompt determines 70% of the output quality. A vague prompt produces a generic todo app; a well-shaped prompt produces an authenticated, paid, deployed SaaS in 90 minutes. We include three real worked prompts (B2B form-builder, AI-tagged invoicing, niche marketplace) so you can pattern-match to your idea.

Phase 6 is the migration step almost no Bolt tutorial covers: when does your app outgrow Bolt's editor and need to graduate to a real local repo + IDE? Roughly: when you cross ~50 files, ~5 routes, or any nontrivial CI/CD requirement. The graduation is one click (Bolt's export + GitHub push) but the post-graduation IDE choice matters — Cursor and Copilot have different strengths for inherited-Bolt codebases. We cover the migration cleanly.

Sourced from bolt.new official docs and the StackBlitz engineering blog (bolt.new is built on StackBlitz's WebContainer tech). For a comparison of Bolt vs v0 vs Lovable (the three top AI app-builder tools), see v0 vs Bolt vs Lovable. For the prompt patterns that get the most out of Bolt, the code prompt builder is the right starting point.

Digital Dashboard Hub

Writing good prompts for ONE AI is hard. Writing them for GPT-5, Claude, Gemini, Perplexity, Midjourney and 6 more is a full-time job. DDH's AI Prompt Builder writes once, runs everywhere — locked to your niche, voice, and brand tone.

Free 14 days, no card.

Bolt.new plans and what each unlocks — June 2026

Feature
Plan
$/mo
Token budget
Best for
Bolt FreeFree$0Limited daily tokens, watermarked deploysTrying Bolt, learning the prompt patterns
Bolt ProPro$2010M tokens/moSolo dev building one real SaaS
Bolt Pro 50Pro 50$5026M tokens/moSolo dev building multiple apps or iterating heavily
Bolt Pro 100Pro 100$10055M tokens/moActive maker shipping weekly + heavy iteration
Bolt Pro 200Pro 200$200120M tokens/moFounder mid-build with daily heavy use
Bolt TeamsTeamsCustomPooled tokens + SSO + collab5+ person studio shipping multiple SaaS

Source: https://bolt.new/pricing, verified 2026-06-21. Bolt prices in tokens because that maps directly to the underlying model API costs. Token consumption is wildly variable — a small prompt iteration burns ~5-20k tokens; a from-scratch app generation burns 100-500k. The Pro 50 / Pro 100 / Pro 200 ladder is for users who hit the Pro 10M ceiling mid-month.

Phase 1: set up Bolt.new account + pick the right plan

Go to bolt.new, sign in with GitHub OAuth (preferred — speeds up Phase 6 when you push to GitHub) or email. The free tier lets you generate an app and iterate ~5-10 times before hitting daily token limits. Use the free tier for the first hour to validate your idea fits Bolt; upgrade once you commit.

**Plan picking heuristic.** First-time Bolt user with one SaaS idea: Pro $20/mo (10M tokens) is the right starting point. Most first-week prompts burn 200-500k tokens; the 10M ceiling typically lasts 3-4 weeks of active building. If you hit the ceiling mid-month, you can upgrade to Pro 50 ($50, 26M tokens) without losing your project.

**The 'three apps in parallel' anti-pattern.** A lot of first-time Bolt users start three SaaS apps simultaneously thinking they'll see which one sticks. Token burn triples; quality per app suffers because the prompt iterations are shallower. Discipline: pick one SaaS, build it to 'demo-ready' (auth + payment + 2 core flows), THEN start the next one. Plan size: Pro $20 for one app at a time; Pro 50+ if you genuinely run parallel builds.

**Team plan signals.** Skip Teams unless you have 3+ collaborators actively editing the same project. The Pro tier supports project sharing with read-only links; you only need Teams when multiple people are actively making code changes concurrently.

**The annual discount question.** Bolt offers ~20% off on annual plans. Same answer as every AI tool in 2026: don't take annual until you've done 30 days of real building. The monthly premium is the cost of optionality on a fast-moving product.


Phase 2: the spec-shaped prompt (70% of your output quality)

This is the phase where 90% of bad Bolt outcomes get baked in. The good news: writing a spec-shaped prompt is a learnable skill, and once you have a template it takes 10 minutes per app.

**The 7-section spec template that works.**

1. **Product name and one-line description.** 'WaitlistPro — a waitlist landing page builder for B2B SaaS founders.'

2. **Stack constraints.** 'Use Next.js 16 App Router, Tailwind, shadcn/ui, TypeScript. Database: Supabase. Auth: Supabase Auth (email magic link). Payments: Stripe Checkout.'

3. **User personas and core flows.** 'Two personas: Founder (logs in, creates waitlist, shares link, sees signups, exports CSV). Subscriber (visits public waitlist URL, enters email, gets confirmation).'

4. **Data model.** 'Users (id, email, name, created_at). Waitlists (id, user_id, slug, title, description, fields_json, created_at). Signups (id, waitlist_id, email, name, custom_data_json, created_at).'

5. **Routes.** '/ (landing page with marketing copy), /signup, /login, /dashboard (list user's waitlists), /dashboard/new (create waitlist form), /dashboard/[id] (waitlist detail + signups table), /[slug] (public waitlist page).'

6. **Pricing tiers.** 'Free: 1 waitlist, 100 signups. Pro: $19/mo, unlimited waitlists, 10k signups, custom branding, CSV export.'

7. **Visual style.** 'Modern minimal, dark mode by default with light mode toggle. Lots of whitespace. Hero section with bold typography. Trustpilot-style social proof block.'

**Why this template works.** Bolt's generator is much better at executing on specifics than guessing intent. Every spec section narrows the search space. Skip a section and Bolt will fill it in with a generic choice — sometimes fine, often not what you wanted.

**Worked prompt example (paste this into Bolt as-is and you'll get a working WaitlistPro skeleton):**

``` Build WaitlistPro — a waitlist landing page builder for B2B SaaS founders. Stack: Next.js 16 App Router, Tailwind, shadcn/ui, TypeScript, Supabase (DB + Auth via email magic link), Stripe Checkout for payments. Users (Founder): logs in, creates waitlist, shares link, sees signups, exports CSV. Users (Subscriber): visits public waitlist URL, enters email, gets confirmation. Schema: users(id, email, name, created_at), waitlists(id, user_id, slug, title, description, fields_json, created_at), signups(id, waitlist_id, email, name, custom_data_json, created_at). Routes: / (marketing landing), /signup, /login, /dashboard, /dashboard/new, /dashboard/[id], /[slug]. Pricing: Free (1 waitlist, 100 signups), Pro $19/mo (unlimited waitlists, 10k signups, custom branding, CSV export). Visual: modern minimal, dark mode default with light toggle, bold typography, lots of whitespace, social proof block. Return a working scaffold. Don't bother with email sending or analytics in v1 — placeholder OK. ```


Phase 3: iterate on the generated app (edit-in-place flow)

Bolt produces an initial scaffold in ~30-90 seconds. Don't accept it as final — the first version is the starting point. Bolt's edit-in-place flow lets you iterate on specific files or behaviors without regenerating everything.

**The iteration loop:** click a file in the file tree, click the AI chat panel, describe the change you want. Bolt diffs the file, you accept or reject. The diff UX is much better than 'paste your code, get a new version' — you see exactly what changed.

**High-leverage iteration prompts (after the initial scaffold):**

- 'The dashboard's empty state is too sparse. Add a welcome banner with a CTA to create the first waitlist.'

- 'The /[slug] public page needs to show the social proof block from the landing page — extract it into a shared component.'

- 'Add Zod validation to the create-waitlist form. Show inline errors. Disable submit until valid.'

- 'The signups table on /dashboard/[id] should support sorting by signup date and email search.'

- 'Add a confirmation toast (using shadcn/sonner) when a signup is successfully added.'

Each of these is a 5-30k token operation — Pro tier covers 100+ of them.

**What NOT to iterate via prompts:** styling tweaks that are 'change this color' or 'make this 4px bigger.' Faster to edit the Tailwind class directly in the file. Bolt's prompt-based iteration shines for behavior changes, not cosmetic ones.

**Iteration discipline rule:** if Bolt produces output that's worse than what was there before, REJECT and try a different prompt. Don't accept-then-fix. Accepting a regression and trying to patch it forward burns tokens and produces inconsistent code. Iteration on Bolt is 'reject early, prompt better.'


Phase 4: add Supabase (auth + database) via Bolt's integration

Bolt has first-class Supabase integration. The flow: in the Bolt project sidebar, click 'Integrations' → 'Supabase' → 'Connect'. Bolt OAuth's to your Supabase account, lets you pick a project (or create one), and auto-injects the connection env vars (`NEXT_PUBLIC_SUPABASE_URL`, `SUPABASE_ANON_KEY`, `SUPABASE_SERVICE_ROLE_KEY`).

**What auto-wires:** the Supabase client (`lib/supabase.ts` or equivalent), auth helpers, and the database schema if you generated SQL in your spec prompt. If you didn't, you can prompt Bolt: 'Generate the Supabase SQL migration for the schema in the spec — users, waitlists, signups tables with the relationships and RLS policies.'

**RLS policies — the step that's easy to forget.** Supabase's row-level security must be enabled for production safety. Prompt Bolt: 'Add Supabase RLS policies: users can only read/write their own waitlists. Signups are publicly insertable (anyone can sign up) but only readable by the waitlist owner.' Without RLS, anyone with the service role key can read all data — fine for dev, catastrophic for prod.

**Auth UI integration.** Bolt's scaffold typically uses Supabase's email magic-link flow. Test it by signing up with your real email; Supabase sends the magic-link email; clicking the link should land you on /dashboard authenticated. If the redirect doesn't work, the issue is usually that Supabase's allowed-redirect-URL list doesn't include Bolt's preview URL. Add it in Supabase dashboard → Authentication → URL Configuration.

**Migration discipline.** As you iterate, your schema may evolve. Don't keep regenerating the SQL file — that breaks Supabase migrations. Instead, write incremental migration files: `supabase/migrations/20260621_initial.sql`, `supabase/migrations/20260622_add_signups_index.sql`, etc. Bolt understands this convention when you prompt 'add a new migration to add an index on signups.created_at.'


Phase 5: add Stripe payments via Bolt's integration

Same flow as Supabase: Integrations → Stripe → Connect. Bolt OAuths to your Stripe account (use test mode for development), injects env vars (`STRIPE_SECRET_KEY`, `NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY`, `STRIPE_WEBHOOK_SECRET`).

**What auto-wires:** the Stripe Checkout helper (`lib/stripe.ts`), a checkout-session API route (`app/api/checkout/route.ts`), a webhook handler for `customer.subscription.created` and related events (`app/api/webhooks/stripe/route.ts`), and a /pricing page if your spec mentioned tiers.

**The two things you have to set up in Stripe manually.** (1) Create Products and Prices in the Stripe dashboard matching your tiers — 'Pro' product with a $19/mo recurring Price. Copy the Price ID and add it to your Bolt env vars as `STRIPE_PRO_PRICE_ID`. (2) Add your Bolt preview URL to Stripe's allowed redirect domains so Checkout success/cancel pages don't get blocked.

**Webhook testing locally.** Bolt's preview environment is publicly accessible, so Stripe webhooks can hit it directly — better than the typical local-dev experience that requires `stripe listen --forward-to`. The catch: every time Bolt redeploys (which happens on every meaningful change), your preview URL changes. The pragmatic workaround: update the webhook endpoint in Stripe dashboard once when you graduate to your own domain (Phase 6+), and use Stripe's test webhook fixtures for in-Bolt iteration.

**Subscription persistence.** When a user subscribes successfully, your webhook handler should update the `users` table with `stripe_customer_id`, `stripe_subscription_id`, `plan`, and `current_period_end`. Prompt Bolt: 'Update the Stripe webhook handler to persist subscription state to the users table on customer.subscription.created and customer.subscription.updated, and clear it on customer.subscription.deleted.'

**Gating features by plan.** Add a `hasPro(user)` helper that checks `plan === 'pro' && current_period_end > now`. Use it in API routes and UI to gate Pro features. Prompt: 'Add a hasPro helper in lib/billing.ts. Use it in /dashboard/new to block creating a second waitlist on the Free plan, with a CTA to upgrade.'


Phase 6: deploy via Bolt's Netlify integration (the 1-click step)

Bolt's deploy flow goes through Netlify (the partnership announced in 2024 and standardized in 2025). In the Bolt project, click 'Deploy' → 'Netlify' → authenticate with Netlify if first time → pick a site name → deploy.

**What auto-happens:** Netlify creates a new site, links the Bolt project as the source, deploys to a netlify.app URL (e.g., waitlistpro.netlify.app), and sets up auto-deploy on every Bolt project change. Most apps build successfully on first deploy if Bolt's scaffold is unchanged.

**Custom domain.** In the Netlify dashboard → Domain settings → Add custom domain. Add your DNS records (CNAME for subdomain, A record for apex). Netlify auto-issues a Let's Encrypt SSL cert in ~10 minutes.

**Env vars at deploy.** Bolt's integrations (Supabase, Stripe) inject env vars at preview time, but production env vars need to be set in Netlify dashboard → Site settings → Environment variables. Copy them across — don't rely on auto-sync, it sometimes drifts. For Stripe specifically, switch from test keys to live keys in production env vars; for Supabase, the keys are the same across environments.

**Build hooks for rebuilds.** Netlify exposes a build hook URL you can `curl` to trigger a rebuild. Useful for content updates that don't come through Bolt (e.g., your marketing team updates a CMS).

**Limitations of the deploy.** Bolt's deploy flow optimizes for fast iteration, not enterprise infrastructure. You don't get: preview deployments per branch, blue-green deploys, custom CDN config, advanced caching rules. For most SaaS at the 'just shipped' stage, Netlify's defaults are fine. When you outgrow them, you're in Phase 6+ (migration to own infra) territory.


Phase 7 (often skipped): graduate to your own repo when Bolt's editor gets too small

Most Bolt tutorials end at 'deploy.' The honest truth: most successful Bolt apps eventually outgrow Bolt's in-browser editor. The signals you're at the graduation point: your project has 50+ files, you want CI/CD with custom checks, you need preview deploys per branch, you want to use Cursor or Claude Code or your own local AI stack for deeper work.

**The export step is one click.** In Bolt project → Settings → 'Export to GitHub' or 'Download as ZIP.' GitHub export creates a new repo with the full project; ZIP gives you a local file you can `git init` from. Either way, you walk away with a real Next.js codebase you fully own.

**Local-dev setup post-export.** Clone the repo, run `npm install`, copy your env vars from Bolt → `.env.local`, run `npm run dev`. Should run identically to Bolt's preview. If it doesn't, the usual culprit is a missing env var (Supabase keys, Stripe keys) — Bolt's preview had them injected, your local doesn't.

**Pick your IDE post-graduation.** Cursor and Copilot both work well on inherited-Bolt codebases. Cursor wins for refactor-heavy graduation work (Cursor's Composer is great at multi-file changes that the next 6 weeks of your project will need). Copilot wins if you're going to stay in VS Code and just want autocomplete. See migrate from Copilot to Cursor if you're considering the IDE switch.

**Add the things Bolt skipped.** Real CI (GitHub Actions running tests + lint on every PR), preview deploys (Vercel or Netlify per-branch), error tracking (Sentry, Highlight, or Posthog), proper logging (Axiom, Logtail, Datadog). These are non-glamorous but necessary for anything past 'I shipped a demo.'

**The Bolt-to-Vercel migration path.** If you want preview-per-PR and the broader Vercel ecosystem, the migration from Netlify is mechanical: push your repo to Vercel, set env vars, configure the build command (typically `next build`). Vercel auto-detects Next.js. The whole switch is 15 minutes; you get preview-per-PR for free.

**The 'should I have skipped Bolt and started in Cursor' question.** No — Bolt's superpower is the first 90 minutes from idea to running app. Cursor would take you 4-8 hours to reach the same demo-ready state. Use Bolt for the 0-to-MVP phase, graduate to Cursor/Copilot for the MVP-to-1000-users phase. Different tools for different phases.


Worked example 1: B2B form-builder (the WaitlistPro template above)

We built this exact spec in 90 minutes during a Friday afternoon test. Token consumption: 380k for the initial generation + 6 iteration rounds = ~700k tokens total. Cost at Pro tier: well under the monthly 10M ceiling.

**Bolt's first-pass output:** working Next.js 16 App Router app with Supabase auth, magic-link flow, dashboard listing waitlists, create-waitlist form, public waitlist page that accepts signups. Stripe integration was scaffolded but the webhook subscription persistence wasn't quite right (had to iterate).

**Iteration round-trip examples.** Round 1 (15k tokens): 'The signup form on /[slug] is collecting email only. Add an optional name field, and support the fields_json column on waitlists to render custom fields.' Round 2 (20k tokens): 'The waitlist /dashboard/[id] view needs a CSV export button. Implement client-side CSV generation from the signups array.' Round 3 (12k tokens): 'Add a confirmation toast (shadcn/sonner) when a signup is successfully created on the public page.'

**Deploy step:** ~5 minutes from clicking Deploy → Netlify to having a live `waitlistpro.netlify.app` URL with auth, payments, and database working.

**Total time to demo-ready SaaS:** ~90 minutes (60 min on prompt + iteration, 15 min on Supabase setup verification, 10 min on Stripe product setup, 5 min on deploy).


Worked example 2: AI-tagged invoicing app

Spec shape: 'Build TagTab — an invoicing app for freelancers that auto-categorizes expenses using AI. Upload a receipt, AI tags it (Travel, Software, Food, etc.), generates an invoice line. Tier: Free 5 receipts/mo, Pro $29/mo unlimited.'

**Stack added beyond WaitlistPro template:** OpenAI API for receipt categorization (Bolt scaffolded the OpenAI client; we provided the API key via env var), file upload to Supabase Storage, PDF generation for invoices (Bolt picked react-pdf).

**Tricky parts:**

1. **Receipt OCR.** Bolt's first pass used OpenAI Vision (gpt-5-mini with image input). Worked surprisingly well for clean receipts; failed on crumpled photos. Mitigation: prompt 'Add a manual-tag-override UI when AI confidence is below 80%.'

2. **Invoice PDF generation.** react-pdf renders on the client by default; large invoices were slow. Iterated to: 'Move PDF generation to a Vercel/Netlify function so it renders server-side and downloads as a stream.'

3. **Stripe metered billing for the free-tier receipt count.** Standard Stripe Checkout doesn't handle 'usage-based' well; we added a custom upgrade prompt in-app when the user hit 5 receipts.

**Token consumption:** ~1.2M tokens total for the build (richer scaffolding + 9 iteration rounds). Still well within Pro tier's 10M monthly budget.

**Time to demo-ready:** ~3 hours, mostly because of the OCR debugging.


Worked example 3: niche two-sided marketplace

Spec shape: 'Build PromptMarket — a marketplace where AI prompt engineers sell prompt packs. Sellers create packs (name, description, prompts JSON, price). Buyers browse, buy via Stripe, download. 30% platform fee.'

**Why this is harder than WaitlistPro or TagTab:** two user types (seller + buyer) with distinct flows, money flow between them (Stripe Connect for sellers, not just Stripe Checkout for the platform), discovery UI (browse, search, filter packs), and digital delivery (license keys or download links).

**Bolt handled the scaffolding well.** First-pass: working seller dashboard (create pack, see sales), public marketplace listing, Stripe Connect onboarding for sellers, Stripe Checkout for buyers, license-key generation on purchase, downloads UI for buyers.

**Where iteration was needed:**

1. **Stripe Connect express vs standard.** Bolt defaulted to Connect Standard (sellers create their own Stripe accounts); we iterated to Connect Express (we manage the account onboarding flow) for a smoother seller UX. Token cost: ~30k.

2. **Search and filter.** Bolt's first pass was a list view; iterated to add category filtering + price range filtering + full-text search via Supabase pg_trgm. Token cost: ~40k.

3. **License key delivery.** Bolt generated random keys but didn't gate downloads on them — buyers could share keys. Iterated to add server-side download authorization. Token cost: ~25k.

**Token consumption:** ~1.8M for the build (most complex of the three).

**Time to demo-ready:** ~5 hours. The marketplace pattern is genuinely harder than the SaaS pattern; Bolt handles it well but you're closer to the edge of what one-prompt scaffolding can do.


Common mistakes that burn tokens and produce bad output

**Mistake 1: vague spec prompts.** 'Build me a SaaS for managing client relationships' produces a generic CRM clone. 'Build SmallBizCRM for solo consultants tracking <50 client relationships, with note-taking, last-contact tracking, and a weekly digest email' produces something useful. Always specify persona + scale.

**Mistake 2: iterating instead of regenerating when the foundation is wrong.** If Bolt's first scaffold is fundamentally misaligned with your intent (wrong stack, wrong data model), don't try to patch it forward. Click 'Regenerate' or start a new project with a refined prompt. Forward-patching burns 5-10x more tokens than restarting.

**Mistake 3: skipping the Supabase RLS step.** Bolt scaffolds without RLS by default. Anyone with the service role key can read all data. For production, RLS is non-negotiable. Always prompt 'add RLS policies' as an explicit step.

**Mistake 4: deploying with test Stripe keys.** The Netlify production env vars default to whatever was in your Bolt preview — usually Stripe test keys. Switching to live keys is a manual step you have to remember. Otherwise your production app accepts test cards and never charges real customers.

**Mistake 5: trying to do too much in one prompt.** 'Add OAuth via Google + Twitter, and add billing, and add team collaboration, and add a Slack bot' is too much for one iteration. Each major feature should be its own iteration round. Bolt's output quality drops when you ask for 5+ unrelated changes in one prompt.

**Mistake 6: not committing your work locally.** Bolt's project storage is good but not infallible. Export to GitHub at the end of every meaningful work session. Treat Bolt as the editor, GitHub as the source of truth.

6-phase tutorial: idea to deployed SaaS

  1. 1

    Sign up + pick Pro tier ($20/mo)

    Go to bolt.new, sign in with GitHub OAuth (preferred for Phase 6 export). Use Free tier for first hour to validate; upgrade to Pro ($20/mo, 10M tokens) when you commit. Skip Teams unless you have 3+ active collaborators.

  2. 2

    Write the spec-shaped prompt (the 70% quality lever)

    Use the 7-section template: product name + one-line, stack constraints, user personas + flows, data model, routes, pricing tiers, visual style. The example WaitlistPro prompt above is ~15 lines and produces a working scaffold in 90 seconds. Vague prompts produce generic apps; specific prompts produce useful ones.

    → Open the Code prompt builder (spec-shape)
  3. 3

    Iterate on the scaffold (edit-in-place)

    Reject early when output regresses; don't accept-then-fix. High-leverage iteration prompts: 'add Zod validation', 'extract X into a shared component', 'add sort + filter to the Y table'. Each iteration is 5-30k tokens — 100+ fit in Pro tier's monthly budget.

  4. 4

    Add Supabase (auth + DB) and Stripe (payments)

    Integrations → Supabase → OAuth + pick project = auto-injected env vars. Same for Stripe. Don't skip the RLS step — prompt explicitly: 'add Supabase RLS policies, users read/write only their own data.' Create Stripe Products + Prices manually in Stripe dashboard; copy Price IDs to env vars.

  5. 5

    Deploy via Netlify (1-click)

    Deploy → Netlify → site name → live URL in ~5 minutes. Set production env vars in Netlify dashboard (don't rely on auto-sync from Bolt preview). For Stripe, switch test keys to live keys. Add custom domain via Netlify's domain settings + DNS records.

  6. 6

    Graduate to own repo when you outgrow Bolt's editor

    Signals: 50+ files, need CI/CD with custom checks, want preview-per-branch, want Cursor/Copilot for deeper work. Settings → Export to GitHub → clone locally → npm install → npm run dev. Same app, now in your IDE of choice. Migrate from Netlify to Vercel if you want preview-per-PR (15 minutes).

Frequently Asked Questions

How much does it cost to build a SaaS with Bolt.new in 2026?

Bolt Pro at $20/mo (10M tokens) covers a typical first-app build. The WaitlistPro example consumed ~700k tokens including 6 iteration rounds — 14 apps of that complexity fit in one month's budget. Heavier builds (marketplace, AI-augmented features) consume 1.5-2M tokens. For active makers shipping weekly, Pro 50 ($50, 26M tokens) is the right tier. Most users never need Pro 100+.

What stack does Bolt.new generate by default?

Bolt generates Next.js (App Router), React, Tailwind, TypeScript by default. It also supports Vue, Svelte, Astro, and a few others by request in the prompt. For databases, Supabase is the first-class integration; Postgres direct also works. For payments, Stripe Checkout is the default; Lemon Squeezy and Paddle are doable via prompt. For deployment, Netlify is the integrated path; you can also deploy to Vercel post-graduation.

How do I add authentication to a Bolt.new app?

Bolt's Supabase integration includes Supabase Auth out of the box. The flow: Integrations → Supabase → Connect → auto-injected env vars + auth helpers. Default flow is email magic link; you can prompt 'switch to Google OAuth' or 'add Twitter OAuth' to customize. The auth integration is the smoothest part of Bolt — most users get login working in their first 30 minutes.

Can I add Stripe payments to my Bolt app?

Yes — first-class integration. Integrations → Stripe → OAuth → env vars auto-injected. Bolt scaffolds the Stripe Checkout helper, checkout-session API route, webhook handler. You manually create Products + Prices in Stripe dashboard and copy Price IDs to env vars. Two gotchas: (1) production deployment uses test keys by default — manually switch to live keys in Netlify env vars; (2) webhook URL changes on every Bolt redeploy — update it once when you graduate to your own domain.

How do I deploy a Bolt.new app?

Deploy button → Netlify → authenticate → site name → live URL in 5 minutes. Bolt's deploy partnership is with Netlify (since 2024). Custom domains added via Netlify's Domain settings + DNS records. Production env vars set in Netlify dashboard (don't rely on auto-sync from preview). For preview-per-branch and broader Vercel ecosystem, migrate to Vercel post-graduation — 15 minutes.

When should I graduate from Bolt.new to a real local repo + IDE?

Signals: project has 50+ files, you need CI/CD with custom checks, you want preview deploys per branch, you want to use Cursor or Claude Code for deeper work. Graduation is one click: Settings → Export to GitHub. Clone locally, npm install, copy env vars to .env.local, npm run dev — should work identically to Bolt's preview. Use Cursor or Copilot for the next phase of building.

What's the best Bolt prompt structure?

The 7-section template that works: (1) product name + one-line; (2) stack constraints (Next.js 16 / Supabase / Stripe etc.); (3) user personas + core flows; (4) data model (tables + columns); (5) routes; (6) pricing tiers; (7) visual style. Specificity dominates — 'B2B for solo consultants tracking <50 clients with weekly digest' produces useful output; 'SaaS for managing clients' produces generic CRM clone. Each spec section narrows Bolt's search space.

What mistakes do first-time Bolt.new users make?

Six common ones: (1) vague spec prompts that produce generic output; (2) forward-patching a fundamentally wrong scaffold instead of regenerating; (3) skipping Supabase RLS setup (anyone with service-role key reads all data); (4) deploying with Stripe test keys (production accepts test cards, never charges real customers); (5) cramming too many features into one iteration prompt (Bolt's quality drops past 3 unrelated changes); (6) not exporting to GitHub regularly (Bolt's storage is good but treat GitHub as source of truth).

Idea to deployed SaaS in 90 minutes.

Bolt's superpower is the first 90 minutes. The prompt you feed it is 70% of the output quality. Our AI Prompt Generator writes spec-shaped Bolt prompts (stack + personas + schema + routes + style) tuned to your idea. 14-day free trial, no card.

Browse all prompt tools →