Architecture
Three interfaces, one headless engine, one portable site recipe.
Three interfaces write to one engine. One persistence layer. One renderer.
Builder UI ──┐
ner CLI ├──► applyCommands() ──► Firebase ──► hosted site
MCP ──┘
No interface is privileged. A section added via CLI appears in the builder. A skin switched via MCP updates the hosted site.
Headless engine
The engine is a stateless TypeScript layer. It does not own the UI. It accepts a site document and a command batch; it returns an updated document.
CLI / MCP / API
│
▼
Interpreter → command router → applyCommands()
│
▼
Validated site shapes → database → hosted render
All inputs validate before they persist. Invalid commands fail closed.
Interfaces
| Interface | Best for |
|---|---|
| Builder UI | Visual editing, content, publish |
| ner CLI | Terminal batch edits and scripting |
| MCP | AI tool integrations (Cursor, Claude, and similar) |
Customer how-tos: Using nertia. Developer tools overview: Tools.
Portable output
The site is a recipe — pattern + skin + content. Export is first-class. Hosted sites live at {slug}.nertia.ai; custom domains are optional paid hosting.
Keep reading
- Constitution — principles and pricing
- Our story — why the recipe model exists
- Tools overview — CLI, MCP, and install