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.

Not everything the AI does happens in the chat panel. Several helpers are attached directly to the interface - a button next to the field you are filling in. They are single-purpose, they run one request, and they hand the result straight back to the field.
Open the SEO panel for a page and each supported field has an AI button next to it.
| Field | What it generates |
|---|---|
| Title | The <title> / meta title |
| Description | The meta description |
| OG title | Open Graph title for social shares |
| OG description | Open Graph description |
| JSON-LD | Structured data for the page |
Each button generates that field only. There is no generate-everything button - which is usually what you want, since you'll accept a title and rewrite a description.
The assistant works from the page's body copy - its headings and paragraphs - plus your website and page context. It does not read button labels, list items, image alt text, or the contents of shared partials.
So an image- or list-heavy page gives it very little to work with. If a landing page is mostly visuals, put the substance in the page context instead - purpose, target keywords, the H1 goal - and the output improves sharply.
Generate from the page open in the builder; the panel works against the page you are editing.
The SEO panel has a Keyword field. Anything you put there is passed to the assistant as the term to optimise for. It's free text, so a short phrase works better than a long list.
The assistant is instructed to keep titles under 60 characters and descriptions under 160 - the usual limits before search engines truncate. This is guidance to the model, not a hard cap: nothing truncates an over-long title for you. The search preview under the form shows how it will actually appear, so check it.
The JSON-LD button generates structured data for the page and validates that the response is real JSON before inserting it. If the model returns something that won't parse, nothing is applied and you're told to try again or write it by hand.
The schema type is chosen by the model from the page content. For pages where the type matters - Product, Article, FAQPage, LocalBusiness - say so in the page context, and check the result in Google's Rich Results Test before publishing.
Every generation overwrites the field, and there is no per-field undo - the SEO panel autosaves a second or so later. If you've written a title you like, copy it before pressing the button. Like everything else in the builder, the change lands in the draft; the live page keeps its current metadata until you publish.
SEO fields are per-language. Switch language in the builder and generate again to fill the translated set.
The theme panel has a wand next to the presets. Describe the look you want - "a warm, editorial feel for a specialty coffee roaster, serif headings" - and the assistant produces a complete theme.
It generates:
If you have set a Look and Tone in the AI context modal, those are used as branding input alongside your prompt.
There is no preview step. The generated theme is applied to the builder at once and saved as a draft theme - so you evaluate it on your actual pages rather than on swatches. A toast offers Undo for 15 seconds, which restores the theme you had before.
Nothing reaches the live site until you publish the theme. See Theming.
A theme is only accepted if it is complete. An incomplete result is rejected with "AI generated an incomplete theme. Some required colors are missing" and nothing changes. Retrying with a more specific description usually fixes it - name the mood, the industry, and a lead color.
Two things to expect:
In the Manage Context modal, both the website context and page context boxes have a wand. It restructures whatever you've typed into the shape the assistant reads best - business, audience, value proposition, and key products for the site; purpose, target keywords, and H1 goal for the page - capped at about 150 words.
It's a rewrite of your own words, not research. It won't discover facts about your business, and if the box is empty there is nothing to enhance.
Two places generate a description of an image:
alt field in block settings has an AI button. It writes alt text
for the fallback language and every other language configured on the site in one pass. The
button is disabled while the block still holds a placeholder image.Descriptions are kept concise - roughly 250 characters at most - which is what screen readers and search engines actually want. Read the result before accepting it: the model describes what it sees, which is not always what the image means in context. See Media and images and Multilingual.
| Helper | Permission |
|---|---|
| SEO fields, enhance context, alt text | ai:use |
| Theme generation | ai:generate_theme |
| Image generation | ai:generate_image |
The SEO panel additionally requires pages:edit_seo, and the theme panel requires theme:edit
and the ai feature flag.
Permissions are enforced on the server. A button may still be visible to someone who lacks the permission for it - they'll get an error rather than a result. See Roles and permissions.
If credit metering is enabled, each of these consumes credits from the same balance as the chat panel, priced by tokens used and the model's multiplier. Running out produces a clear message with a link to buy more where add-ons are configured.
Every helper defaults to the same model as the rest of the AI and can be pointed at a different one per action - useful for sending theme generation to a cheap model and page editing to a strong one. See AI - Customization.
