Codex · AI team · engineering control
How we built akonnov.com
with Codex and an AI team
We did not “generate a website with one click”. We built a production workflow: the product owner set direction and verified facts, Codex engineered and released changes, a local model handled bounded batch work, Claude provided an independent audit, and deterministic tests protected production.
Anton Konnov · 8 September 2026 · 11 min read
The brief
Not a redesign, but a working professional platform
The goal was more than refreshing a visual style. The site needed to present professional experience, consulting, AI projects, books and board games clearly; work properly on phones; provide a complete English version; and be technically ready for search, analytics and continued development.
My own review and the project's verified fact base became the primary sources. That boundary matters: AI may improve wording or expose a contradiction, but it must not invent qualifications, positions, achievements or commercial claims.
Responsibility
Who did what
Anton Konnov — product owner
I defined the purpose, reviewed the site as its real user, verified professional facts and made decisions that could not be inferred from code: positioning, active FCCA status, the exact degree title, worldwide service scope and the accuracy of product materials.
Codex — lead engineer and controller
Codex inspected the source project, designed the structure, edited pages, built repeatable batch tools, managed Git releases, checked facts and links, diagnosed defects and owned final acceptance. Outputs from other models were never accepted automatically.
OpenClaw and Qwen 3.6 — bounded local worker
The local model received a large but narrow assignment: prepare a draft English package within an established structure. This accelerated work across dozens of pages without making a paid cloud model the default route for every repetitive operation.
Claude Code CLI — independent auditor
Claude did not edit production and was not a second implementer. It examined the prepared site with a fresh client, editorial and technical perspective. Codex then traced every material finding back to source files and accepted only verified conclusions.
Deterministic checks — repeatable acceptance
Guards checked page structure, language pairs, canonical and hreflang links, internal routes, assets, JSON-LD, sitemap entries, duplicates and known factual regressions. Where an exact rule can answer the question, a generative model is unnecessary.
Result architecture
A static site that does not need AI at visit time
akonnov.com is a static HTML, CSS and JavaScript project published through GitHub Pages. The simple architecture provides a transparent change history, fast pages and a clear rollback path without adding a heavy CMS that would solve no extra user problem.
Semantic HTML, canonical links, reciprocal hreflang, sitemap, JSON-LD and Open Graph support discovery and sharing. Fonts and core assets are hosted locally. The ROI calculator runs in the browser and does not send entered figures to a server; analytics starts only after consent.
AI systems took part in production, but they are not part of the visitor's runtime. If the local models or agent environment are offline, the published website continues to work normally.
Bilingual release
Why the English version became a separate project
The full site contains 63 Russian and 63 corresponding English pages. Every pair has language links, canonical declarations and hreflang; the complete English set is included in the sitemap. This was not mechanical word substitution: positioning, calls to action, professional terminology, metadata and structured data all required editorial adaptation.
Qwen accelerated draft production, but publication followed only after editorial and factual review. The final release accurately records the Bachelor of Science in Applied Accounting, active FCCA status and worldwide service scope.
What failed
Automation scales mistakes as efficiently as progress
The local model twice wrote output to the wrong working directory. A batch fixer was initially non-idempotent: when run again, it applied some transformations to already-corrected text. Repetition then produced duplicated fragments and distorted individual words and figures.
Another defect appeared only on the English mobile home page, where longer copy overlapped a hero element. A separate factual error involved a board-game photograph labelled as a different product. Neither problem could be closed reliably by one language model or a simple page-width test.
Each failure became a permanent safeguard. The fixer was made idempotent and verified through a zero-byte tree-hash difference after a second run. Mobile acceptance gained real browser screenshots across distinct templates. Product photography is now reconciled with the primary archive.
Quality control
How the site was accepted
Facts and sources
Public claims were checked against the approved fact base, primary files and explicit product-owner decisions.
Automated guard
All pages, links, language relationships, metadata, structured data and local resources were checked.
Independent AI audit
Claude found Russian strings in the English interface, terminology errors, one-way hreflang and other issues that syntax checks could not see.
Browser and mobile testing
Thirteen distinct templates were reviewed in Firefox, with separate checks at 390 pixels for the open menu, forms, consent panel and long headings.
Release and rollback
Material changes followed a backup, working copy, automated checks, a dedicated Git commit, publication and another check of the public site.
Outcome
The lesson is not “AI replaced the team”
The project demonstrated a more practical model: a small team can distribute work among several AI systems and move significantly faster, provided responsibility does not disappear between agents.
The working sequence was:
product owner → Codex as engineering controller → local AI worker → independent AI auditor → deterministic tests → browser acceptance → release
One model should not invent facts, implement a solution, review itself and accept its own work. Separated roles, traceable sources, backups, change history and tests mattered more than the promise to “do everything with one click”.
Discuss a project
Need a website or AI workflow with a verifiable outcome?
Start with a bounded project whose facts, roles, tests and acceptance criteria are clear before implementation.