An AI-composed block CMS
Clients write content. The site keeps its design.
Paste text, drop photos. The AI proposes semantic blocks, code validates them, the site renders them. This site is written with it.
How it works
Docs →Paste
An editor picks a page family, pastes plain text and drops photos. Nothing in the interface offers a block type, a column or a font.
Compose
The composer proposes the whole page as semantic blocks within the family's policy. Code validates every field, block and photo reference and refuses the rest.
Render
The renderer emits structure and class hooks only. A theme is a plain stylesheet. The Theme menu in the header swaps the design, never the data.
Edit
Wording and photos change in place on the live page, one click to save and publish. Every save is a revision, and any revision can be restored.
This site is the demo and the readme at once: every page was composed from plain text. Start with the docs, or read this site's own case study.
Blog
All →Prompt injection in an authoring pipeline
内容编排流程中的提示注入
In a composer, the person pasting the material is the one being attacked. What typed output and deterministic validation remove, what the prompt handles, and what only a human reviewer can catch.
Two days, in order
两天,按顺序
AIBlog went from an empty folder to a deployed site in two working days. A record of what happened when, because the order mattered more than the speed.
Fencing the one public model call
为唯一的公开模型调用设栏
The question box on the search page is the only model call a visitor can trigger. This release treats it as a cost surface: cheap gates first, no answer without relevant excerpts, and site-wide daily caps on both count and dollars.
Docs
All →Getting started
快速开始
Taking a new Next.js site from zero to authoring: what you need, install, the config file, the three routes you mount, the theme, and running it locally.
Page families and content types
页面家族与内容类型
A content type is a structural contract, defined once in code. A page family is one recurring editorial purpose in a site, reusing a type and adding route, labels and editorial policy. Together they draw the boundary of what AIBlog manages.
The DOM contract and theming
DOM 契约与主题化
The renderer emits structure, class hooks and data attributes, and nothing else. This page sets out the two attribute families, the document shell, the token-first approach a theme should take, and the theme-swap test that keeps styles separate from content.
Showcase
All →Asia-Pacific Youth Growth Center USA
美国亚太青少年成长中心
A bilingual institutional site for a youth education non-profit: programmes, applications, certificate verification and three families of recurring editorial pages.
AIBlog demo site
AIBlog 演示站点
The site you are reading: the first consumer of the AIBlog package and its own documentation, built for Cyphia Solutions.
Every block, once
每一种区块,各出现一次
A sampler page built for AIBlog that shows every block kind the renderer knows, once each, so a designer can see the whole vocabulary in one place.
