Every tool in my stack was chosen for one reason: it lets me ship a production SaaS in 2 weeks without compromising on quality. Here's the exact stack, what each tool costs, and why I chose it over the alternatives.
The Core Stack
Next.js 15 handles the full stack frontend, API routes, and server components in one repo. TypeScript catches bugs before runtime. Tailwind + ShadCN gives me a complete design system in minutes. Supabase handles auth, database, and storage. Stripe handles payments. Vercel handles deployment.
Why Supabase Over Firebase
Postgres. Row Level Security. Real SQL. Supabase gives you a production-grade database with built-in auth and a generous free tier. Firebase is fine for prototypes but you'll hit walls fast when you need complex queries or proper security policies.
The Stripe Setup
Stripe is non-negotiable. The webhook system is reliable, the docs are excellent, and the customer portal handles subscription management so you don't have to build it.
// Minimal Stripe webhook handler
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, process.env.STRIPE_WEBHOOK_SECRET!);
if (event.type === "customer.subscription.updated") {
const sub = event.data.object;
await supabase.from("subscriptions").upsert({
user_id: sub.metadata.user_id,
status: sub.status
});
}
return Response.json({ received: true });
}Monitoring: PostHog + Sentry
PostHog for product analytics which features get used, where users drop off. Sentry for error tracking you need to know when things break before your users email you. Both have free tiers that cover MVP scale.
Want this stack set up for your idea? Book a call and I'll have it live in 14 days.