Key Concepts
ContentType Binding
References a specific ContentType version that determines the layout, allowed components, and package version.
Self-Contained
Stores type version reference and maintains derived package and layout references for rendering stability.
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
Unique identifier (UUID)
Reference to the ContentType
Version of the ContentType used
Content version number (increments on publish)
Last published version number (null if never published)
Package version being used (derived from typeVersion, immutable)
Display name
Structured markdown description for semantic search
Current status:
draft, modified, published, unpublished, or deletedIndicates if this is a template content
JSON structure where layout properties and component arrays are direct properties
Auto-generated BindJS code for rendering (system-managed)
Categories/attributes for filtering
Additional content metadata
Creation timestamp (ISO format)
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.
