Store Builder

Writing articles

Create a blog post, choose its body type, file it under categories — and one warning worth reading before you pick "Page".

The blog lives under Manage → Blog. Categories are separate, under Blog Categories.

The list shows Title, Slug, Status, Categories, Published, searches by title or slug, and filters by status.

Creating an article

New article. The form has four tabs.

Content

Title — required.

Slug — generated from the title if you leave it blank, and it is the article's address. Lowercase letters, numbers and hyphens only. A clash with another article gives you "An article with this slug already exists."

An article's slug is derived and de-duplicated. A category's slug is neither — it is required and you set it yourself. That is the domain's rule rather than an inconsistency: a category slug is a URL segment an author picks.

Summary — one line, used in article listings and for SEO.

Body type — see the next section.

Cover image URL, Author, Tags (type and press Enter).

Body type: Rich text, or Page

Rich text is the one to use. You write the content with ordinary formatting, and it renders on the published page.

Page (visual builder) lets you build the body with the page builder. But read the warning the form shows you:

"This article's body is stored as a builder page, which published pages cannot render yet — the article will go live with no content. Switch it back to Rich text to publish."

Plainly: choosing "Page" today means the article publishes with no body. The article list marks those with a No content badge. This is an unfinished feature, and both the editor and this page say so rather than letting you find out after publishing.

The same holds through the API: reading a page-bodied article is fine, but writing one answers 409 unsupported_body_type — because that body travels in no field of the write shape, so a PUT would not modify it, it would delete it, on a request that looked like an ordinary edit. See The public API.

Categories

Pick the blog categories for this article. With none created yet, the tab says so: "No blog categories found. Create one under Blog Categories first."

Categories are their own list, managed under Blog Categories. A category cannot be moved beneath its own descendant — trying gives you cycle_detected.

Meta and SEO

Meta title, Meta description, Keywords — what search engines read. See SEO.

The body is sanitised on save

The article body is sanitised as it is written: script tags and event handlers are stripped, because this content is rendered verbatim into a storefront page a shopper downloads.

The practical consequence: read the content back after saving rather than assuming what you pasted is what will be served. If you paste HTML from somewhere else, some of it may have been dropped.

Where articles appear

Articles do not get an individual page you build. They use the site's template page of type Post, and article listings use the page of type Blog. You build those two once, and every article shares them.

Which means: if the site has no Post template, article addresses have nothing to render. See Pages and the canvas.

To put a list of articles on any page, use a list element — see Lists that fill themselves.

Deleting

Deleting an article is permanent and cannot be undone.

Through the API

GET, POST, PUT, DELETE for /api/v1/articles and /api/v1/blog-categories, both under the same blog.read / blog.write pair. Unknown categoryIds are dropped rather than failing a whole import — compare the response to see which stuck.

Updated 22/08/2026