DEV Community

Cover image for How I run a one person web agency with a coding agent (find, build, check, ship)
Linc
Linc

Posted on

How I run a one person web agency with a coding agent (find, build, check, ship)

I've been running a one person web design shop for a while now. The thing that changed it most this year wasn't a new framework, it was handing the boring 80% of every build to a coding agent and keeping the parts that actually need a human.

Here's the exact loop I use to go from "local business with a bad site" to "live site the owner can edit", usually inside a day.

1. Finding the client

I don't cold pitch with a deck anymore. I pick a niche (plumbers, dentists, cafes in one suburb), look at their current sites on my phone, and note the obvious stuff: slow load, broken contact form, no mobile menu, hours that are out of date.

Then I get the agent to build a quick mockup of their homepage using their real copy and photos. Sending someone a link to their own site, but better, gets way more replies than "hey I do websites".

Rule I learned the hard way: never send the mockup on a URL with my agency name all over it. Use a neutral preview link and keep it to one page.

2. The build prompt

I use Claude Code mostly, sometimes Cursor or Codex. The prompt that matters is the first one. Mine looks roughly like this:

Build an Astro site for <business>. Static output only.
Pages: home, services, about, contact.
Put all editable content (hours, phone, services list, prices)
in /data/site.json and read it at build time. No CMS.
Contact form posts as a plain HTML form, no JS required.
Run a build and fix every error before you stop.
Enter fullscreen mode Exit fullscreen mode

Two things in there save me hours later:

  • All the stuff the client will want to change lives in one JSON file. Opening hours, phone number, the services list. Nobody edits the hero copy, they edit the hours every public holiday.
  • "Run a build and fix every error before you stop." Without this the agent cheerfully hands you something that dosen't compile.

3. Checks before anything goes live

Agents are confident. That's not the same as correct. Before a deploy I have the agent run a short checklist:

  • broken internal links
  • images missing alt text or over ~300kb
  • the form actually has name attributes on every field
  • Lighthouse mobile score on the homepage

If anything fails it fixes and reruns. I only look at the output once its green. This step alone killed most of the "hey the form doesn't work" emails I used to get a week after launch.

4. Deploying without me in the loop

This was the bit that used to need me. Now the agent deploys itself. I host client sites on novence.ai because it's built for exactly this, the agent can push a static folder from the CLI:

npm run build
npx novence deploy ./dist
Enter fullscreen mode Exit fullscreen mode

or if I'm working inside an MCP capable client, it just calls the deploy tool directly. Either way I get a preview URL back, check it on my phone, and point the clients domain at it when they approve.

The nice side effect: every client lives in one account. No more 14 different hosting logins and a spreadsheet of renewal dates.

5. Letting the client edit (without a CMS)

Remember that /data/site.json? The client gets a simple edit page for it with a one time email code, no password, no admin dashboard to break. They change their Christmas hours, the site updates, and I never hear about it.

This is honestly what lets me charge a monthly fee without feeling guilty. They're paying for "it just works and I can fix the small stuff myself", not for a login screen.

What I'd tell someone starting out

  • Pick a niche and a suburb. Generic agencies are invisible.
  • Lead with a real mockup of their site, not a portfolio.
  • Make the agent run checks, every single time.
  • Keep editable content in data files, not a CMS.
  • Put every client on one host so maintenance is one job, not twenty.

The agent does the typing. You still do the selling, the taste and the "does this actually make sense for a plumber" calls. That split is the whole business.

If you're doing something similar I'd genuinely like to hear what your loop looks like, especially how you handle client approvals.

Top comments (0)