{/* pipeline:source stack-better-auth stack-clerk-pricing stack-drizzle-overview stack-neon-pricing stack-next-components stack-prisma-edge stack-resend-pricing stack-supabase-pricing stack-vercel-limits /} {/ pipeline:claim pricing-plan-current release-version-status-current compatibility-integrations-current product-capabilities-current performance-benchmarks-current ranking-popularity-superlative-current availability-provider-status-current */}
TL;DR
There is no source-backed universal SaaS stack winner. Start with a requirements matrix covering runtime, data model, auth ownership, billing, background work, deployment, and operating cost. A common web stack can still be a sensible baseline, but the recommendation is conditional: choose each layer from your product requirement and the documented interface it exposes.
A practical default for a conventional TypeScript SaaS is Next.js, PostgreSQL, one ORM that supports the chosen driver and runtime, managed or self-owned auth, a billing provider, transactional email, and a deployment target. This is a conditional recommendation: change a layer when the target workload, ownership model, or runtime constraints require it—not because a different tool is fashionable.
Key Takeaways
- Next.js App Router documents separate Server and Client Component interfaces. That is useful architecture evidence, not proof of a market consensus.
- Prisma now documents edge deployment through a compatible driver and driver adapter. Cloudflare and Vercel edge support was marked Preview in the current documentation checked on 2026-08-22, with runtime-specific constraints.
- Drizzle exposes SQL-like and relational APIs. Prisma versus Drizzle is a runtime-specific choice involving drivers, migrations, query needs, and deployment constraints.
- Pricing below is dated first-party pricing, accessed 2026-08-22. Recalculate from the chosen workload before committing to a stack.
- No reproducible benchmark receipt supports the old adoption, bundle-size, scale, or cost thresholds. Measure the target workload instead.
- Add AI tooling only when the product has an AI requirement.
At-a-glance requirements matrix
| Layer | Documented option | Decision to make before choosing |
|---|---|---|
| Application | Next.js App Router | Which work belongs in Server Components, Client Components, route handlers, or a separate worker? |
| Database | PostgreSQL through Neon or Supabase | Do you need an integrated backend platform, database branching, a specific region, or a specific connection model? |
| ORM/query layer | Prisma or Drizzle | Which drivers, migrations, query style, and runtime constraints does the app have? |
| Authentication | Clerk, Better Auth, Supabase Auth, or another verified provider | Who owns sessions, organizations, SSO, recovery, and authorization? |
| Billing | A provider selected for the real tax, subscription, and checkout requirements | Which billing model and compliance responsibilities apply? |
| Resend or another provider tested against the required volume and deliverability needs | What are the transactional volume, domain, and retention requirements? | |
| Deployment | Vercel, containers, workers, or a split app/worker topology | Do request size, execution duration, background work, sockets, or edge support constrain the runtime? |
Layer-by-layer decisions
Application framework
The checked Next.js documentation describes Server and Client Components. Server Components can fetch data and keep server-only dependencies out of the client bundle; Client Components handle browser state and interaction. Treat that split as a documented interface. It does not mean every workload belongs inside one Next.js deployment.
Keep request-driven product work close to the application when that improves locality. Put long-running or independently scaled work behind a separate worker when the operational requirements call for it. Verify the exact deployment limit rather than repeating broad claims that a platform lacks scheduling or background capability.
Database and data access
PostgreSQL remains a flexible relational foundation, but hosting and access patterns matter. Neon and Supabase expose different product surfaces and billing models. Choose from region, connection behavior, branching or integrated services, storage needs, and the rest of the application—not from a synthetic provider ranking.
Prisma is not categorically incompatible with edge runtimes. Its current documentation describes supported edge scenarios with compatible database drivers and driver adapters, including Neon Serverless in named Cloudflare and Vercel configurations. Those two edge-function paths were marked Preview when checked. Drizzle documents SQL-like and relational query interfaces with opt-in tooling. That makes this a runtime-specific choice, not a rule that every edge or Bun application must choose Drizzle.
Before selecting either:
- confirm the target runtime and database driver;
- run the migrations against a disposable database;
- exercise representative queries;
- inspect generated SQL and failure behavior;
- benchmark the target workload in the target deployment.
The earlier guide cited adoption, bundle-size, and scale numbers without code, versions, hardware, workload, or raw results. There is no reproducible benchmark receipt for those claims.
Authentication
Choose auth from ownership and product requirements. Managed auth can reduce implementation work, but authorization, tenant isolation, recovery, and billing integration still belong to the application. Better Auth currently describes itself as framework-agnostic; the evidence supports no forecast about a future default.
For B2B products, evaluate organization membership, roles, permissions, invitations, SSO, and session context explicitly. For self-owned auth, budget for session storage, cookie policy, verification, account recovery, rate limits, and incident response.
Billing and email
Billing is not a one-line package choice. Define the commercial model first: flat subscription, per seat, usage, credits, marketplace payments, or merchant-of-record checkout. Then evaluate the provider against taxes, refunds, invoicing, webhooks, reconciliation, and supported countries.
Resend's checked pricing page listed 3,000 transactional emails per month on Free and 50,000 on its $20 Pro tier. Those values are dated evidence, not a capacity recommendation. Test sending-domain setup and deliverability for the actual audience.
Dated first-party pricing
The following values were accessed 2026-08-22:
| Service | Checked offer | Important qualifier |
|---|---|---|
| Neon | Free at $0 with 0.5 GB storage per project; paid Launch and Scale are usage-based | Model the selected region, compute, storage, and traffic. |
| Supabase | Free from $0; Pro from $25 per organization plus project compute | An organization price is not a complete project bill. |
| Clerk | Hobby free with a 50,000-MRU limit per app; Pro at $25 monthly | Confirm the current definition and any paid add-ons for the application. |
| Resend | Free includes 3,000 transactional emails monthly; Pro lists 50,000 at $20 | Volume is not a deliverability guarantee. |
Prices and plan names change. Treat these as dated first-party pricing and recalculate from the chosen workload immediately before purchase or publication.
Deployment and runtime constraints
The checked Vercel function documentation lists a 4.5 MB request/response payload limit and runtime-specific execution constraints. That is a concrete limit to test around; it does not justify sweeping claims about scheduling, background work, sockets, or persistent-server patterns.
A split topology is often cleaner when the web application and worker have different interfaces:
- web application: user requests, pages, route handlers, and short transactions;
- worker: queues, scheduled processing, long-running jobs, or specialized runtimes;
- shared database and event contract: narrow, explicit, and tested.
Do not add that split before the requirement exists. Do not avoid it once the requirement is clear.
Methodology
This refresh uses current first-party documentation and pricing pages approved in the Wave v2-02 packet. We preserve product-specific claims, qualify Preview status, and remove unsupported popularity, performance, cost, and capacity claims. Source reachability is an access-time availability signal only. It is not a quality ranking.
Poor reasons to change a layer include “this seems more interesting,” “bundle sizes are smaller,” or “we'll need to scale.” Better reasons describe the measurable constraint: “our data is document-oriented” only matters after testing the actual data and query model, and “our specific requirements make the consensus choice worse than the alternative” should name those requirements.
Best fit cards
Choose an integrated backend when
You want database, auth, storage, and related services under one operating model, and the coupling matches the product's needs. Confirm pricing and export paths before adopting it.
Choose separate managed services when
You want to swap or scale auth, database, email, and billing independently. Accept the added integration and incident surface.
Choose self-owned components when
Control, compliance, or long-term operating economics justify the implementation and maintenance burden. Budget for security, upgrades, recovery, and observability.
Choose an edge-oriented runtime when
Latency or geographic execution is a measured requirement and every required driver, adapter, and dependency works in that runtime. Preview support deserves a canary and rollback plan.
Affiliate and data disclosure
StarterPick is a comparison directory. This guide does not rank tools from affiliate payouts or a private performance dataset. Links in this refresh are editorial references or internal navigation; prices, plan names, and availability remain subject to the named providers' current terms.
Source notes
Sources accessed 2026-08-22:
- Next.js Server and Client Components
- Prisma edge deployment overview
- Drizzle overview
- Better Auth introduction
- Neon pricing
- Supabase pricing
- Clerk pricing
- Resend pricing
- Vercel function limitations
Related guides
- Find boilerplates using each stack combination on StarterPick.
- Review T3 Stack.
- Compare production SaaS free-tool stacks.
- Browse the top SaaS boilerplates for 2026.
- Understand the customization tax in boilerplate architecture.
