Website Roaster takes a URL and gives you a brutally honest critique of what is wrong with your site. Not a Lighthouse score. A roast, with personality.
We built it and had it taking payments in ten working days. Here is what actually happened, including the parts that are less flattering than the headline.
Day one: the whole thing existed by evening
The first day produced thirteen commits. Landing page, the Roastmaster persona, the sample section, webhook wiring, the loading flow, the email capture modal, and a password-protected coming-soon gate so nobody could wander in.
The first commit is honest about how: the project was scaffolded in Lovable. We did not hand-write a React app from an empty folder. We described what we wanted, got a working Vite and React and Tailwind shell, and spent the day shaping it instead of setting it up.
That is the part worth stealing. The unglamorous hours at the start of a project, the ones where you configure a build and pick a component library and wire up routing, are now close to free. Skipping them is not cheating. It is the whole point.
What we had by evening was a convincing shell with no real product behind it. Which is fine, because the shell answers a question the backend cannot: does anyone want this?
The gap in the middle
Then nothing for two weeks.
We are including this because the tidy version of these stories always shows unbroken momentum, and that is not how it went. The prototype sat while other work happened. Ten working days is not ten consecutive days on a calendar.
When we came back on 6 October, the real build started: a genuine API endpoint, a dedicated results page, language selection, and a very unromantic commit raising the API timeout to six minutes, because a full analysis takes a while and the browser was giving up first.
How it actually works
You submit a URL. The frontend hands it to an n8n webhook, which orchestrates the pipeline: scrape the site, extract the content, run the AI evaluation.
The interesting decision is what happens while you wait. Rather than holding a request open or polling, results land in Supabase and the page subscribes to them. The loading screen updates live as each piece completes. Users watch progress instead of a spinner, which matters when the work takes minutes rather than seconds.
n8n doing the orchestration meant the analysis pipeline could be rewired without redeploying the app. For a product whose entire value is in the quality of that pipeline, and which we expected to tune constantly, that separation paid for itself immediately.
The stack, in full: React 18, Vite, TypeScript, Tailwind, Supabase, n8n, Stripe.
Getting paid
Stripe went in on 14 October and switched to live keys on the fifteenth. That is the moment we call launch, because taking money is the only launch that means anything.
The model is one free roast from the Roastmaster, who hands you three problems costing you conversions and captures your email. Twenty-seven dollars unlocks four more experts on the same site: an SEO Analyst, a UX Designer, a CRO Expert, and an Empath who tells you what your customers feel but never say.
The upsell works because the free roast is genuinely useful and obviously partial. You read one expert being sharp about your homepage and immediately want to know what the other four noticed. Nothing has to be argued.
What we would tell you to copy
Gate it before it works. The coming-soon page shipped on day one, before there was a product. It cost minutes and it meant the URL could be shared safely from the start.
Put the slow thing behind a subscription, not a request. The six-minute timeout commit was the symptom. Supabase realtime was the cure. If your product does real work, design the waiting experience deliberately.
Keep the part you will change most out of the app. The prompts and pipeline live in n8n. We tune them without shipping frontend code.
Charge early. Stripe went in on day eight or so, not after some imagined polish milestone. Free users tell you they like it. Paying users tell you the truth.
What we would not copy
The two-week gap. Not fatal here, but momentum on a small product is worth more than it looks, and picking it back up cost real time re-reading our own code.
We also built French later, in November, not during the ten days. It is bilingual now with proper localised copy rather than machine translation, and it should have been considered earlier, because retrofitting internationalisation across a finished interface is much duller than building it in.
The honest summary
Ten working days, spread across three weeks, from empty repo to live Stripe keys. An AI builder for the scaffold, n8n for the part that mattered, Supabase to make waiting bearable, and a paywall early enough to learn something.
The build was never the hard part. Deciding what to build, and what to leave out, was.
Want us to build something fast for you?
30 minutes. Let's talk about what you need.
