Content Editing

The content editor is where you create and update the pages, entries, and blocks that make up your site. It's a form-based interface generated from your content models — every field you defined in a model becomes an input in the editor. You fill in the fields, save, and your content is ready for the API or the site builder.

This page covers the editing workflow for all content types, how dynamic blocks and collections work in the editor, draft and publish states, AI-assisted writing, live preview with the site builder, language and environment tools, and access control for admin-only content.


The Editor Interface

When you open a content record — a page or an entry — the editor displays the fields defined by that record's model. Text fields become text inputs, image fields become image pickers, dropdowns show their option set values, and structural fields like groups and collections render as nested sections. Blocks are edited inline within the page or entry that contains them — you don't open a block as a separate record.

The editor layout follows the model structure. Fields appear in the order they were defined. Groups render as collapsible sections that organize related fields. The interface is the same regardless of whether you're editing a static page, a page collection record, an entry, or an admin-only entry — the fields change, but the workflow doesn't.

Saving Content

After making changes, save the record to persist your updates. Saving writes the content to the current environment. If you're consuming content through the API, the updated record is available immediately in API responses (subject to caching and environment configuration).

If you're using the site builder, saving the content updates the data but does not automatically update the rendered page. You need to rebuild the page after saving to see your changes in the preview. This is because the site builder generates static HTML — the content and the rendered output are separate artifacts, and a build step connects them.


Editing Dynamic Blocks

Pages and entries that include a dynamic block field present blocks as a composable stack in the editor. When you first open a record, existing blocks appear in their collapsed state, each showing a summary of its content so you can scan the page structure at a glance without expanding every section.

Adding, Removing, and Reordering Blocks

To modify the block composition, click Edit Blocks. This opens the block management interface where you can add new block instances from the allowed block types, remove blocks you no longer need, and reorder blocks by dragging them into a new position. The allowed block types are determined by the model — you can only add blocks that the model's dynamic block field permits.

Block Titles

Each block instance can be given a title for reference. This title is a UI-only label — it doesn't appear on the published page or in the API response. Its purpose is to help you and other editors identify what a block is about when scanning the collapsed block list. A hero block might be titled "Homepage Hero — Spring Campaign", a CTA block might be titled "Free Trial CTA". These labels make it easier to navigate pages with many sections.

Hiding Blocks

You can hide a block without deleting it. A hidden block retains all its content but doesn't render on the published page and is excluded from API responses. This is useful for seasonal content, A/B testing preparation, or any case where you want to temporarily remove a section and bring it back later with its content intact.

Dynamic BlocksBlock Models


Editing Collections

Collection fields — repeatable groups of fields within a model — render as a list of items in the editor. Each item contains the same set of sub-fields defined by the collection. You can add new items, remove existing ones, and reorder items within the list.

Collections appear in both page models and entry models. An FAQ collection on a page might contain question-and-answer pairs. A features collection on a block might contain icon, title, and description sets. The editing experience is the same: each item is a mini-form with the collection's sub-fields, and you manage the list of items directly in the editor.

Collection Fields


Draft and Published States

Records in page collections and entry collections can be marked as draft. A draft record is saved in the editor and visible to content teams, but it is not included in content API responses. This means your frontend application or site builder output won't include draft content — only published records are delivered.

Drafts are useful for content that is in progress. You can create a blog post, fill in the fields over multiple sessions, and keep it in draft state until it's ready. When you're satisfied with the content, remove the draft flag and save to publish it. If you need to pull a published record back for revisions, mark it as draft again — it disappears from the API until you republish.

Draft state is available on collection records (page collections and entry collections). Static pages and single entries don't have a draft state — they're always published when saved, since there's only one instance and it's expected to be live.

Draft Entries


AI Writing Assistance

SleekCMS integrates AI tools directly into the content editor to help with writing and content generation. These tools are available on markdown and rich text fields, and as a record-level feature for populating new records.

Revise with AI

When editing a markdown or rich text field, you can use the Revise with AI option to clean up existing content. The AI fixes typos, corrects minor grammar issues, and improves readability without changing the meaning or substance of your writing. It preserves your voice and intent — this is a polish pass, not a rewrite.

This is useful for quick proofreading before publishing. Write your content naturally, then run a revision pass to catch the small errors that are easy to miss on your own.

Draft with AI

For markdown and rich text fields, the Draft with AI option generates new content from a prompt you provide. You describe what you want — the topic, desired length, writing style — and the AI produces a draft that you can then edit and refine. For example, you might prompt it to write a 300-word introduction for a blog post about sustainable packaging, in a conversational tone.

The generated content is a starting point. You review it, adjust the language, add specific details, and make it your own. The AI handles the blank-page problem — getting words down that you can shape into the final piece.

Draft a New Record with AI

When creating a new record, you can use AI to populate the empty fields in the form. Any fields you've already filled in are used as context — if you've set the title and selected a category, the AI uses that information to generate appropriate content for the remaining fields like body text, meta descriptions, or excerpt fields.

This accelerates content creation for records that follow predictable patterns. Blog posts, product descriptions, landing page sections — any content type where the structure is defined and the AI can infer reasonable content from a title and a few contextual fields.


Live Preview with the Site Builder

If you're using the integrated site builder, the editor supports a side-by-side preview of the rendered page. As you edit content in the form, the preview panel shows how the page will look when built — real HTML rendered from your EJS templates with the current content data.

The preview reflects the saved state of the content. After making changes and saving, you need to rebuild the page to see the updated preview. The rebuild is fast for single pages — the builder compiles just that page, not the entire site — so the feedback loop between editing and previewing is near-instant.

This workflow lets you iterate on content with visual feedback. Edit a heading, save, rebuild, and see the result. Adjust an image, save, rebuild, and check the layout. The editor and preview sit side by side, so you don't need to switch tabs or navigate to a separate preview URL.

Site BuilderPreview and Iteration


Language and Environment Tools

The editor includes tools for working with multilingual content and comparing content across environments.

Language Selection

If your site supports multiple languages, you can select the language you want to edit from the editor interface. Switching languages loads the content for that language version of the record, letting you create and update translations within the same editing workflow.

Content Comparison

You can compare the current record's content with another language version or with content from a different environment. This is useful when translating content — you can view the original language side by side with the translation you're writing. It's also useful for reviewing differences between environments, such as comparing staging content against what's live in production.

Content TranslationsCompare ContentEnvironments & Content Versions


Access Control for Admin-Only Content

Entry models can be configured as admin-only, which restricts who can edit them. Admin-only entries — typically used for site-wide settings like navigation, footer content, and global configuration — are only editable by users with the admin role.

Content editors can view and use the data from admin-only entries (they appear in templates and API responses), but they cannot modify the records. This separation protects site-critical configuration from accidental changes while keeping the content accessible for rendering.

If you don't have admin access and need to update an admin-only entry, contact a site administrator. The admin-only restriction applies to editing through the SleekCMS interface — it doesn't affect how the content is consumed through the API or site builder.

Admin RoleEntry Models


What's Next