The Visual Website Builder
You Actually Own. React + Next.js, low-code, self-hosted. Your data, your infrastructure, every feature included.
© ChaiBuilder. All rights reserved.

Definitions of the terms used throughout these docs, grouped by the part of the product they belong to. Where a term has a page of its own, it is linked.
| Term | Meaning |
|---|---|
chaicore |
The open-source core: the pure editor component plus a basic Next.js website builder with SQLite page storage and page rendering. |
chaipro |
The paid package: the core plus the Pro plugins. This is what the starter installs. |
| Editor | ChaiBuilderEditor, the framework-agnostic React component that does visual editing and nothing else. Blocks in, blocks JSON out. |
| Website builder | ChaiWebsiteBuilder, the editor plus pages, SEO, publishing, storage, and rendering. |
| Starter | The public Next.js + Payload CMS template with the builder pre-installed and wired up. |
chaibuilder-app |
The open-source CLI that scaffolds a new project locally. See CLI. |
| License key | The environment variable that unlocks chaipro after the 30-day trial. See Trial & Licensing. |
| Term | Meaning |
|---|---|
| App | One site. A row in the apps table that scopes its pages, assets, and content. One database can hold many. |
| Page | A visually built page: a slug, SEO metadata, and a tree of blocks. |
| Block | The unit of composition on a page. A registered React component plus a props schema the builder renders a settings panel from. See Blocks. |
| Blocks JSON | The serialised block tree that is a page's actual content. |
| Global block | A block tree built once and reused on many pages: header, footer, CTA band. A page with no slug, referenced from consuming pages and inlined at render time. See Global Blocks. |
| Partial | The internal name for a global block. Same thing; prefer "global block" in writing. |
| Reference | The placeholder block on a consuming page that points at a global block. Holds no content of its own. |
| Page type | A page that acts as the layout for many records, resolved by a dynamic segment and a data provider. See Page Types. |
| Identifier | What a page type's data provider looks a record up by. Often the same string as the slug, deliberately not required to be. |
| Collection | A set of same-shaped structured records. In the starter these are Payload collections. |
| Structured content | Content defined by typed fields rather than layout: blog posts, legal pages, jobs. |
| Draft | The working version of a page. Only visible in the builder and in preview. |
| Published | The live version of a page, the only one public visitors see. |
| Publish | Copying the draft to the published version and invalidating that page's cache. |
| Revision | A stored snapshot of a page's blocks. Restoring replaces blocks only, and does not publish. See Revisions. |
| Language page | A translation of a primary page. Holds translated text and shares the primary page's structure. See Multilingual. |
| Trash | Soft deletion. Deleted pages and assets are recoverable until purged. |
| Redirect | A managed source-to-destination rule, edited in the builder rather than in code. |
| Term | Meaning |
|---|---|
| Design token | A named bundle of Tailwind classes applied as a unit. Not a CSS variable. See Design Tokens. |
| Theme | The site's design values: heading and body fonts, border radius, and a fixed palette of colors, each with a light and a dark value. See Theming. |
| Preset | A ready-made set of theme values you can apply and then adjust. |
| Canvas | The editing surface in the builder where blocks are arranged and previewed. |
| Panel | A region of the builder UI. Registerable, so you can add your own. |
| Library | The palette of blocks and prebuilt sections an editor can drop onto a page. |
| Term | Meaning |
|---|---|
| Data binding | {{ }} expressions that pull values into block props at render time. See Data Binding. |
| Repeater | A block that renders its children once per record in a collection. |
| Data provider | A server function that supplies data to a render. Three kinds: global, page-type, and block. See Data Providers. |
| Global data provider | The provider whose result is available on every page as global.*. Site name, socials, tracking. |
| Page-type data provider | The provider that turns a URL segment into the record a page type renders. |
| Block data provider | A provider bound to a block type, resolved per block instance. Its output overrides props of the same name set in the panel. |
| Conditional visibility | A per-block condition evaluated at render time. A hidden block is absent from the HTML, not merely invisible. See Conditional Visibility. |
| Asset | An uploaded file in your object storage, with metadata in your database. |
| DAM | The digital asset manager: the media library UI for browsing, uploading, and searching assets. |
| Term | Meaning |
|---|---|
| Plugin | A feature, shipped in two halves: a server plugin (actions, permissions, data) and a client plugin (UI). Registering it turns the feature on. |
| Action | A named server operation the builder dispatches - load, save, publish, upload, restore. Permission-checked, and extensible with your own. |
| Request context | What the server resolves per request: which site, which user, their permissions, draft state, and the site URL. |
| Permission | A single capability, such as publishing a page. Grouped into roles. |
| Role | A named set of permissions assigned to a user. |
| App membership | A user's association with a site. Logging into the CMS does not by itself grant builder access. |
| Admin route | The path the builder and CMS live under. /admin by default, relocatable. See Admin Route. |
| Action endpoint | The single server route the builder posts every action to. |
| Draft mode | The Next.js mechanism preview uses to render draft content uncached. |
| ISR cache | Where rendered pages are stored between visits. Invalidated on publish. See Caching & Revalidation. |
| Cache tag | A label attached to cached output so a content change can invalidate exactly what it affects. |
| Revalidation | Invalidating cached pages so the next visitor triggers a fresh render. |
| Schema hook | The Payload hook that merges ChaiBuilder's tables into Payload's schema, so one migration pipeline covers both. |
| Agency branding | Setting your own logo and colors inside the builder. Included with the Agency license, and distinct from the White Label Solution. |
