Divi Forge is a programmatic Divi 5 page builder: structured content in, native Divi block markup out, styled only through Divi’s global design system (presets, colours, fonts). There is no freeform inline CSS in generated markup. The repo is generator-first — sample clinic packs live on disk so you can work without n8n, Airtable, or a CMS plugin as the content source.
Pipeline
One CLI verb: divi-forge run <pack-dir>. Stages run in order: design installs brand presets and writes a site contract; pages turns each page JSON into a PageModel → ModulePlan → Divi 5 markup and publishes to WordPress; bootstrap uploads the logo, builds the nav menu linked to those pages, and installs header/footer Theme Builder layouts. --dry-run renders design and pages to files and never touches the site.
Fragments are captured Divi 5 module JSON with {{slots}}. Brands live as YAML; a preset contract maps symbolic tokens (BODY_H2, HEADER_LOGO) to real Divi preset UUIDs. Secrets stay in env or CLI flags — never in site config. Re-runs are idempotent by slug, menu name and preset id.
./venv/bin/divi-forge run samples/demo-clinic --dry-run
# Live: design → pages → bootstrap against WP Application Passwords
./venv/bin/divi-forge run samples/demo-clinic --stage pages
Where AI fits
The long-term product is an AI site builder on top of this generator: section generation already produces valid Divi layout JSON; page assembly and content packs driven by a brief are next. The hard rule that keeps the output editable in Divi itself is “presets only” — if the model invents freeform CSS, the page is no longer a first-class Divi citizen.
Generate markup the theme builder would have written, not HTML you would be ashamed to open in the editor.
Status is building: the offline clinic sample runs dry and live; LLM-assisted pack authoring is the open track.