Pro
AI SaaS MVP · 7 tools

The AI SaaS MVP Stack

A TypeScript-first stack for shipping an AI-backed SaaS to paying users fast, without gluing together a dozen services. Postgres and auth handled, payments that deal with tax for you, and a model layer you can swap without a rewrite.

Published · For: Indie hackers, Solo founders, Small teams
The stack
  1. 01
    NE
    App framework

    Next.js

    Meta Frameworks

    One codebase for the marketing site, the app, and the API routes that call your models. Server components keep keys server-side and the bundle small.

  2. 02
    SU
    Database and storage

    Supabase

    Databases

    Managed Postgres with row-level security, file storage, and pgvector for embeddings in one project. No separate vector database to run on day one.

  3. 03
    CL
    Auth

    Clerk

    Auth

    Drop-in components for sign-in, sessions, and organizations. Cleaner DX than rolling your own, and the org primitives map directly to a team-billing model.

  4. 04
    PO
    Payments and billing

    Polar

    Payments

    Merchant of record, so it remits VAT and sales tax for you. That removes the single biggest tax headache a solo founder hits selling globally.

  5. 05
    CL
    Model

    Claude

    AI Models

    Strong reasoning and tool use for the AI features, with a pricing ladder from Haiku to Opus so you match cost to the task instead of overpaying per call.

  6. 06
    OP
    Model routing

    OpenRouter

    Inference

    One API in front of many providers with automatic fallback. Switch or A/B models without touching app code when prices move or a better one ships.

  7. 07
    VE
    Hosting

    Vercel

    Hosting

    Zero-config deploys for Next.js with preview URLs per branch and edge functions where you need low latency. Scales to zero so an idle MVP costs little.

Why this combo

Each pick removes a category of work a solo founder cannot afford to take on at MVP stage. Supabase means no database to operate and no vector store to add later. Clerk means no auth to secure. Polar means no tax compliance to research. OpenRouter in front of Claude means the model is a config value, not a dependency you marry on day one. The whole thing is TypeScript end to end, so one person can hold all of it in their head and Vercel ships it on every push.

This stack optimizes for one thing: getting an AI product in front of paying users with the fewest moving parts you have to operate yourself. It trades some long-term flexibility for speed, which is the right trade before you have revenue or know what scales.

What this costs to start

All seven services have a usable free or pay-as-you-go tier, so a pre-revenue MVP runs at close to zero in fixed cost. The variable cost is model usage, and that is where the design pays off. Routing through OpenRouter lets you default to a cheaper model and reserve Opus-tier calls for the requests that actually need the reasoning, so the AI bill tracks value delivered rather than a flat per-seat rate. Polar takes a percentage per transaction in exchange for handling tax, which is cheaper than the accountant you would otherwise need to file across jurisdictions.

What to swap when you scale

The point of the routing and managed layers is that growth does not force a rewrite, it forces individual swaps:

  • Model spend climbing: add a self-hosted or dedicated-inference provider behind OpenRouter for your highest-volume route, and keep Claude for the calls that need it.
  • Database hot paths: Supabase is Postgres, so read replicas and connection pooling are configuration, not migration. A dedicated Postgres host is a later option if you outgrow the managed tier.
  • Billing complexity: if you reach the scale where Stripe’s lower fees beat the convenience of a merchant of record, the move off Polar is a billing-layer change, not an app rewrite.

Where it is not the right call

If your product is not actually AI-first, drop the model layer and the savings logic goes with it. If you are a funded team with a dedicated platform engineer, the managed-everything bias here is the wrong default, and you would self-host more to control cost and data. This stack is tuned for the constraint that defines an MVP: one or two people, no time to operate infrastructure, and a need to charge money this month.

esc