Docs/cms/Getting Started

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.

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

  1. Navigate to Content Types in the sidebar
  2. Click Create Content Type
  3. 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
  4. Add fields by clicking Add Field and selecting a field type
  5. Configure each field with a name, label, and type-specific options
  6. Set the Slug Field (which field auto-generates the URL slug) and Title Field (which field displays as the document title in list views)
  7. Save the content type

Available Field Types

Field TypeDescription
textSingle-line string input
textareaMulti-line string input
richTextRich text editor (TipTap) with formatting, links, and images
numberInteger or floating-point number
booleanToggle switch (true/false)
dateDate picker (ISO date string)
datetimeDate and time picker (ISO datetime string)
imageImage upload with preview (stored on R2)
fileFile upload (stored on R2)
slugAuto-generated URL slug from a source field
selectDropdown with predefined options
referenceLink to another content document
arrayRepeatable group of fields (e.g., a list of features)
objectNested group of fields (e.g., an SEO metadata block)
blocksTyped repeatable blocks (e.g., page sections with different layouts)
jsonRaw JSON editor
colorColor picker (hex value)
urlURL input with validation
emailEmail input with validation
tagsTag 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

  1. Navigate to Content in the sidebar
  2. Select a content type from the list
  3. Click Create to open the content editor
  4. Fill in the form fields — the form is auto-generated from your content type schema
  5. 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:

  1. 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).
  2. Published — Publishing a document makes it available through the public API. The publishedAt timestamp is set on first publish.
  3. 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