Skip to main content
A Content item is a concrete instance of a ContentType that follows the structure defined by its associated layout component. Content items maintain status-based versioning (draft/published) and reference specific package versions for stability.

Key Concepts

ContentType Binding

References a ContentType, which determines the layout, allowed components, and package version.

Self-Contained

Stores its package version and layout component, so rendering stays stable when the ContentType changes.

Template Support

Content can serve as templates that inherit type structure and can be used as starting points for new content.

Compiled Output

System automatically generates BindJS code from JSON content structure for native rendering.

The Content Object

string
Unique identifier
string
Reference to the ContentType
number
Content version number (increments on publish)
number
Last published version number (null if never published)
string
Package version being used (derived from the ContentType; changed by migration)
string
Display name
string
Structured markdown description for semantic search
string
Current status: draft, modified, published, unpublished, or deleted
boolean
Indicates if this is a template content
object
JSON structure where layout properties and component arrays are direct properties
string
Auto-generated BindJS code for rendering (system-managed)
string[]
Tag IDs for filtering
object
Additional content metadata
string
Creation timestamp (ISO format)
string
Last update timestamp (ISO format)

Example Content

Content Structure

Content is stored as JSON where layout properties and component arrays are direct properties:

Single Section Example (Article)

Multi-Section Example (Quiz)

Key Principles

  1. Direct Properties: Layout properties and component arrays are direct properties of the content object
  2. Layout Properties: Properties defined by the layout component (title, subtitle, etc.)
  3. Component Arrays: Arrays of components, conventionally named “components” but can be any name
  4. Multiple Sections: Layouts can define multiple component arrays (e.g., “questions”, “answers”)
  5. Type Validation: All properties validated against the ContentType’s generated schema

Description Best Practices

Content descriptions follow a structured format for semantic search:
Aim for 250-350 characters. Maximum is 500 characters.