DEV Community

Cover image for I stopped asking agents to build the whole site and started treating them like reviewers
Lars Winstand
Lars Winstand

Posted on • Originally published at standardcompute.com

I stopped asking agents to build the whole site and started treating them like reviewers

I used to do the same bad demo everyone does.

Open v0, OpenClaw, or a custom GPT-5 agent.

Prompt: "build me a modern SaaS website."

Wait 45 seconds.

Feel impressed.

Then scroll.

The homepage looks fine. The pricing page is off. The docs page sounds like someone guessed what your product does. The footer invents a feature you definitely do not ship.

That’s the point where "AI website generation" stops feeling magical and starts feeling like debugging.

After reading through a bunch of discussions about agent-based website workflows, I ended up with a much less exciting opinion:

The best agent workflow for websites is not one giant prompt. It’s a staged review loop.

Draft one page. Review it. Revise it. Approve it. Then move on.

That sounds slower.

It is slower.

It’s also the first workflow I’ve used that feels safe enough for a real site.

The one-shot website prompt is a party trick

One-shot generation is not useless.

If you need a throwaway landing page, a rough mockup, or a quick internal prototype, one prompt is often enough.

But production websites are not one task.

They’re a pile of different tasks pretending to be one thing:

  • messaging
  • information architecture
  • pricing copy
  • navigation
  • component structure
  • accessibility
  • code quality
  • deployment

When you ask one agent to handle all of that in a single pass, you don’t get simplicity.

You get failure with bad observability.

If the result is wrong, where did it go wrong?

  • bad product positioning?
  • weak copy?
  • fake claims?
  • broken React?
  • inaccessible UI?
  • inconsistent CTA logic?

With one giant prompt, everything is collapsed into one blob. That makes the output hard to trust and even harder to fix.

That’s why the better pattern is:

  1. draft
  2. review
  3. revise
  4. approve

This is not magic.

It’s basically CI for content and frontend work.

What the serious agent products are actually doing

Once I stopped watching marketing videos and started looking at product behavior, the pattern became obvious.

The useful agent products are all converging on the same thing:

plan first, change second, review before merge

Product What it actually does
GitHub Copilot cloud agent Inspects the repo, creates a plan, works on a branch, runs tests and checks, then waits for review before merge
Replit Agent Uses Plan mode to break work into steps you can approve before it starts making changes
v0 Generates quickly, but the real workflow includes visual editing, GitHub sync, iteration, and deployment

That is not "website genie" behavior.

That is reviewable worker behavior.

GitHub Copilot is useful because it behaves more like a junior engineer with guardrails than a slot machine.

Replit Agent exposing Plan mode tells you the same story. If one-shot prompting was enough, there would be no reason to stop and approve task lists first.

Even v0, which is very good at the fast first draft, keeps pushing users toward iteration. That’s the real product surface.

Generation is the opening move.

Review is the actual workflow.

Why reviewer agents work better than builder agents

Because bounded critique is easier than coherent end-to-end creation.

Agents are usually much better at reviewing a thing than inventing the entire right thing in one pass.

That applies to:

  • copy
  • layout
  • React components
  • pricing pages
  • docs structure

A good reviewer prompt is specific.

Bad reviewer prompt:

Make this page better.
Enter fullscreen mode Exit fullscreen mode

Useful reviewer prompt:

Review this pricing page.

Check for:
1. Claims not supported by product docs
2. CTA mismatch with plan limits
3. Accessibility issues in the JSX
4. Weak or vague plan differentiation
5. SEO problems in heading structure

Return only issues.
Rank them by severity.
Do not rewrite the whole page unless asked.
Enter fullscreen mode Exit fullscreen mode

That gives you something actionable.

It also composes well.

You can run separate reviewers for:

  • factual accuracy
  • brand voice
  • accessibility
  • code quality
  • conversion clarity

That is much saner than one mega-agent trying to be a designer, frontend engineer, product marketer, copy editor, and legal reviewer at the same time.

The review step can be tiny

A lot of people hear "pipeline" and imagine a cursed n8n flow with 40 nodes, 12 retries, and Slack notifications every 8 seconds.

It does not have to be that complicated.

A review step can just be a second model call.

Here’s a minimal Node example using an OpenAI-compatible client pattern.

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY,
});

const draft = `
<h1>Unlimited AI for every team</h1>
<p>Use the world's best model with no limits.</p>
<a href="/pricing">Start now</a>
`;

const reviewPrompt = `
You are reviewing a SaaS homepage draft.

Check for:
1. Unsupported claims
2. Vague value proposition
3. CTA clarity
4. Accessibility issues
5. Overpromising language

Return a JSON array of issues with:
- severity: low | medium | high
- type
- message
`;

const response = await client.responses.create({
  model: "gpt-5",
  input: [
    { role: "developer", content: reviewPrompt },
    { role: "user", content: draft },
  ],
});

console.log(response.output_text);
Enter fullscreen mode Exit fullscreen mode

The important part is not the exact SDK call.

The important part is the separation of concerns.

One call drafts.
One call reviews.
Another call revises only the failed parts.

A sane website agent workflow

This is the workflow I’d actually trust for a real marketing site or docs hub.

1. Approve the sitemap first

Before generating pages, have the agent propose structure.

Example:

Propose a sitemap for a developer-focused AI API product.
Include:
- homepage
- pricing
- docs
- integrations
- FAQ
- contact

For each page, explain its job in one sentence.
Do not write page copy yet.
Enter fullscreen mode Exit fullscreen mode

If the structure is wrong, everything downstream gets worse.

2. Generate one page at a time

Do not ask for the whole site.

Ask for one page with real constraints.

Generate the pricing page.

Constraints:
- audience: developers and automation engineers
- product: OpenAI-compatible API with flat monthly pricing
- avoid unsupported claims
- mention integrations with n8n, Make, Zapier, OpenClaw
- output: React + Tailwind
Enter fullscreen mode Exit fullscreen mode

That keeps context local and reviewable.

3. Run specialized review passes

Run separate reviewers instead of one vague "quality check."

Example shell script pseudocode:

review_copy pricing.tsx
review_accessibility pricing.tsx
review_factuals pricing.tsx
review_seo pricing.tsx
Enter fullscreen mode Exit fullscreen mode

Or in a simple JS orchestrator:

const reviewers = [
  "factual accuracy",
  "accessibility",
  "frontend code quality",
  "conversion clarity",
];
Enter fullscreen mode Exit fullscreen mode

4. Revise only what failed

This part matters more than people think.

Do not regenerate the whole page because one section was weak.

That’s how you lose good work and create new problems.

Patch the specific issue.

Revise only the hero section.
Fix the unsupported claim about model access.
Keep the rest of the page unchanged.
Enter fullscreen mode Exit fullscreen mode

5. Approve and commit

Only after review passes should the page move forward.

git checkout -b ai/pricing-page-v2
npm test
npm run lint
git add .
git commit -m "Revise pricing page after review pass"
Enter fullscreen mode Exit fullscreen mode

This sounds obvious.

Obvious is good.

Real agent workflows fail in boring ways

This was actually the most useful thing I noticed while reading through OpenClaw discussions.

People talk about agents like they’re creative collaborators.

In practice, a lot of failures are just infrastructure failures:

  • wrong provider config
  • missing API key
  • bad environment variable
  • branch mismatch
  • broken component
  • unsupported claim in source content

That’s good news.

Boring failures are testable.

Magical failures are not.

A lot of the time, the most useful step in the workflow is still something like:

openclaw configure
Enter fullscreen mode Exit fullscreen mode

Not glamorous.

Very real.

That’s another reason I prefer reviewable pipelines over one-shot generation. They fit the actual failure modes.

Cost is where this gets real

Here’s the catch.

Draft-review-revise loops multiply model calls.

That means better quality usually costs more and takes longer.

If you do this across:

  • 20 pages
  • 3 review passes per page
  • 1-2 revision loops
  • code + copy + accessibility checks

…token pricing stops feeling theoretical very quickly.

This is where a lot of teams run into the same problem with agent workflows:

The workflow finally gets good right when the billing gets annoying.

That’s especially true if you’re building automations around agents in n8n, Make, Zapier, OpenClaw, or custom scripts. Once you start adding reviewers, retries, and iterative passes, usage grows fast.

That’s why pricing model matters just as much as model quality.

If your process depends on repeated calls, review loops, and lots of small agent tasks, per-token billing creates weird incentives:

  • skip review passes to save money
  • avoid retries even when output is weak
  • over-optimize prompts instead of improving workflow
  • babysit usage instead of shipping

For this kind of workload, flat-rate API access makes a lot more sense.

That’s the appeal of Standard Compute: it gives you an OpenAI-compatible API with predictable monthly pricing, so you can run reviewer-heavy agent workflows without turning every iteration into a cost calculation.

If your agents are doing real work all day, that pricing model is a lot easier to live with than token anxiety.

When one-shot prompting is still fine

I’m not saying never use one prompt.

Use one-shot generation when the downside is low:

  • event pages
  • rough startup mockups
  • internal demos
  • disposable prototypes

That’s a good fit.

But once the site matters—real traffic, real claims, real docs, real ownership—the one-shot workflow starts looking like a bad engineering habit.

It’s the website equivalent of asking GitHub Copilot to merge straight to main.

Possible?

Sure.

Comforting?

Not at all.

The practical takeaway

If you’re building websites with agents, stop asking them to be magicians.

Ask them to do reviewable work.

A simple version looks like this:

1. Propose sitemap
2. Approve structure
3. Generate one page
4. Run reviewers
5. Patch specific issues
6. Commit only after approval
Enter fullscreen mode Exit fullscreen mode

That workflow is less flashy than the demo version.

It is also dramatically more useful.

And if you’re running this kind of loop at scale, the infrastructure question matters as much as the prompt question.

Because once agents move from novelty to pipeline, predictable compute becomes part of product quality.

That’s the real shift.

Not "AI can build the whole site."

More like:

AI is useful when you treat it like a worker that needs review.

Top comments (0)