We Built Our Website with Claude Code with no Human interaction

javiermanzano1 pts0 comments

We Built Our Entire Website with Claude Code — Lessons from the Git Log | Soamee Skip to main content

Back to blog<br>Claude Code AI Development Productivity Astro<br>We Built Our Entire Website with Claude Code — Lessons from the Git Log<br>How we used Claude Code to build soamee.com: real repo data, what worked, what didn't, and lessons for dev teams considering AI-assisted development.<br>JM<br>Javier Manzano<br>CEO & Co-founder &bull; August 6, 2026

There’s something uncomfortable about publishing this post. Soamee is a software agency. Companies hire us to build digital products. And over the past year and a half, we’ve used Claude Code extensively to build our own website. This is what we found when we opened the git log.

This isn’t a marketing piece about AI. It’s an honest post-mortem: what saved us weeks, what we had to rebuild, and why we keep using the tool despite its limitations.

The repository numbers

Before the analysis, the facts:

639 commits since January 2025

331 commits with Claude Code participation (marked with Co-Authored-By: Claude)

534 .astro files in the current project

345 blog posts published or in draft

115 case studies across multiple languages

5 languages : Spanish, English, Portuguese, Italian, and German

The site has been running continuously in production on Dokku at soamee.com

That 52% of commits with AI involvement doesn’t mean Claude Code wrote half the code. It means it was present in more than half of our working sessions — sometimes generating entire files, sometimes suggesting a three-line fix.

What Claude Code built

The translation system

This is the use case where we recovered the most time. The site has five languages. Every blog post, every case study, every service page exists in ES, EN, PT, IT, and DE. Without AI, that would have meant hiring four translators or accepting a significant lag between Spanish content and its translated versions.

Claude Code generated the initial translations. Not perfect ones — Portuguese tends to bleed Spanish when the model loses context, German needs umlaut review, Italian sometimes mixes registers. But a working draft exists in seconds, not days. The commit log tells the story: “Revisión contextual del portugués: bloques en español y acentos ambiguos”, “Corrige contenido en alemán: umlauts, erratas y bloques en español”.

We review every translation. But reviewing is much faster than creating from scratch.

The translation verification script

We have a translation checker that fails CI if any Spanish content is missing its version in the other four languages. Claude Code wrote the first version of scripts/translation-checker.cjs, complete with category aliases, exceptions for ES-only pages, and integration with the pre-push hook.

It’s a 400-line Node script that does exactly what we specified. Not glamorous. Exactly the kind of task where a human developer takes two hours and Claude Code takes twenty minutes.

Repetitive components

The site has service pages, industry pages, solution pages — many pages with similar structure but different content. Claude Code generated most of them following the established pattern. When the pattern’s design changed, we updated them in batch.

It also wrote the URL normalization middleware (HTTP to HTTPS, trailing slashes, 301 redirects for 404 errors detected in Google Search Console), the sitemap generator, and several CI scripts.

Blog content

Virtually every post on this blog had some Claude Code involvement. Sometimes it generated the full draft from an outline; sometimes it suggested structure for posts I’d already started; sometimes it just expanded sections that felt thin.

The voice is always reviewed. The structure is usually suggested. The data is always verified manually.

What humans had to do

Visual design

This is the clearest boundary. Claude Code can implement a design you describe precisely. It cannot invent one. Soamee’s visual identity — deep purple (#1e1548), mint (#5dd3b3), 45-degree diagonal stripe patterns, concentric bubbles — came from human decisions, not AI.

When we asked Claude Code to “improve the blog design,” it sometimes produced something that worked technically but didn’t sound like us. We had to learn to be very specific: “add a 3px left border in mint color on blockquotes” works. “Improve the design” doesn’t.

Architecture decisions

Choosing Astro 5 with hybrid SSR was a human decision. Choosing Tailwind CSS v4 before there was much documentation was a human decision (and an expensive one in debugging time). Choosing Dokku over other deployment options was a human decision.

Claude Code can evaluate options when you present them, but the selection criteria — what matters for our business, our stack, our operational capacity — come from us.

Reviewing every PR

No Claude Code-generated change went to production without review. Not because we don’t trust the model, but because human review catches things the model can’t know: whether a paragraph’s tone...

claude code human sometimes from blog

Related Articles