Automation Render.com Next.js Static Architecture

Automating Client Website Builds with n8n and Claude Code

Static Signal
Static Signal Automaton Bot

Most web devs I talk to are still building sites the same way they did five years ago: hop on a call, take notes, open VS Code, start from scratch (or a starter template if they’re efficient), push to GitHub, deploy. Repeat for every client.

It works. But it doesn’t scale.

I spent the last few months building a system that automates the bulk of that process. The core idea: a client fills out an intake form, and the pipeline handles everything from generating the project scaffold to deploying a live preview URL. By the time I’m involved, there’s already a working site to review.

Here’s how it works.


The Stack

- n8n — workflow orchestration (cloud-hosted, but self-hosted works fine)

- Claude Code — AI agent that writes, edits, and builds the actual site

- Mac Mini (headless, SSH) — the compute node where Claude Code runs

- GitHub — repo storage and version control

- Render.com — static site hosting with a clean REST API & Blueprint capability for automated deploys

This isn’t a theoretical architecture. It’s running in production for Neuron Web Development.


Step 1: The Intake Form

Everything starts with an Assembly.com intake form. When a new client submits it, the form captures:

  • Business name, industry, location

  • Services offered

  • Brand colors (hex codes or “we don’t have any”)

  • Existing logo (file upload or “we need one”)

  • Target audience, key differentiators

  • 3–5 competitor sites they like (and why)

When submitted, Assembly fires a webhook to n8n.


Step 2: n8n Processes the Intake

The n8n workflow receives the webhook payload and does a few things:

  1. Parses and structures the form data into a clean JSON object

  2. Generates a CLAUDE.md file — a plain-text briefing document that tells Claude Code exactly what to build. Think of it as a spec sheet written in natural language.

  3. Clones the base template repo on the Mac Mini via SSH command node

  4. Drops CLAUDE.md into the project root of the cloned repo

  5. Fires the Claude Code job via SSH

The CLAUDE.md file is the key. It contains the client name, color palette, copy direction, page structure, and explicit instructions on what to build. Claude Code reads this file first before touching anything else.


Step 3: Claude Code Does the Build

Claude Code runs headlessly on the Mac Mini. When n8n triggers it, it:

  1. Reads CLAUDE.md for the project brief

  2. Scaffolds the site structure based on the template

  3. Customizes colors, fonts, and layout variables

  4. Writes page content (Home, About, Services, Contact) using the intake data

  5. Runs npm run build to verify the build passes

  6. Commits everything and pushes to a new GitHub repo

The template is a Next.js 14 static export with a clean component library and Tailwind. Claude Code isn’t building from scratch every time — it’s customizing a known-good base. That distinction matters a lot for reliability.

When the build is done, Claude Code writes a completion signal back to a file that n8n is watching.


Step 4: GitHub Deploys to Render

The initial build requires a Blueprint to be created by pulling in the render.yaml specification file. This triggers Render to scaffold the environment and specifics of the deployment.

Render builds the site and returns a live preview URL — something like client-site-name.onrender.com. n8n captures that URL and moves to the next step.


Step 5: Client Notification

n8n sends the client an automated email (via Assembly or direct SMTP) with:

  • A link to their live preview

  • A short feedback form

  • Estimated timeline for revisions

From intake form submission to live preview link in the client’s inbox: under 2 hours, with me touching nothing.


What Still Requires a Human

I want to be honest about where the automation breaks down, because no pipeline is magic.

Content is still the bottleneck. Claude Code can write placeholder copy based on the intake form, but it’s not going to produce the kind of specific, trust-building copy that converts visitors. Human editing is still required for the final version.

Photos and assets. The pipeline can pull stock photos from Unsplash via API as placeholders, but real client photography has to come from somewhere.

Edge cases in the brief. If the intake form is vague or contradictory, Claude Code will make assumptions. Sometimes those assumptions are fine. Sometimes they’re not. The CLAUDE.md format has gotten tighter over time specifically to reduce this.

Client revision cycles. This is the real work — and frankly, it’s where the relationship lives. The automation handles the commoditized part of the build so I can spend more time on the stuff that actually matters.


Why n8n Instead of a Custom Script

I get this question a lot. The honest answer: n8n gives me a visual audit trail, easy error handling, and a no-code interface I can hand to someone else if needed. A raw Python or Node script would be faster to write initially but harder to maintain and debug when something breaks at 2am.

The workflow has maybe 18 nodes. Anyone who can read a flowchart can understand what it’s doing.


Is This Ready to Open Source?

Not yet, but it’s getting there. The template repo and the CLAUDE.md spec format are the pieces most likely to be useful to other developers. If there’s interest, I’ll clean those up and publish them. Drop a comment below or reach out directly if you want to be notified.


Static Signal is published by Neuron Web Development — a web agency building fast, AI-maintainable sites for small businesses.