What stack for a SaaS clone
What stack for a SaaS clone is the one you already know. Pick AHA, Next.js, Laravel, or Rails, then pin the first estimate so the agent stays on v1.
What stack for a SaaS clone is the one you already write. Every product page already has four prompts. Pick the tab you can debug on Monday.
Yesterday I wrote about how Buffer works. That was a teardown. This one is a regular backlog topic. The prompt post is the skip list. This post is which flavor you paste it into.
Every product page ships the same prompt in four stacks: AHA, Next.js, Laravel, and Rails. The FAQ on those pages already says pick the stack you already know. Scope matters more than the framework.
What stack for a SaaS clone
Open the card for the app you pay for. Scroll to the complete build prompt. You get four tabs. The journeys and the first estimate stay put when you switch them. Only the adapters change.
AHA stack for a SaaS clone
Astro, HTMX, and Alpine.js. Persistence is Cloudflare D1. Files go to R2. Scheduled work is a Worker. Durable Objects only show up when the product needs a coordinated room. This site is an Astro app on Cloudflare, so that is the path I default to.
Next.js for a SaaS clone
The App Router and TypeScript. Server Components by default. Server Actions for forms. PostgreSQL through Drizzle. S3-compatible files. A real job system for anything you would retry.
Laravel for a SaaS clone
Blade, Livewire, and Alpine.js. Eloquent and migrations. Queued jobs. The scheduler for cron. Mail for the email you already send.
Rails for a SaaS clone
Hotwire. Turbo for navigation and forms. Stimulus for the small browser bits. Active Record, Active Storage, Active Job, Action Mailer. Action Cable only if you need live updates.
How the four build prompts differ
The long prompt is shared. Two paragraphs swap.
One paragraph is how the interface talks to the server. AHA starts with Astro pages and ordinary HTML forms, then HTMX, then Alpine only for local state. Next.js starts with React Server Components and Server Actions. Laravel starts with Blade forms and Livewire. Rails starts with Turbo.
The other paragraph is where data lives. D1 and Workers, or Postgres and a job queue, or Eloquent and the scheduler, or Active Record and Active Job.
I would not pick a tab because it is fashionable. I would pick the one whose error messages I can read.
const typeform = {
product: 'Typeform',
tab: 'Laravel',
capability: 'Astro, HTMX, D1',
ship: 'one-question form and a response table',
}
The tab is Laravel. The capability line on the Typeform page is still Astro, HTMX, and D1. That line is the shape of the product: a form, a table, server validation. It is not a demand that you install Astro.
What capability context means
Each card has a Capability context box. Typeform says Astro, HTMX, D1. Buffer says Astro, Workers, R2. Linktree says Astro, Alpine, D1.
Those names describe the job. Typeform needs a form post and a row in a table. Buffer needs object storage for images and a cron that publishes. Linktree needs a page and a click count.
The prompt tells the agent to keep that capability through a narrow adapter for the stack you picked. Laravel Buffer still needs a scheduled job and private files. Next.js Typeform still needs a validated form and a table.
Trello is Astro, Alpine, D1. 3 hours for columns and drag-and-drop cards. $10–$17.50 a month. $120–$210 a year. Alpine is on the card because cards move in the browser. You can still ship that with Livewire or a Client Component. Do not invent a second product to get drag-and-drop.
When the stack is not a web framework
Some cards are not “pick a tab and go”.
TinyPNG Pro is Astro, Alpine, and the browser. $25–$39 a month. $300–$468 a year. 60 minutes. The originals never leave the device. The TinyPNG walkthrough is that path. If you pick Laravel, you still compress in the tab. You do not POST hero-home.jpg to a PHP worker and call that a v1.
Slack is Astro, Durable Objects, D1. $15–$18 per person per month. The Slack teardown is why the room is the hard half. Messages in a channel are a weekend, and presence and fanout still need a realtime path you can name. AHA uses Durable Objects for that room. Rails would use Action Cable. Switching tabs does not remove that work.
CleanMyMac is SwiftUI, Swift, macOS. $3.33–$9.95 a month. The cleanup loop reads disk. A Worker cannot see your node_modules. The prompt says keep native as the primary surface when the workflow needs it. Do not invent a website that pretends to clean a Mac.
How to pick a stack you already know
If you already ship Astro, take the AHA tab. If your day job is Rails, take Rails. The agent writes better code in the stack you can review.
A new framework costs you the first weekend. You spend it on config, not on the form. Typeform is 2 hours if you already know the tools. It is not 2 hours if you also learn Drizzle.
I default to AHA because this site already runs that way. I would switch if the replacement has to live next to an existing Laravel app, or if the only host I can use is a VPS with PHP. I would take Next.js if the team already reviews React pull requests and already has Postgres.
The copy button on the page follows the tab. Click Rails, then Copy Ruby on Rails prompt. Paste that, not a mix of two tabs.
Buffer on the AHA tab still has to publish later. The capability line is Astro, Workers, R2. The first estimate is 8 hours: a post queue, one network, scheduled publish. A Worker cron or a Laravel scheduler both count. A page that only stores drafts does not.
The scope post is which row you pin. Pin it after you pick the tab. The skip list from the prompt post still applies.
Build only the first estimate: a one-question form and a response table.
Use the Laravel prompt from the Typeform page.
Do not create a visual builder, payment fields, or an integrations gallery.
Stop when I can publish one form and download a CSV of answers.
Those four lines go under the copied prompt. The first three already lived in the prompt post. The second line is the only new one.
Scope matters more than the framework
“Clone Typeform in Next.js” still aims at the visual builder. Typeform is $29–$99 a month. $348–$1,188 a year. The first row is 2 hours: one question at a time and a table of answers. The third row is 2 weeks and up, with payment fields and an integrations gallery, and switching tabs does not cut that row.
Buffer is the same shape. $18–$36 a month. $216–$432 a year. 8 hours for a queue, one network, scheduled publish. A month and up for every network API. Rails or AHA, the analytics suite is still the third row.
If the agent starts a second workspace or a theme shop, stop it. Paste the non-goal again. The stack tab is not a substitute for a stop line.
The guardrail stays in every flavor. Typeform wants server-side validation, a rate limit, and a honeypot. Buffer wants encrypted tokens and idempotent publish jobs. TinyPNG wants the file to stay on the device.
Linktree is 30 minutes on any of the four tabs: a links list, an avatar, one theme. $9–$24 a month. The week-long version is billing and a theme marketplace. You are not selling themes.
Start now
Go to the audit. Open the app you already pay for.
Pick the tab you already write. Copy the prompt. Pin the first estimate.
Ship that slice in the stack you can debug. Cancel when the paid tab has been closed for a week.