ideastack·8 min read·
The weekend vibe-coding playbook: ship a paid UK micro SaaS Friday to Sunday
Vibe coding started as Karpathy's weekend habit. Two years later it is how a measurable share of UK indie hackers ship their first paid product. The SERP is full of definitional think pieces; what is missing is the hourly weekend plan that actually gets a real GBP-5/month UK micro SaaS live by Sunday night. This is that plan - Friday 18:00 to Sunday 22:00, exact AI stack at each checkpoint, the five things to cut, and a Monday recovery plan if you slip.

Vibe coding started as Andrej Karpathy's off-the-cuff weekend habit. Two years later it is how a measurable share of UK indie hackers are shipping their first paid product. The SERP is full of "what is vibe coding" think pieces. What is missing is the hourly weekend plan that actually gets a product live by Sunday night with a Stripe Payment Link receiving GBP 5/month.
This is that plan. Friday 18:00 to Sunday 22:00. Concrete hourly checkpoints. The exact AI stack at each step. The five things to cut. The recovery plan if you slip into Monday.
Bookmark this and run it next weekend.
The working example throughout
A real micro SaaS that fits the weekend shape: a weekly UK rail fare summary at GBP 5/month. Inputs are easy (the user's own Trainline or TPExpress account, or for v1 a manual upload). Output is a Sunday-night email summarising their rail spend, longest delays, and a "you could have driven for X" cost comparison.
Audience: roughly 4 million UK rail commuters. Pricing model: GBP 5/month, cancel anytime via Stripe Customer Portal. Margin at 100 customers: about 95%. Easy to validate, easy to ship, easy to scale.
This is the example. Steal the shape, substitute your own problem.
The hourly checkpoint plan
Friday 18:00 - 19:00 - Pick the problem and write the pitch
Open a blank doc and write three things:
- One-sentence pitch. "A weekly UK rail summary email for GBP 5/month."
- One-line success measure. "5 friends paying GBP 5/month by Sunday 22:00."
- One-sentence non-goal. "Not making the email pretty. Not having a custom domain. Not having more than a Stripe Payment Link."
Pin the doc somewhere visible. When you get tempted to add scope on Saturday afternoon, the pinned doc is what stops you.
Friday 19:00 - 22:00 - Mock the landing page in Lovable or Bolt
Three hours, including a break for dinner. Open Lovable (or Bolt if you only need the landing page and nothing else). Prompt for a marketing landing page: hero, three-point value prop, FAQ, "Subscribe" button linking to a placeholder Stripe Payment Link, GDPR cookie banner. Get the colour and copy right.
Skip auth for now. Skip the actual product. The landing page is the artefact you will share with 20 friends on Saturday afternoon to gauge interest.
End Friday with a deployed Vercel URL and a working "subscribe" button pointing to a placeholder Stripe link. Go to bed.
Saturday 09:00 - 12:00 - Scaffold the product backend
Coffee, then open Claude Code in a new terminal. Pull the Lovable GitHub export (the landing page repo). Three hours of Claude Code on:
- Next.js 16 + Supabase EU-West region
- Users table + Stripe customer reference
/signupand/dashboardpages with Supabase Auth- A
/api/cron/weekly-emailroute stubbed out for v1
Use the Claude Code prompt pattern from "Claude Code first project" - one prompt, ask for the whole scaffold, let it run, check the build.
The "don't bother yet" list:
- Real rail data integration (Trainline scraping, Open Banking) - v2.
- Email design polish - default Resend template is fine.
- Admin panel for you - your Supabase dashboard is the admin panel.
- Per-user customisation - everyone gets the same email this weekend.
Saturday 12:00 - 14:00 - Wire Stripe UK GBP
Two hours, including lunch. In Stripe Dashboard:
- Create a Product called "Weekly Rail Summary", price GBP 5/month recurring.
- Generate a Payment Link from that product.
- Configure the Stripe Customer Portal to allow self-serve cancellation.
- Set up a webhook endpoint pointing at your Vercel production URL
/api/stripe/webhook.
In your code, ask Claude Code to write a webhook handler that updates users.stripe_customer_id on checkout.session.completed. Test it with the stripe-cli local webhook. Commit and deploy.
By 14:00 Saturday you have a working end-to-end paid signup. Test it yourself with a real GBP 5 card payment. Refund yourself afterwards.
Saturday 14:00 - 18:00 - Share with 20 friends
The four hours that decide whether your weekend was worth it.
Make a list of 20 friends or contacts who plausibly commute by UK rail. WhatsApp, text, or DM each one with a personal note plus the landing page URL. Not a marketing blast - one-to-one messages. Ask: "Quick favour - I built this thing today, can you look and tell me if you would pay GBP 5/month for it?"
Expect 8-12 replies. Expect 2-4 to actually click "subscribe" and try it. If you get one paying customer by Saturday 18:00, the weekend has paid for itself. If you get five, you have a product.
While you wait for replies, prep the Sunday email content - what will the first weekly summary actually say to a user signing up today?
Saturday 18:00 - 22:00 - Build the email job
Four hours including dinner. The Resend client + Vercel Cron from the Claude Code walkthrough. Prompt Claude Code:
Add Resend with RESEND_API_KEY. Add a Vercel Cron at Sunday
19:00 UK time that, for every user with stripe_customer_id
IS NOT NULL, sends an email with subject "Your week on the
rails" from hello@<your-domain>.co.uk.
For v1 the body is hard-coded: "Hi [name], your weekly UK
rail summary will land here every Sunday at 19:00. We are
still wiring the real data import - reply to this email if
you want to be first when it goes live next week."
Yes - your v1 email tells the user the real data is not here yet. That is honest, and the friends paying you GBP 5/month right now are paying for the email habit + early-adopter status, not for the data. They will get the real version in a week.
Sunday 09:00 - 14:00 - Polish the landing page
Five hours including lunch. By Saturday night you have feedback from friends. Pick the three things they said and act on them. Maybe the value prop is wrong. Maybe the pricing should be GBP 4 not GBP 5. Maybe the FAQ does not address "is my Trainline data safe".
Rewrite the landing page in Lovable based on the feedback. Push the change. Test the full Stripe flow once more. Send a "v0.2 is up" follow-up message to the friends who replied but did not subscribe.
Sunday 14:00 - 19:00 - Final test + actually ship the first email
Five hours. By 18:00 you should have:
- 1-5 paying customers in your users table
- A working Stripe webhook
- A polished landing page
- A Vercel Cron set to fire at Sunday 19:00 with the v1 email
At 19:00, the cron fires the first email. Check Resend's dashboard to confirm delivery. Watch your inbox for the first replies.
Sunday 19:00 - 22:00 - Document the loop and write the next week's plan
Three hours, including a celebratory pint. Open the original Friday doc. Write:
- What worked.
- What broke.
- The five things to add this week (real data import, custom domain, design polish, second email per week, referral incentive).
- The success measure for next weekend ("get to 20 paying customers").
The weekend is over. The product is live. The next loop is a week, not a weekend.
The five things to cut
The reason most weekend builds slip into Tuesday is because the builder cannot say no. The five categories you cut without exception:
- Custom auth. Use Supabase Auth. Never roll your own.
- Custom database schema work. Three tables maximum for v1: users, subscriptions, events.
- Design system polish. Tailwind + shadcn/ui default theme is fine. Nobody is judging you on rounded corners at v1.
- Analytics dashboards. Vercel Analytics free tier + Stripe Dashboard are enough until you have 100 customers.
- Admin panel. Your Supabase Table Editor is the admin panel. You will rebuild it in week 4 when you actually need it.
Every weekend build that slips slips on one of these five. Pin the list.
The AI stack at each checkpoint
| Time | Tool | Job |
|---|---|---|
| Fri 19:00 | Lovable or Bolt | Landing page mock |
| Sat 09:00 | Claude Code | Backend scaffold |
| Sat 12:00 | Claude Code | Stripe webhook |
| Sat 18:00 | Claude Code | Resend + Vercel Cron |
| Sun 09:00 | Lovable | Landing page polish |
| Sun 14:00 | Claude Code | Final wiring + tests |
Two builders, two distinct jobs. Lovable on the visual/marketing surface. Claude Code on the backend, integrations, and anything resembling production code. Each one in the slot it is best at.
What if you slip - the Monday recovery plan
You will slip somewhere. Here is the prioritised cut-list to recover.
If you are behind on Saturday night, cut the email job. Send the first email manually from Resend's web UI to your handful of paying customers. The cron can wait until Monday evening.
If you are behind on Sunday morning, cut the landing-page polish. The friends who already subscribed will not unsubscribe over a slightly wonky hero section. New visitors next week can land on v0.2 polished.
If you are behind on Sunday afternoon, cut the cron entirely. Manually send Sunday night's email from Resend. Add the cron on Monday evening (a 30-minute job once you can think straight).
The unbreakable thing is the Stripe payment flow. If a friend cannot pay you GBP 5/month by Saturday 18:00, the weekend has failed. Everything else is recoverable on Monday.
The honest numbers
The weekend build is not a guarantee. Of UK indie hackers who attempt this kind of weekend - and there are tens of thousands trying every month - roughly 10-15% finish with a deployed product, of which maybe 30% get a paying customer in the same weekend. The numbers compound. The second weekend's success rate is dramatically higher than the first. The fourth is higher again.
What separates the builders who get to month 6 with 50 paying customers and the builders who quit after week 2 is not skill - it is the willingness to ship something embarrassing on Sunday night and improve it on Monday. The weekend playbook above is biased toward "ship the embarrassing thing" because that is the loop that actually compounds.
Want a data-backed UK business idea every week? Free reports drop every Thursday - keyword volumes, SERP analysis, builder prompts. Browse the latest free report on IdeaStack.
Frequently asked
Do I need to be a developer to follow this playbook?
You need to be able to read code, debug an error message, and use git. You do not need to be able to write the code from scratch - Claude Code and Lovable do the writing. A non-developer who is willing to spend three weekends learning the tooling can absolutely ship a v1 by weekend four. The first weekend will be slower than the timeline above; weekend four will be faster.
What is the total GBP cost of running this weekend?
Tooling: Claude Code subscription GBP 17/month (Pro), Lovable Pro GBP 16/month. AI credits and runtime: GBP 0 (everything fits inside free tiers for the weekend). External services: Stripe (free until first payment, then 1.5% + 20p per UK transaction), Resend free tier, Supabase free tier, Vercel free tier. Total cash outlay before first payment: GBP 33. After first GBP 5 customer signs up: net cost is GBP 28.
Why GBP 5/month and not GBP 9 or GBP 15?
Two reasons. First, GBP 5 is below the threshold where most UK consumers ask "do I really need this" - it lands closer to a coffee than a subscription. Second, GBP 5/month leaves you room to test a "GBP 9/month with premium features" tier in month 2 without devaluing v1. If your product genuinely warrants GBP 15/month from week 1 (B2B internal tools, regulated industries) start higher - but the weekend playbook above is calibrated for consumer side hustles.
Can I do this on a Mac instead of Windows?
Yes - the playbook works identically. Claude Code, Lovable, Bolt, Vercel, Stripe, Supabase all work the same on macOS, Windows, and Linux. The only difference is the path syntax in your terminal commands.
What is the most common reason a weekend build fails?
Scope creep at the Saturday 14:00 friend-feedback step. Friends suggest five excellent features. The builder says yes to all of them. By Sunday 18:00 the builder has shipped two out of five and none of them are the original v1. The discipline at that step is to write the five feature requests into a "next week" doc, ship the original v1 as planned, and only act on the requests from Monday onwards.
Filed under





