The Fastest Way to Monetize Your App: A Next.js Starter Template for Vibe Coders
If you're starting a new SaaS project and want to accept payments right out of the gate, this Next.js starter template is for you.
It’s built for the vibe coder — someone who wants to build fast, focus on features, and avoid wasting hours wiring up auth, subscriptions, and paywalls. Whether you're experimenting with a new idea or getting serious about growing MRR, this template will save you days (or weeks) of setup.
In this guide, I’ll show you exactly how to use the template to set up authentication, enable subscription billing, and gate premium features. The stack is modern (Next.js + Supabase + Stripe), and it’s powered by Update — a wrapper around auth and billing services that makes this stuff easy.
Why This Starter Kit?
There are a ton of Next.js templates and boilerplates out there. But most of them either:
- Stop at auth and leave you hanging on billing
- Assume you’re a senior dev who wants to wire up everything by hand
- Don’t scale when you want to add things like entitlements or metered pricing
This one solves all that.
You’ll get:
- Supabase auth out of the box
- Stripe subscriptions (monthly, yearly, one-time)
- A paywall already in place
- Real entitlements (pro, team, etc.)
- An easy UI for managing plans and features
Let’s dive in.
Step 1 — Clone the Starter Kit
Start here:
👉 https://github.com/wyattm14/saas-template
Click “Use this template” → “Create a new repository”
Give your repo a name, choose public/private, and hit create.
Then in your terminal:
git clone https://github.com/your-username/your-repo-name.gitcd your-repo-namepnpm install
Step 2 — Connect Supabase & Stripe via Update
Go to Update.dev and create an account.
Connect your Supabase and Stripe accounts in the onboarding flow. Update handles the setup, so you don’t need to deal with API keys manually.
Step 3 — Add Your Environment Variables
Update will give you a .env
block — paste this into your project’s .env
file:
NEXT_PUBLIC_UPDATE_PUBLIC_KEY=NEXT_PUBLIC_SUPABASE_URL=NEXT_PUBLIC_SUPABASE_ANON_KEY=NEXT_PUBLIC_SITE_URL=http://localhost:3000
Make sure to set NEXT_PUBLIC_SITE_URL
to match your local dev setup.
Step 4 — Start the Dev Server
pnpm dev
Then open http://localhost:3000 in your browser.
Log in with email + password or enable Google sign-in via Supabase.
Step 5 — Add Billing
In Update, go to the “Entitlements” tab and create one (e.g. pro
, team
, or premium
). Then go to the “Products” tab and attach a Stripe product to that entitlement.
In the starter, the following entitlements are already built-in:
- basic
- pro
- premium
- team
- enterprise
You can change how each plan works by editing:
components/pricing-card.tsx
If you want to test billing, use Stripe’s test card:
- Number: 4242 4242 4242 4242
- Expiry: 02/42
- CVC: 424
Step 6 — You’re Live
You now have a working paywall with authentication, subscriptions, entitlements, and billing logic — all from a single Next.js template. You can start building features and gating access to them by checking the user’s plan status.
Everything syncs through Update’s dashboard, so you can make changes without redeploying your app.
A Next.js Boilerplate That Just Works
Whether you're building a subscription SaaS, a paid API, or a content product, this starter will get you up and running fast. No duct tape. No complex webhook logic. No copy-pasting Stripe boilerplate.
This isn’t just another Next.js boilerplate — it’s designed to handle all the painful stuff for you so you can ship.
Need Help?
DM me on X (Twitter), hop in the Discord, or open an issue on GitHub.
If This Helped…
- Follow me → @wymi_
- Follow @updatedotdev
- Star the Update client repo
- Star the SaaS template