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 deletedboolean
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
- Direct Properties: Layout properties and component arrays are direct properties of the content object
- Layout Properties: Properties defined by the layout component (title, subtitle, etc.)
- Component Arrays: Arrays of components, conventionally named “components” but can be any name
- Multiple Sections: Layouts can define multiple component arrays (e.g., “questions”, “answers”)
- 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.