resources/guide

The tools i use to build and ship a saas in 30 days

WhatDidIActuallyShip·April 18, 2026·6 min read
toolssaasspeed

The 30-Day Reality Check

Let me be straight with you: shipping a SaaS in 30 days isn't about building the perfect product. It's about building the minimum viable product that solves a real problem for real people, then getting it in front of them before you second-guess yourself to death.

I've done this twice now. The first time, I wasted 15 days on "infrastructure decisions" that didn't matter. The second time, I shipped in 28 days. The difference? I stopped optimizing and started shipping.

The tools matter, but only because they get out of your way. If you're spending time configuring CI/CD pipelines or debating database schemas on day 20, you've already lost.

The Core Stack: Keep It Stupid Simple

Backend & Database

I use Next.js with Vercel. This is non-negotiable for me because:

  • One language (TypeScript) for frontend and backend means I'm not context-switching.
  • API routes are literally just files in a folder. No boilerplate.
  • Vercel deploys on every git push. Zero DevOps overhead.
  • Edge functions and serverless scaling mean I don't think about servers.

For the database, I use Supabase (PostgreSQL with a nice dashboard). Why? Because I can:

  • Set up tables in 5 minutes through the web UI.
  • Use their auto-generated REST API if I'm lazy (I am).
  • Write raw SQL when I need to optimize (rarely in 30 days).
  • Get free authentication with their Auth library.

I've experimented with MongoDB, Firebase, and custom Express backends. Every minute saved on infrastructure is a minute you can spend shipping features users actually want.

Frontend & UI

I build UIs with React + shadcn/ui + Tailwind CSS. This is the speed trifecta:

  • shadcn/ui gives me 30+ production-ready components I can copy-paste.
  • Tailwind means I style without writing a single CSS file.
  • React is what I know, so there's no learning curve.

On day 3, I had a login page, dashboard skeleton, and three pages. That's not because I'm fast—it's because these tools are fast. I literally used a template from Shadcn UI's examples and modified it in 20 minutes.

Authentication

Don't build this yourself. I use Supabase Auth for OAuth + password auth. It took me 45 minutes to get GitHub and Google OAuth working on my product. Forty-five minutes.

If you're building B2B, consider Clerk instead. They handle enterprise SSO and user management better, though they cost more. For 30 days? Supabase is free and gets the job done.

The Workflow: Ship Before You're Ready

Development & Deployment

My workflow is brutally simple:

  1. Build locally with npm run dev.
  2. Push to GitHub.
  3. Vercel deploys automatically.
  4. Test on production (not ideal, but we're shipping in 30 days).

I don't use a staging environment. I don't use Docker. I don't have a QA process. If you're building in public, your users are your QA, and they're more forgiving than you think.

For version control, I use GitHub because it's free and everyone knows it. I commit frequently (sometimes 15+ times a day) and write commit messages like "fix login bug" or "add stripe checkout"—nothing fancy.

Analytics & Feedback

On day 1, I add PostHog to my codebase. It's one line of JavaScript, and suddenly I know:

  • How many people signed up.
  • What features they actually use.
  • Where they drop off.

I don't obsess over analytics until day 20. Before then, it's just noise. But on day 20, when you have 100 users, you'll want to know that nobody's using your "advanced settings" page so you can delete it and ship something people actually need.

For direct feedback, I use Slack. I literally put my Slack link in the app and ask users to message me. The first 30-50 users will respond, and they'll tell you exactly what's broken or missing. This is gold.

Payments (If You're Charging)

Use Stripe. It's the standard for a reason. Set up a /api/checkout endpoint that creates a Checkout Session and redirects to Stripe. Add a webhook listener for checkout.session.completed and mark the user as paid in your database.

Total time: 2 hours. Total complexity: low. I've done this 5+ times, and it still takes me the same 2 hours because Stripe's documentation is excellent.

If you're not charging on day 30, you can skip this entirely. Don't add payment processing just because you think you should. Build it when users ask for it.

What I Don't Use (And Why That Matters)

Let me tell you what's sitting in my graveyard of 30-day wasted time:

  • Microservices: Overkill. Monolith wins every time when you're shipping in 30 days.
  • Advanced caching layers: Redis is cool. You don't need it yet. Vercel caches your API responses automatically.
  • Observability platforms: New Relic? Datadog? Skip it. Vercel's built-in logs are enough.
  • Custom design systems: Use shadcn/ui. Seriously. Don't design custom buttons.
  • CI/CD pipelines: GitHub Actions with automated tests? Beautiful. Also unnecessary for 30 days. Ship fast, fix bugs fast.

Every tool you add is a tool that can break, that you have to learn, that requires documentation. On day 30, you don't care about elegance. You care about done.

The 30-Day Checklist

Here's what I ship by day 30:

  • Day 1-3: Core product (one feature, done really well).
  • Day 4-7: Authentication + basic payment setup.
  • Day 8-15: Second feature (even if it's rough).
  • Day 16-25: Bug fixes, performance, and listening to users.
  • Day 26-30: Landing page, launch prep, and shipping.

This isn't a formula—it's a starting point. Your timeline might be different, but the principle is the same: ship incomplete, then iterate with real users.

The Real Takeaway

The best tool for building and shipping fast isn't a tool at all. It's saying no. No to perfection. No to over-engineering. No to the feature that can wait.

Use tools that let you build without thinking about infrastructure. Vercel, Supabase, shadcn/ui, and Stripe are forces multipliers because they're invisible when they work. You focus on your product, not your tech stack.

If you're reading this and thinking "I want to ship in 30 days," you already know what you need to build. Stop planning and start coding. Your future self on day 30 will be grateful you did.

Now go ship something.

W
Published April 18, 2026