Extracted from 5 production SaaS products
Ship Your SaaS This Weekend
42 production-ready files. Auth, billing, dashboard, admin panel, email drip campaigns, exit-intent popups. Skip 80 hours of boilerplate. $49 one-time.
Built from 5 live, revenue-generating products
Everything you need to launch
42 files. Zero boilerplate debt. Production-tested.
Authentication
- Supabase Auth + Google OAuth
- Route protection middleware
- Session management
- Auto-created user profiles
Stripe Billing
- Subscriptions + webhooks
- Monthly/annual toggle
- 3-tier pricing page
- Customer portal + trials
Dashboard & UI
- User dashboard + stats
- Settings & account mgmt
- Admin panel
- Marketing landing page
Growth Mechanics
- Email drip (Day 3 + Day 7)
- Exit-intent popup
- GA4 event tracking
- UTM / referral capture
Developer Experience
- TypeScript strict, zero any
- ESLint + Prettier configured
- .env template documented
- Cursor AI rules included
Database & Deploy
- Supabase migrations included
- Auto-generated TS types
- Vercel-ready config
- Step-by-step deploy guide
The Stack
Next.js 16React 19TypeScriptSupabaseStripeTailwind CSSVercelResendGA4
Clean, opinionated code
No tutorial spaghetti. Production patterns from day one.
project structure
src/
app/
(auth)/
login/page.tsx
signup/page.tsx
callback/route.ts
(dashboard)/
dashboard/page.tsx
settings/page.tsx
admin/page.tsx
(marketing)/
page.tsx
pricing/page.tsx
api/
stripe/webhook/route.ts
auth/confirm/route.ts
components/
pricing-toggle.tsx
exit-intent.tsx
nav.tsx
lib/
supabase/client.ts
supabase/server.ts
stripe.ts
middleware.ts
supabase/
migrations/
001_profiles.sql
002_subscriptions.sqlapi/stripe/webhook/route.ts
import { stripe } from "@/lib/stripe";
import { supabase } from "@/lib/supabase/server";
export async function POST(req: Request) {
const body = await req.text();
const sig = req.headers.get("stripe-signature")!;
const event = stripe.webhooks
.constructEvent(body, sig, WEBHOOK_SECRET);
switch (event.type) {
case "customer.subscription.updated":
await syncSubscription(event.data.object);
break;
case "invoice.payment_succeeded":
await activatePlan(event.data.object);
break;
}
return Response.json({ received: true });
}The Math
Auth (Supabase + Google OAuth)8 hrs · $600
Stripe subscriptions + webhooks12 hrs · $900
Pricing page + billing toggle4 hrs · $300
Dashboard + settings + admin14 hrs · $1,050
Email drips + exit-intent + GA416 hrs · $1,200
TypeScript config + deploy guide12 hrs · $900
Integration testing + debugging14 hrs · $1,050
80 hours of work~$6,000 value
One-time purchase
$49
No subscription. No upsells. Ship forever.
- 42 production-ready files
- Private GitHub repo access
- Step-by-step deploy guide
- Use on unlimited projects
- Future updates included
Delivered via GitHub. Access within 24 hours.
Frequently Asked Questions
Do I need a Supabase paid plan?
No. The free Supabase tier works for development and low-traffic production. You will likely want the $25/mo Pro plan once you have paying customers, but it is not required to start.
Does this work with Stripe test mode?
Yes. The kit defaults to test mode. Switching to live mode requires updating two environment variables and creating matching products in your live Stripe dashboard.
Can I use this for multiple projects?
Yes. One purchase gives you a personal license. Use it for as many projects as you build. You cannot resell the kit itself.
What if I am not a Next.js developer?
This kit assumes you have built a Next.js app before. It is not a learning resource. Start with the official docs first, then come back when you are ready to move fast.
What is the refund policy?
If you deploy the kit following the guide and it does not work, I will fix it. If the kit is not for you before deploying, contact me within 7 days for a refund.
How long from purchase to live app?
Under 2 hours if you follow the deploy guide. Clone, set up Supabase + Stripe + Vercel environment variables, deploy.
Stop rebuilding the same boilerplate
80 hours of infrastructure, solved. Build your actual product.
Get the Kit — $49