To build a web app, write a one-page spec of who it is for and the one task it must do, then choose a path: a no-code tool, an AI builder, or writing code. Add logins, a database, payments, email and hosting, launch a small first version to real users, and improve it from what they do.
| Step | Output |
|---|---|
| 1. Spec | One page: users, problem, must-haves, what success looks like |
| 2. Path | No-code, AI builder or code |
| 3. Build the core | Logins, data, the one main task |
| 4. Add money and mail | Payments, transactional email |
| 5. Launch small | Five to twenty real users, then iterate |
Updated
This guide is for founders and small teams turning an idea into something people log in to. It is honest about effort: tables of real list prices for common services, rough time estimates we label as such, and a checklist to tick off before you call it launched.
Want a structured version of the spec? Use the free app spec template.
| Website | Web app | |
|---|---|---|
| Main job | Inform and persuade | Let people do a task |
| Users log in | Rarely | Usually |
| Data | Mostly fixed content | Created and changed by users |
| Examples | A clinic's site, a portfolio | Booking system, client portal, invoicing tool |
| Build effort | Days | Weeks to months |
| Path | You do | Strengths | Watch out for |
|---|---|---|---|
| No-code tool | Drag blocks and connect a database in a visual editor | Fast for forms, directories and internal tools | Hard limits on custom logic; hard to move away |
| AI builder | Describe the app, then refine it in chat and an editor | A working first version in hours, real code underneath | Review what it builds; complex rules still need care |
| Write the code | Choose a stack and build each part | Full control, any feature, you own everything | Slowest path; you maintain it all |
| Job | Common pick | Alternatives |
|---|---|---|
| Front end and server | Next.js (React) | React Router, SvelteKit, Nuxt |
| Database and auth | Supabase (Postgres + auth) | Firebase, Neon + Auth.js, PocketBase |
| Payments | Stripe | Paddle, Lemon Squeezy |
| A transactional email API (Resend, Postmark, SES) | Your email provider's SMTP | |
| Hosting | Vercel | Netlify, Cloudflare, Render, Fly.io |
| Item | Starting cost | Note |
|---|---|---|
| Hosting (Vercel) | $0 Hobby, $20 Pro | Hobby is for personal, non-commercial use; a business app needs Pro |
| Database + auth (Supabase) | $0 Free, $25 Pro | Free projects pause after a week with no activity |
| Payments (Stripe) | No monthly fee | 2.9% + 30 cents per successful US card charge |
| Domain name | Roughly $10 to $20 a year | Depends on the ending and registrar |
| Transactional email | Free tiers exist | Paid once you send in volume |
| Scope | AI builder or no-code | Coding it yourself |
|---|---|---|
| Landing page + waitlist | An afternoon | 1 to 2 days |
| Logins + one main feature (MVP) | A few days | 2 to 6 weeks |
| Paid subscriptions + admin area | 1 to 2 weeks | 1 to 3 months |
Write this before choosing any tool. If a line is hard to fill in, that is the part of the idea that needs more thought.
# Booking app for a dog groomer
Who: dog owners in one town; the groomer as admin
Problem: bookings happen by phone and text, double-bookings happen weekly
Must have (MVP)
- Owner signs up with email, adds their dog
- Sees free slots, books one, gets a confirmation email
- Groomer sees the day's bookings and can cancel one
Not in the first version
- Payments, reminders by text, multiple groomers
Success = 20 bookings made through the app in the first monthRow Level Security makes the database itself refuse to return another user's rows, even if the front end has a bug.
alter table bookings enable row level security;
create policy "Owners see their own bookings"
on bookings for select
using (auth.uid() = owner_id);
create policy "Owners create their own bookings"
on bookings for insert
with check (auth.uid() = owner_id);
AI builders, including We.Inc, can turn a description into a working app with pages, logins and a database, which you then change by chatting or editing. They are a fast way to get to something testable; plan to review what they build, especially anything touching payments or private data.
Running costs can start near zero on free tiers, rising to roughly $45 a month for a paid hosting plan plus a paid database plan, before payment fees. Building it costs your time, or a developer's, which is usually the far larger cost.
Yes. No-code tools handle forms, directories and simple workflows, and AI builders can generate a working app from a description that you then refine. Complex rules and integrations may still need a developer.
A minimum viable product: the smallest version that lets real users complete the main task, so you can learn whether it is worth building more.
A popular, well-documented one, so answers are easy to find: for example Next.js on Vercel with Supabase for the database and logins, and Stripe for payments.
Related: App spec template, Website vs web app, Frontend framework comparison, React Server Components, All free tools.
Start for free or see all free tools. We.Inc is free to start, with no card needed. AI building is on paid plans from $20 a month.
We.Inc is an AI-powered website builder you can resell under your own brand. Launch a branded client dashboard, bill on Stripe Connect, and deliver AI-generated websites in minutes. White-label plans start at $99 a month for 25 client sites, with a 7-day free trial and no per-site fees.