Web Development Agency
The shortcut: Pick one vertical and build five case studies in it before marketing broadly. "I build sites for personal-injury law firms" books $8K projects. "I build websites" books $1,500 projects.
Industry: Software & Tech | Investment level: Small — $5,000-$15,000 | Time to launch: 6-10 weeks (LLC + insurance + 3 portfolio sites + one signed paid SOW)
Best for: A working React/Next.js dev who can ship a polished marketing site in 2-3 weeks and wants project work without a full-time job. You're a fit if you can write a scoped SOW, hold clients to a change-order process, and resist the urge to "just add a blog" for free. What you'll likely make: $0-$3,000 month 3, $4,000-$8,000 month 6, $7,000-$12,000 month 12. Math is in Section 4.
Market Opportunity
Every dev with a laptop and a GitHub account calls themselves a web dev agency, which is exactly why generalists charge $1,500 for sites that take three weeks. The way out is not better code. It's picking one industry and refusing to take work outside it for the first year. A solo dev who has built five personal-injury law-firm sites can charge $8,000-$12,000 for the sixth one. The same dev marketed as "full-stack developer for hire" charges $2,000 for the same scope.
The math: clients in a defined vertical (law firms, dental practices, real-estate brokerages, B2B SaaS, restaurant groups) pay 40-60% more to work with someone who has shipped sites in their industry, because the discovery call sounds different. You know what their compliance team will flag, what their intake form needs, and which competitor's site they'll send as a reference. The generalist spends the first three meetings learning the industry on the client's dime.
The trap isn't finding work. The trap is taking on $5K projects that quietly turn into $12K of work because there's no signed change-order process. Agencies that survive year one have boring, templated SOWs and a clause that says "any scope outside the SOW requires a written change order." The ones that don't make it always say the same thing — "I just wanted to keep the client happy."
Launch With AI
Pro section. AI doesn't replace the work — it cuts the parts that drained you (writing 50 vertical-specific LinkedIn DMs, drafting SOWs from scratch, scaffolding boilerplate components every project, building case-study copy, recording async client walkthroughs). Spend the saved time on what AI can't do: sitting in a discovery call hearing what a personal-injury law firm actually needs (intake form compliance, regional case-law content), enforcing the change-order process when a client asks "can you just add a blog?", and the call to a client whose Core Web Vitals just dropped to 30.
The trap most new web devs fall into: they think AI threatens custom dev. Wrong direction — Cursor + Copilot + Claude are the leverage that lets a solo dev compete with 5-person agencies on $6,500 marketing site builds. Per Section 6, "the path that works" runs through vertical specialization + warm network + LinkedIn outreach with case studies attached. The bottleneck on hitting $7K-$12K/month isn't the code; it's outreach volume + scope-creep enforcement. AI compresses both.
Important up-front: AI cannot pick your vertical for you (per Section 6 + Pitfall #3, "stay a generalist too long" = $1,500 projects forever). AI also cannot enforce a change-order process — that's discipline, not technology. AI handles the volume of outreach, scaffolds, and case-study copy; you handle vertical judgment + scope enforcement.
AI Tools You'll Use
| Tool |
Price |
What it does |
| ChatGPT Plus |
$20/mo |
Vertical outreach, SOW + change-order copy, LinkedIn DMs, case studies |
| Cursor (or GitHub Copilot Business) |
$20/mo |
Code generation, scaffold components from existing patterns, refactor speed |
| Claude Pro |
$20/mo |
Long-context — read 50-page client brief or competitor site audit |
| Figma + Loom AI |
$15/$15/mo |
Figma prototypes for client review; Loom AI auto-trim + titles for async walkthroughs |
| Vercel + Sanity (built-in AI) |
$20+/mo |
Hosting + headless CMS with AI content scaffolding for client sites |
The Workflow
Vertical-specific outreach (ChatGPT, ~90 min/week). Per Section 6, "with 3 case studies in hand, identify 50 marketing directors or office managers at vertical-target companies." Pull 50 from LinkedIn Sales Nav (or LinkedIn Premium), paste 5 at a time:
"For each LinkedIn profile of a [marketing director / office manager / partner] at a [your vertical — e.g., personal-injury law firm / single-location dental practice / mid-market real-estate brokerage / seed-stage B2B SaaS] in [city], write a 90-word DM. Open with one specific detail (their firm size, recent rebrand, partner-attorney count, recent press). One sentence on the website pain in [vertical] (slow Core Web Vitals, no intake form, weak local SEO, mobile usability gaps). One sentence on my recent case study + Core Web Vitals before/after numbers. Soft CTA: 15-min call link. Vary openers — no two should sound the same."
Send 50/week (10/day). Reply rate 3-8%, call-to-paid 20-30%. That's 1-2 paid SOWs per quarter from outreach alone.
SOW + change-order template (ChatGPT, ~2 hours one-time per vertical). Per Pitfall #1, scope creep without a change-order process IS the business killer. Build the SOW + change-order template once, reuse forever:
"Build me a 4-page SOW template for a [vertical] marketing site build at $6,500 fixed fee. Sections: (1) Scope — 5-10 page Next.js + Sanity site, lists exact pages and components included; (2) Out of scope — 8 explicit exclusions (blog, language toggle, custom CRM integration, animations, additional pages, photography, copywriting, multi-site); (3) Milestones — 50% upfront, 25% at dev start, 25% on staging delivery (never on 'client approval'); (4) Change-order clause — any scope outside Section 1 requires written estimate + client email approval before work begins, billed at $150/hr; (5) Timeline — 3-4 weeks from kickoff; (6) IP assignment with reusable-boilerplate carve-out per 17 USC §101; (7) Liability cap at 12 months trailing fees; (8) Care plan retainer add-on at $700/month. Tone: confident pro, not legalese-heavy."
Send to attorney for $500-$1,500 review. Reuse forever. The change-order clause + payment milestones + scope exclusions = the structure that protects $5K of revenue per project from drift.
Component scaffolding with Cursor (~30% faster builds). Per Section 4, your reusable boilerplate is your IP. Cursor + boilerplate = 60-80 hour builds in 40-50 hours:
Workflow: clone next.js + Sanity boilerplate → use Cursor to generate 5-10 client-specific page components by pointing at existing components as examples → use Sanity's AI content scaffolding to seed 10-15 placeholder content entries the client can edit → wire client's brand tokens (colors/fonts) via tailwind.config.ts. Project ships in 3 weeks vs 4-5.
The build-time savings are pure margin. A $6,500 project at 40 hours = $162/hour. At 70 hours = $93/hour.
Case study production at delivery (ChatGPT + Loom, ~90 min/project). Per Section 6, "the case study is what closes the next paid client." Write before delivery, capture metrics. Paste:
"I just delivered a marketing site build for [vertical client name + size]. Pages built: [list]. Tech stack: Next.js + Sanity + Vercel. Before/after metrics: Core Web Vitals LCP 4.2s → 1.1s, mobile usability 64 → 96, conversion rate 1.2% → 3.4% (or placeholder). Client testimonial: '[paste]'. Build me: (1) a 1-page case study (client logo, problem, approach, before/after numbers, testimonial pull-quote, deliverables list); (2) a 200-word LinkedIn post announcing the launch tagging the client; (3) a 90-second Loom video script walking through the site; (4) a 1-line outreach hook I can use in DMs to other [vertical] businesses ('We just rebuilt [client]'s site — Core Web Vitals went from X to Y. Want to see the case study?')."
Drop into Canva for layout. Loom AI auto-trims silences + generates a chapter-titled video. Case study + LinkedIn post + Loom = the 3 assets that fuel the next 90 days of outreach.
Sanity AI content scaffolding for client sites (Sanity built-in, ~3 hours saved per project). Per the Section 2 stack, Sanity is your CMS. Sanity Studio v3 has AI content suggestions that draft placeholder copy from a brief. Build the schema once + AI fills 15-20 content entries the client can edit:
Workflow: define content types in Sanity schema (page, blog post, team member, testimonial, service) → use Sanity's "Generate AI placeholder" feature to seed 15-20 entries with vertical-appropriate copy → client logs into Studio + edits placeholder copy without you touching it again.
The "client edit" experience is what makes the care-plan retainer sticky — clients who can edit their own content stay on the retainer because they trust the platform.
Time Saved Per Week
Roughly 8-12 hours/project once your boilerplate + SOW + outreach templates are dialed in:
- LinkedIn outreach + DM personalization: 4 hours/week → 60 min (ChatGPT bulk personalize)
- SOW + change-order drafting per project: 4 hours → 30 min (template ready)
- Component scaffolding: 16 hours/project → 6 hours (Cursor + boilerplate clone)
- Case study + Loom production: 4 hours/project → 90 min (ChatGPT + Loom AI auto-trim)
- Sanity content seeding: 4 hours/project → 60 min (AI scaffolds 15-20 entries)
That's the difference between $90/hour effective and $160/hour effective on the same $6,500 project.
Total AI Stack Cost
- Budget tier ($60/mo): ChatGPT Plus + Cursor + Claude Pro. Skip Figma Pro (free works for 1-2 projects), Loom Free, Sanity free under 10K docs. Right for the first 60 days while you have 1-2 active projects.
- Full tier ($110+/mo): ChatGPT + Cursor + Claude + Figma Pro + Loom + Vercel Pro + Sanity. Worth it once you have 4+ projects in flight and component scaffolding + outreach become the bottleneck.
- Compare: A part-time junior dev costs $4,000-$7,000/month. The full AI stack is one-fortieth that — and you skip the IP assignment + onboarding overhead.
Cancel anything you don't open in a 7-day window.
Your First Win
30 minutes from now your vertical-specific SOW template is drafted. Open ChatGPT (free works). Paste:
"Build me a 4-page SOW template I can use for [my vertical — personal-injury law firms / single-location dental practices / mid-market real-estate brokerages / seed-stage B2B SaaS] marketing site builds at $6,500 fixed fee. Include: (1) detailed scope (5-10 pages, Next.js + Sanity + Vercel, basic SEO, WCAG 2.2 AA pass); (2) 8 explicit out-of-scope exclusions; (3) milestone structure (50% upfront, 25% at dev start, 25% on STAGING delivery — never client approval); (4) change-order clause — written estimate + email approval required before any out-of-scope work, billed at $150/hr; (5) IP assignment with reusable-boilerplate carve-out; (6) 12-month trailing-fees liability cap; (7) care plan retainer add-on at $700/month."
Drop into a Word doc. Send to attorney for $500-$1,500 review. The SOW + change-order template + payment milestones = the structure that protects $5K-$10K of revenue per project from scope drift. That's the difference between $7K/month and $12K/month at the same project volume.
Product / Service Offering
You're selling one core deliverable in two flavors plus a retainer:
- Marketing site build — 5-10 page Next.js or Astro site, headless CMS (Sanity or Contentful), hosted on Vercel, basic SEO, WCAG 2.2 AA pass. $5,000-$8,000 fixed fee. 3-4 weeks. Bread and butter.
- Custom build — marketing site plus one custom feature (booking flow, gated content, CRM lead-capture integration, multi-language). $9,000-$15,000 fixed fee. 5-7 weeks. Sells once you have 3-4 marketing-site case studies.
- Care plan retainer — monthly maintenance, dependency updates, hosting management, light content edits, monthly Core Web Vitals report. $500-$1,500/month per client. Sold to every build client at delivery.
Launch with the marketing site. Custom builds come later. The retainer turns this from project-to-project hustle into something that pays rent during slow months — pitch it on day one of every engagement.
Revenue Model
Solo agency on Next.js + Vercel + Sanity, no employees, billing via Stripe:
| Service |
Price |
Variable cost (hosting + payment fees + tools) |
Your time |
Take-home per engagement |
| Marketing site build |
$6,500 |
$190 (Stripe 2.9% + $0.30) + ~$60 (Sanity, design assets) |
60-80 hours over 3-4 weeks |
~$6,250 |
| Custom build |
$11,000 |
$320 (Stripe) + ~$100 (extra services) |
110-140 hours over 5-7 weeks |
~$10,580 |
| Care plan retainer |
$700/mo |
$20 (Stripe) + $20 (Vercel Pro slot) |
2-4 hours/month |
~$660/month |
| Out-of-scope change order |
$150/hour |
minimal |
as agreed in writing |
~$145/hour |
Your first $1K month is rare at this tier — your first paid project usually lands in month 3-4. A more realistic month-1 path is two care-plan retainers at $700 = $1,400 take-home sold to former colleagues' companies while you build portfolio sites.
Your first $3K month = one $6,500 marketing build + one $700 retainer = ~$3,400 take-home. Roughly 70-80 hours of work.
Steady state: one $6,500 build per month plus 6 retainer clients at $700 = ~$10,400/month gross, ~$10,000 take-home, on about 90 hours/month. Retainers are what make slow months survivable.
Startup Costs
- LLC + EIN: $35-$500 LLC filing — LLC University 50-state table. EIN is free at IRS EIN Online — never pay a third party.
- Professional liability (E&O) insurance: $800-$2,000/year via Hiscox or Insureon. Bind before your first paid contract — many enterprise clients require a certificate of insurance to sign.
- MSA + SOW templates: Bonsai at ~$25/month plus a one-time attorney review at $500-$1,500 before your first client over $10K. One bad-contract dispute dwarfs this every time.
- Hosting + delivery stack: Vercel Pro at $20/month per dev (clients take over their own Vercel account at handoff). Sanity free tier covers most marketing sites. Netlify free tier as backup.
- Source control + PM: GitHub Team at $4/user/month. Linear or Notion free tier for client-facing tracking.
- Design + handoff: Figma Pro at $15/month. Loom free tier for async walkthroughs.
- Bookkeeping: QuickBooks Self-Employed at ~$20/month for your first $50K of revenue. Move to Bench at $249-$499/month once you cross $100K.
- Portfolio investment: Budget $2,000-$5,000 for 3-4 portfolio sites delivered free or at deep discount to vertical-specific clients in your first 60 days. Highest-ROI dollar in the budget — paid clients in your vertical won't hire you without case studies in their industry.
Realistic all-in: $5,000 if you already have an LLC and just need insurance, tooling, and portfolio investment; $15,000 if you file a fresh LLC, bind insurance, pay for legal MSA review, and budget for 4 discounted portfolio builds.
Legal & Formation
Business entity. Single-member LLC the moment you take a paying client — separates your personal bank account from a defective-deliverable lawsuit. Filing fee is recoverable from your first project. Sole prop is fine while you take portfolio work, but switch before your first paid SOW. Get your EIN free directly from the IRS — services charging $50-$300 for "EIN filing" are reselling a free five-minute form. S-corp election is worth the math once your net profit clears roughly $80K-$100K. File IRS Form 2553 once you're sure the income is sustained, not one good year.
Licenses & sales tax. No professional license required to run a web dev agency in any U.S. state. Custom development billed as a professional service is generally not taxable, but the line gets fuzzy once you bundle hosting, maintenance, or a SaaS-style component. Check your state via Avalara's state-by-state guide. Once retainers grow into multiple states, watch the post-Wayfair economic-nexus thresholds — typically $100K in sales or 200 transactions per state.
Industry-specific risk. The most consequential trap is scope creep without a change-order process, and the fix is structural: a real MSA, a real SOW, and a written change-order clause you actually use. The MSA covers IP assignment, limitation of liability (cap at fees paid in the prior 12 months — never accept uncapped), mutual indemnification, and confidentiality. The SOW lists deliverables, milestones, and payment schedule. The change-order clause says any work outside the listed deliverables requires a written estimate and client sign-off before you start. Templates from Bonsai or Fiverr Workspace are a fine start — pay an attorney $500-$1,500 to review once before your first $10K+ engagement. The other half is payment milestones: 50% upfront, 25% at dev start, 25% on staging delivery — never tie the final payment to "client is happy" or you'll be doing free revisions for weeks. On IP: write an explicit assignment clause (work-for-hire language alone isn't enough for software under 17 USC §101) and carve out your reusable boilerplate as retained pre-existing IP licensed to the client.
Marketing & First Customers
Your first 5 clients come from your warm network and one well-chosen vertical. Cold outreach on Upwork is a slog at this price point — you'll lose to $1,500 offshore quotes every time. The path that works:
- Pick the vertical first. Personal-injury law firms, single-location dental practices, mid-market real-estate brokerages, seed-stage B2B SaaS, and independent restaurant groups all have $5K-$15K marketing-site budgets and respond to a vertical-specific pitch. Pick one. Don't pick two.
- Build 3-4 free or deeply discounted portfolio sites in that vertical in your first 60 days. Offer a $1,500 build (against your real $6,500 rate) for a written testimonial, before/after metrics, and case-study rights.
- Write the case study before you start the build. A one-page case study with the client's logo, the problem, your approach, and one before/after Core Web Vitals or conversion-rate number is what closes the next paid client. Without this artifact, the portfolio site does nothing.
- LinkedIn outreach into the vertical. With 3 case studies in hand, identify 50 marketing directors or office managers at vertical-target companies. Send a 3-sentence message with the case-study link. Expect 3-8% to a discovery call, 20-30% of those to a signed SOW.
- Ask every paid client for one referral at delivery. A referral from a happy vertical client converts at 50%+.
Storetasker is the canonical niche-vertical play in the Shopify world; the same pattern works for any vertical. Skip Upwork for year one — at $5K+ project sizes, the platform's race-to-the-bottom pricing works against you.
First 90 Days
- Week 1. File LLC. Get EIN free at IRS. Pick your one vertical and write a one-paragraph pitch you can repeat in any meeting.
- Week 1-2. Bind E&O insurance ($800-$2,000/year). Set up MSA + SOW templates from Bonsai. Send to an attorney for one-time review.
- Week 2-3. Set up Vercel Pro, Sanity, GitHub Team, Stripe, Linear or Notion. Build your own agency site in the vertical's visual style — this is your first portfolio piece.
- Week 3-5. Identify 30 local businesses in your vertical. Pitch 3-4 on a $1,500 portfolio build for case-study rights. Aim for 2 signed by end of week 5.
- Week 5-9. Ship 2-3 portfolio sites. Capture before/after Core Web Vitals, conversion data if available, and a written testimonial. Write one-page case studies as you go.
- Week 8-10. Start LinkedIn outreach into your vertical with case studies attached. Target 50 outbound messages per week, 3-5 discovery calls per week.
- Week 10-12. Send your first paid SOW at $5,500-$6,500. Aim for one signed paid project by end of week 12 with 50% deposit collected.
- Day 90 target. Two case studies live, one paid project started, two retainer clients on the care plan ($1,400/month recurring), pipeline of 5-10 active LinkedIn conversations.
Common Pitfalls
- Scope creep without a change-order process. "Can you just add a blog?" "Can we make this animated?" Each is a project. Without a written change-order clause you actually use, the $6,500 build becomes $11,000 of work at $6,500 of revenue. Send a written estimate within 24 hours of every scope request and require email approval before starting.
- Tying the final payment to client approval instead of staging delivery. Clients who owe a final $2,000 use that money to extract unlimited revisions. Structure milestones as 50% upfront, 25% at dev start, 25% on staging delivery — never on "client signs off."
- Staying a generalist for too long. "I build websites for everyone" is a $1,500 project at best. "I build websites for [your one vertical]" is a $6,500-$12,000 project. Pick one vertical for year one and refuse work outside it.
- Skipping the IP assignment clause. Under 17 USC §101, software you write isn't automatically the client's property — work-for-hire language alone usually doesn't cover it. Include an explicit IP assignment clause in every SOW, and carve out your reusable boilerplate as retained pre-existing IP licensed to the client.
Get your full launch plan — take the free 60-second quiz.