Producing a well-structured website for a small business means classifying the right site type, enforcing category-specific quality gates, recovering from common build failures without a human in the loop, and staying consistent across many clients. Ad-hoc agent workflows and manual prompt chains cannot enforce those constraints reliably at any volume.
Building a quality website for a local business takes days of manual back-and-forth, with no governed process that can run it without micromanagement.
website-build-pipeline is selfx's internal control plane for producing websites under governed, testable rules. It is the kind of system we build for ourselves before we build it for anyone else — proof of how we engineer, not a client deliverable.
Any selfx client — beauty, dental, repair, real estate, local SMB — who needs a marketing or service site built without a full agency engagement. This is the internal engine that would power that delivery.
A Python package (18 modules, Python 3.12) implementing a full control plane: structured intake admission with scope-boundary enforcement; a brief compiler that normalizes raw input into a typed run spec; a page-and-section planner; a static HTML builder that writes real preview and published artifacts; a deterministic validator with category-specific blocker logic for all six supported site types; a lineage-linked repair engine that resolves common blocked-run scenarios with a child run; a file-backed run/page/section state machine with explicit lifecycle transitions; a watched intake queue; an autonomous cycle runner with lease-based overlap protection; an operator dashboard; and CLI commands for start, summary, publish, repair, and queue. Deployed as a systemd service and covered by 76 deterministic tests in its own Python package (a separate repo from this site).
The control-plane prototype runs end to end: intake → compiled brief → page plan → static HTML preview → deterministic QA gate → published artifacts. Real completed runs exist in the run store, and the live server runs the runner service continuously with the dashboard serving and the operator queue populated. The honest boundary: the HTML output is deterministically templated, not AI-generated copy, and no external client has used it yet — the LLM-backed generation and visual-judge layers are designed but not built. It is on hold at the control-plane stage. We show it as engineering proof: governed, tested, self-healing systems are how selfx works.
- Python 3.12
- PyYAML
- File-backed state machine (JSON store)
- Static HTML generation
- systemd deployment
- 76 deterministic tests
Same system, your business
Want this exact path running for your leads?
The studio direction is simple: diagnose what is leaking, scope the right system, and build something a team can actually use.