Getting Started
Set up R3 CMS and start building content with dynamic content types, the schema builder, and draft/publish workflows.
Overview
R3 CMS is a schema-driven headless CMS where you define your own content types — blog posts, products, FAQs, landing pages, or anything else — through a visual schema builder or the API. The CMS auto-generates editing forms, validates data against your schema, and serves all content through a generic REST API.
Setup
1. Create an Account
Navigate to your R3 CMS instance and create an account.
2. Create a Website
Websites are the core organizational unit in R3 CMS. Each website has its own:
- Content types and content documents
- Lead pipeline
- Webhooks
- API keys and usage tracking
- Settings and configuration
3. Generate an API Key
Go to your website settings and generate an API key. You will need this to access content through the REST API.
Sidebar Navigation
After creating a website, the CMS sidebar provides access to:
- Content Types — Define and manage the structure of your content
- Content — Create and edit documents for each content type
- Webhooks — Configure event notifications for external services
- Leads — Track and manage your sales pipeline
- Settings — Website configuration, API keys, and team members
Creating a Content Type
Content types define the structure of your content. Each content type has a name, a set of fields, and configuration for how documents are displayed.
Using the Schema Builder
- Navigate to Content Types in the sidebar
- Click Create Content Type
- Fill in the metadata:
- Name — A unique identifier (e.g.,
blog_post,product). Used in API queries. - Label — Human-readable name (e.g., "Blog Post", "Product")
- Description — Optional help text
- Icon — Optional icon for the sidebar
- Name — A unique identifier (e.g.,
- Add fields by clicking Add Field and selecting a field type
- Configure each field with a name, label, and type-specific options
- Set the Slug Field (which field auto-generates the URL slug) and Title Field (which field displays as the document title in list views)
- Save the content type
Available Field Types
| Field Type | Description |
|---|---|
text | Single-line string input |
textarea | Multi-line string input |
richText | Rich text editor (TipTap) with formatting, links, and images |
number | Integer or floating-point number |
boolean | Toggle switch (true/false) |
date | Date picker (ISO date string) |
datetime | Date and time picker (ISO datetime string) |
image | Image upload with preview (stored on R2) |
file | File upload (stored on R2) |
slug | Auto-generated URL slug from a source field |
select | Dropdown with predefined options |
reference | Link to another content document |
array | Repeatable group of fields (e.g., a list of features) |
object | Nested group of fields (e.g., an SEO metadata block) |
blocks | Typed repeatable blocks (e.g., page sections with different layouts) |
json | Raw JSON editor |
color | Color picker (hex value) |
url | URL input with validation |
email | Email input with validation |
tags | Tag input that stores an array of strings |
Nested Field Types
Three field types support nesting:
- Object — Groups related fields together. Define child fields inside the object. Renders as a collapsible fieldset in the editor.
- Array — A repeatable list of items, where each item has the same set of fields. Supports drag-and-drop reordering, min/max item limits.
- Blocks — Like an array, but each item can be a different "block type" with its own field set. Useful for flexible page builders.
Creating Content
- Navigate to Content in the sidebar
- Select a content type from the list
- Click Create to open the content editor
- Fill in the form fields — the form is auto-generated from your content type schema
- Click Save Draft to save without publishing, or Publish to make the document available through the API
Draft and Publish Workflow
Every document goes through a lifecycle:
- Draft — New documents start as drafts. Drafts are only visible in the admin UI and through the API with
?draft=true(requires an admin API key). - Published — Publishing a document makes it available through the public API. The
publishedAttimestamp is set on first publish. - Unpublished — Published documents can be unpublished, reverting them to draft status and removing them from the public API.
Publishing and Unpublishing
- In the content editor sidebar, use the Publish button to publish a draft
- Use the Unpublish button to revert a published document to draft
- Publishing and unpublishing fire webhook events (
entry.publish,entry.unpublish)
Version History
R3 CMS automatically tracks version history for every document:
- Every save creates a new version snapshot
- The content editor sidebar shows a list of past versions with timestamps
- Click Restore on any version to revert the document to that state
- Restoring creates a new version (so the restore itself is tracked)
- Restoring does not change the publish status — a published document stays published
Version limits:
- Maximum 50 versions per document by default
- Autosave versions older than 7 days are pruned automatically
- Manual saves are preserved indefinitely
Multi-Site Architecture
R3 CMS supports managing multiple websites from a single installation. Each website is fully isolated with its own content types, content documents, webhooks, and API keys.
What's Next
- Content Types Reference — Detailed field type documentation and example schemas
- API Reference — Query, filter, and manage content through the REST API
- Webhooks — Set up event notifications for your content lifecycle