How I built a SaaS app with Claude in one weekend
Friday night. I had an idea for a client feedback tool—something simple where agencies could collect structured feedback from clients, track revision rounds, and stop the endless email chains of "can you make the logo bigger." By Sunday night, it was live, accepting signups, and processing payments.
This is the full story. Not the polished version. The real one, including the parts where things broke.
The idea
Every agency deals with the same client feedback problem. You send a design. The client replies with 47 bullet points spread across 3 emails, 2 Slack messages, and a voicemail. You miss half of it. They get frustrated. You get frustrated.
I wanted a tool where: clients get a link, leave feedback on specific sections of a deliverable, feedback is organized by revision round, and the agency dashboard shows everything in one place. Simple scope. Perfect for a weekend build.
Friday night: planning (1 hour)
I didn't write a product spec. I opened a text file and listed:
- Client-facing feedback form (sharable link, no account required)
- Agency dashboard (requires login)
- Project management (create projects, upload deliverables, generate feedback links)
- Revision tracking (round 1, round 2, etc.)
- Stripe billing (free tier: 3 projects, pro tier: unlimited at $19/month)
- Email notifications when new feedback arrives
That's it. No wireframes. No database diagrams. The skill file would handle the architecture.
Saturday morning: the scaffold (2 hours)
I created a fresh directory, dropped in the SaaS Builder skill, and opened Claude Code.
My first prompt:
"Read SKILL.md. Build a client feedback SaaS for design agencies. Core features: sharable feedback forms, an agency dashboard showing all projects and feedback, revision round tracking, and Stripe billing with a free tier (3 projects) and pro tier at $19/month. Use Supabase for auth and database."
Claude Code read the skill and went to work. In about 12 minutes, I had:
- Next.js 14 project with App Router
- Supabase auth with email/password
- Database schema with tables for organizations, projects, deliverables, feedback, and revision rounds
- API routes for CRUD operations
- Dashboard layout with sidebar navigation
- Stripe integration scaffolded with subscription logic
- 67 files total
I ran npm run dev and had a working app in my browser. Login worked. Dashboard loaded. The project list was empty but functional.
Saturday afternoon: core features (4 hours)
I worked through features one at a time:
"Build the project creation flow. Users fill out a form with project name, client name, and client email. After creation, show the project detail page with a tab for deliverables and a tab for feedback."
Then:
"Add deliverable upload. Users drag and drop an image or PDF. Store the file in Supabase storage. Show a thumbnail on the project detail page. Generate a unique sharable link for each deliverable."
Then:
"Build the client feedback form. No login required. The client sees the deliverable and a structured feedback form with sections for Overall Impression, Specific Changes, and Approval Status. Feedback saves to the database linked to the deliverable and the current revision round."
Each prompt took 3-8 minutes to execute. By 5pm Saturday, I had project creation, file upload, and the feedback form working end-to-end. I could create a project, upload a mock design, open the feedback link in an incognito window, submit feedback, and see it appear on the agency dashboard.
Saturday evening: the Stripe rabbit hole (2 hours)
Billing is where the skill file saved me the most time. The SaaS Builder skill has specific patterns for Stripe webhook handling, subscription state syncing, and customer portal redirects. Claude Code followed all of them.
I did hit one snag. The Stripe webhook for customer.subscription.updated wasn't being caught because I'd misconfigured the webhook endpoint URL in Stripe's dashboard. Spent 45 minutes convinced it was a code bug. It was a typo in a URL. Classic.
By 8pm Saturday, billing worked. Free tier limited to 3 projects. Pro tier unlocked unlimited. Upgrade flow through Stripe Checkout. Downgrade through the customer portal. Webhook syncing subscription status to the database.
Sunday: polish and ship (8 hours)
Sunday was all refinement. I switched between Claude Code for new components and Cursor for visual tweaks.
Morning priorities:
"Add email notifications. When a client submits feedback, send an email to the agency user with a summary and a link to the feedback."
"Build a revision round system. Each deliverable can have multiple rounds. When the agency uploads a new version, it starts a new round. Previous feedback is still visible but marked as a previous round."
Afternoon priorities:
"Add the shadcn Dashboard patterns for the analytics section. Show total projects, active feedback rounds, response rate, and average time to approval in the agency dashboard."
The shadcn Dashboard skill made the analytics section look professional in about 20 minutes. Proper data cards, a clean chart showing feedback volume over time, and a table of recent activity.
Last few hours were spent on the landing page, fixing responsive issues on mobile, writing copy (using the humanizer patterns in my head at this point), and deploying.
The deployment
Pushed to GitHub. Connected to Vercel. Set environment variables: Supabase URL, Supabase anon key, Stripe secret key, Stripe webhook secret, app URL. First deploy failed because I forgot to add the NEXT_PUBLIC_ prefix to the Supabase URL env var. Fixed it. Second deploy worked.
Pointed my domain. SSL provisioned automatically. By 9pm Sunday, the app was live on a custom domain with a working landing page, functional auth, project management, client feedback forms, revision tracking, email notifications, and Stripe billing.
The numbers
- Total build time: ~14 hours of active work across Saturday and Sunday
- Files generated: 94 files in the final project
- Lines of code: Roughly 8,200
- Cost: Claude Pro $20 + SaaS Builder skill $29 + shadcn Dashboard skill $29 + domain $12 + Vercel hosting $0 = $90 total
- Stack: Next.js 14, Supabase, Stripe, Tailwind CSS, shadcn/ui, Vercel
At an agency (my old agency), this project would have been quoted at $18k-$25k with a 6-8 week timeline. I'm not saying the weekend version has the same level of polish as an 8-week agency build. But it has the same core functionality, it works, and it's live. The polish comes from iterating with real user feedback, not from spending more time in a vacuum.
What I'd do differently
I'd add the Landing Page Builder skill to the mix. I wrote the landing page copy manually and used the SaaS Builder's basic page patterns. The dedicated landing page skill would have saved me an hour and produced better conversion patterns.
I'd also write my first prompt more specifically. I was vague about the feedback form structure and had to re-prompt to get the sectioned layout I wanted. More detail upfront means fewer iterations later.
You can do this too
I'm not showing off. I'm showing what's possible now. A year ago, this weekend build would have taken me 3 weeks working solo, because I would have spent most of that time making architecture decisions, not building features.
The skill file made every architectural decision before I wrote my first prompt. That's the real leverage. Not the AI model. The context you give it.
Grab the SaaS Builder skill and try it this weekend. Or take the skill finder quiz if you're not sure which skill matches your idea.
Frequently Asked Questions
What tech stack was the SaaS built with?
Next.js 14 with App Router, Supabase for auth and database, Stripe for billing, Tailwind CSS with shadcn/ui for the UI, and Vercel for hosting. Every one of these choices came from the SaaS Builder skill file. I didn't make a single stack decision myself.
How many hours of actual work did the weekend build take?
About 14 hours across Saturday and Sunday. Saturday was 6 hours (2 for scaffold, 4 for core features). Sunday was 8 hours (features, polish, landing page, deployment). The rest of the weekend was normal life—meals, walks, sleep.
Could a non-technical person replicate this weekend build?
A non-technical person would take longer—probably 3-5 days instead of a weekend. But the process is identical. The skill file handles every technical decision. The main skill you need is the ability to describe what you want clearly and specifically. Several of our non-technical customers have shipped similar projects within a week.
What was the total cost to build and launch?
$90 total. Claude Pro subscription: $20/month. SaaS Builder skill: $29. shadcn Dashboard skill: $29. Domain name: $12/year. Vercel hosting: free on the hobby tier. After launch, Stripe takes 2.9% + $0.30 per transaction. That's it.