BoilerplateHub

SaaS Stack Recipes

Combinations that work together, with the reasoning for each layer, the friction that specific combination creates, and a CLAUDE.md written for it. Every recipe here has boilerplates in the catalog that use at least part of it.

Next.js + Supabase + Supabase Auth + Stripe

Next.js with Supabase, Supabase Auth and Stripe is the default web SaaS stack, and the reason is that three of the four layers barely need integration code. Postgres holds your data and your users in the same database, and Stripe covers every subscription shape you are likely to invent. It suits a self-serve product where you want full control over billing behaviour.

Next.js + Supabase + Supabase Auth + Lemon Squeezy

Next.js with Supabase, Supabase Auth and Lemon Squeezy trades billing control for a much shorter path to revenue. Lemon Squeezy sells as merchant of record, so tax is handled and checkout is hosted, leaving Supabase to store little more than the entitlement each order granted. It suits a solo developer shipping a paid product without wanting to own a billing subsystem.

Next.js + Supabase + Supabase Auth + Paddle

Next.js with Supabase, Supabase Auth and Paddle is aimed at software with real revenue and real tax exposure. Paddle takes on global tax registration, dunning and business-to-business invoicing, while Supabase keeps the application data and the session. It suits a product past the experiment stage that is starting to sell into companies rather than only to individuals.

Next.js + Firebase + Clerk + Stripe

Next.js with Firebase, Clerk and Stripe pairs a document store built for realtime and offline with auth you do not have to design. Firestore handles collaborative and event-shaped data well, Clerk gives you sign-in and organizations on day one, and Stripe covers billing. It suits a product with live-updating screens and a team plan behind them.

Next.js + Firebase + Clerk + Lemon Squeezy

Next.js with Firebase, Clerk and Lemon Squeezy is the realtime app that wants to start charging without building billing. Firestore drives the live screens, Clerk covers login and profile UI, and Lemon Squeezy sells as merchant of record. It suits an indie product with interactive features where tax compliance is not something you want to own.

React Native + Supabase + Supabase Auth + Stripe

React Native with Supabase, Supabase Auth and Stripe is a mobile client on a Postgres backend where money is collected for things that happen outside the app. It works for marketplaces, bookings, delivery and business tools that charge for real-world transactions rather than for digital features unlocked inside the app itself.

React Native + Supabase + Supabase Auth + RevenueCat

React Native with Supabase, Supabase Auth and RevenueCat is the subscription mobile configuration the app stores actually permit. RevenueCat normalizes receipts and entitlements across both stores, Supabase holds the application data, and the app never touches a card. It suits a consumer app selling premium features or gated content by subscription.

Expo + Supabase + Supabase Auth + Stripe

Expo with Supabase, Supabase Auth and Stripe is the fastest route to a shipped mobile app that charges for real-world transactions. Expo removes the native build work, Supabase provides the Postgres and the session, and Stripe handles payment for goods and services delivered outside the app.

Expo + Supabase + Supabase Auth + RevenueCat

Expo with Supabase, Supabase Auth and RevenueCat is the standard shape for a subscription mobile product built by a small team. Expo manages the native layer, RevenueCat manages store purchases and entitlements, and Supabase holds the users and the content. It suits a consumer app shipping on both platforms from one codebase.

Next.js + Supabase + Better Auth + Stripe

Next.js with Supabase, Better Auth and Stripe keeps the Postgres but moves the user tables under your own migrations. Better Auth writes sessions into the same database your application queries, and Stripe leaves billing logic in your route handlers. It suits a web SaaS whose team wants to read the source of its own auth layer.

Next.js + Supabase + Better Auth + Polar

Next.js with Supabase, Better Auth and Polar puts identity in your database and tax obligations on somebody else's balance sheet. Polar sells as merchant of record while Better Auth keeps users and sessions in the Supabase Postgres you already run. It suits a developer-facing product selling licences or hosted access to a global audience.

Next.js + Supabase + Better Auth + Lemon Squeezy

Next.js with Supabase, Better Auth and Lemon Squeezy is the fast commercial path for a solo build. Better Auth owns identity in Postgres, Lemon Squeezy owns checkout and tax, and the code between them amounts to one signed webhook handler. It suits a product with a small number of fixed plans and no appetite for billing infrastructure.

Next.js + Supabase + Auth.js + Stripe

Next.js with Supabase, Auth.js and Stripe is the assembled version of the default stack: Postgres from Supabase, OAuth from Auth.js, and billing you write yourself. Nothing here is bundled, so every piece stays replaceable. It suits a team that wants social login working this week and accepts designing roles and billing state around it.

Next.js + Supabase + Auth.js + Lemon Squeezy

Next.js with Supabase, Auth.js and Lemon Squeezy pairs a thin auth layer with a merchant of record, leaving very little of the stack that you actually own. Supabase holds the data, Auth.js holds the session, Lemon Squeezy holds the money and the tax. It suits a one-plan or few-plan product sold to individuals.

Next.js + Neon + Better Auth + Stripe

Next.js with Neon, Better Auth and Stripe is a Postgres stack built around branching. Every pull request can get a database copy where auth tables and Stripe state are migrated and exercised together. It suits a small team with review discipline shipping a subscription product they expect to keep changing.

Next.js + Neon + Better Auth + Polar

Next.js with Neon, Better Auth and Polar keeps schema control while handing off compliance. Better Auth's tables and a mirror of Polar's grants both live in branchable Postgres, so entitlement logic stays safe to iterate on. It suits a developer tools business selling worldwide from a very small team.

Next.js + Neon + Better Auth + Lemon Squeezy

Next.js with Neon, Better Auth and Lemon Squeezy is a deliberately small stack: one Postgres, one auth library, one hosted checkout. Neon's branching gives you somewhere to change what a plan means without touching live data. It suits an early product still working out the shape of its pricing.

Next.js + Turso + Better Auth + Stripe

Next.js with Turso, Better Auth and Stripe is built for per-tenant isolation. A control database holds users, tenants and subscriptions while each customer gets their own SQLite database. It suits a business tool whose buyers ask where their data physically lives and expect a specific answer.

Next.js + Turso + Better Auth + Polar

Next.js with Turso, Better Auth and Polar combines per-tenant SQLite with a merchant of record, so neither the database nor the codebase carries billing weight. Better Auth's organizations line up with tenant databases and Polar's benefits line up with entitlement checks. It suits a small-team business product sold internationally.

Next.js + Turso + Better Auth + Lemon Squeezy

Next.js with Turso, Better Auth and Lemon Squeezy is the licence-key configuration. Lemon Squeezy issues and validates keys, Turso stores activations, and Better Auth provides the account wrapped around them. It suits a paid developer tool, desktop app or API sold to individuals rather than to companies.

Nuxt + Supabase + Better Auth + Stripe

Nuxt with Supabase, Better Auth and Stripe puts every database and billing call inside Nitro server routes. Supabase supplies the Postgres, Better Auth supplies a session your server middleware resolves, and Stripe supplies billing you write yourself. It suits a Vue team building a subscription product with pricing logic of its own.

Nuxt + Supabase + Better Auth + Polar

Nuxt with Supabase, Better Auth and Polar keeps the application simple by keeping money out of it. Nitro handles checkout creation and webhooks, Better Auth handles identity inside Supabase Postgres, and Polar handles tax and invoicing. It suits a small Vue product selling digital access across borders.

Nuxt + Neon + Better Auth + Stripe

Nuxt with Neon, Better Auth and Stripe pairs preview deployments with preview databases. Nitro environments and Neon branches can be moved together, so a reviewer clicks through real auth and real billing state. It suits a team shipping a Vue SaaS where pricing changes often enough that it needs testing.

Nuxt + Neon + Better Auth + Polar

Nuxt with Neon, Better Auth and Polar is the low-obligation version of the Vue subscription stack. Polar holds the authoritative billing record, Neon holds a rebuildable projection of it, and Better Auth holds identity in that same database. It suits a founder who wants to sell globally without starting a tax project.

Nuxt + Turso + Better Auth + Stripe

Nuxt with Turso, Better Auth and Stripe is for a Vue app deployed close to its users. SQLite replicas serve reads locally while a single primary holds sessions and subscription state. It suits a read-dominated or content-heavy product that still charges a recurring fee.

Expo + Supabase + Better Auth + Stripe

Expo with Supabase, Better Auth and Stripe is a mobile client on a backend you operate, taking payment for things that happen in the real world. Bookings, deliveries, physical goods and services between people all fit. Digital features unlocked inside the app do not, and that boundary decides whether this stack is legal for your product.

Expo + Supabase + Better Auth + RevenueCat

Expo with Supabase, Better Auth and RevenueCat is the subscription configuration the app stores actually permit, with identity kept in your own database rather than a vendor's. RevenueCat normalises store purchases into entitlements, Supabase holds the content those entitlements unlock, and Better Auth ties one person to both.

Related