Designing Content Models

Create and configure content models that define your curriculum architecture.

Content Models are the foundation of your curriculum in CurryCMS. A well-designed content model makes content creation intuitive, maintains consistency, and ensures your curriculum can scale as your needs grow.

Before You Begin

You need:

  • Admin role in your account
  • Clear understanding of your curriculum organization
  • List of content types you'll need (Course, Unit, Lesson, etc.)
  • Understanding of relationships between content types

What is a Content Model?

A content model defines:

  • Block types: What kinds of content exist (Course, Unit, Lesson, Activity)
  • Hierarchy rules: Which types can contain which other types
  • Fields: What data each type captures
  • Constraints: Rules about relationships and nesting

Think of a content model as a template that defines the shape of curricula, not the content itself.

Example:
```
Content Model: K-12 Mathematics
├── Block Type: Course (root)
├── Block Type: Unit (child of Course)
├── Block Type: Lesson (child of Unit)
└── Block Type: Activity (child of Lesson)

Hierarchy Rules:
- Course can contain Units
- Unit can contain Lessons
- Lesson can contain Activities
```

Creating a Content Model

Step 1: Plan Your Content Model

Before creating, answer:

  1. What content types do you need?

    • Common: Course, Unit, Lesson, Activity, Assessment
    • Specialized: Section, Module, Topic, Exercise, etc.
  2. How do they relate?

    • Linear: Course → Unit → Lesson → Activity
    • Flexible: Module → Module → Content
    • Mixed: Multiple child types at each level
  3. What fields do types need?

    • All types: Title, Description
    • Lessons: Duration, Learning Objectives
    • Activities: Interactivity Type, Materials

Step 2: Create the Content Model

  1. Navigate to Schema → Content Models in the navigation
  2. Click Create Content Model
  3. Fill out the form:
    • Name (required): "K-12 Mathematics" or "Course-Unit-Lesson Content Model"
    • Description (optional): "Standard 4-level hierarchy for K-12 math curricula"
  4. Click Create Content Model

After creation:
- You're taken to the content model detail view
- The content model has no block types yet
- You'll add block types and configure hierarchy next

Step 3: Add Block Types

See Managing Block Types for detailed instructions.

Quick overview:
1. Click Add Block Type
2. Enter name and display name
3. Mark as root if it's a top-level type
4. Configure fields
5. Define what it can contain

Step 4: Configure Hierarchy

Define parent-child relationships:

  1. For each block type, specify Can contain
  2. Select which types can be children
  3. This enforces valid content structure

Example configuration:
- Course: Can contain = [Unit]
- Unit: Can contain = [Lesson]
- Lesson: Can contain = [Activity, Assessment]
- Activity: Can contain =

Content Model Design Patterns

Pattern 1: Linear Hierarchy

Structure:

Course → Unit → Lesson → Activity

Best for:
- Traditional sequential curricula
- Clear learning progressions
- Simple to understand

Example use:
- K-12 textbook replacements
- Online courses with fixed structure
- Training programs

Pros:
- Intuitive for authors
- Easy to navigate
- Clear organization

Cons:
- Not flexible
- Can't handle alternative organizations

Pattern 2: Branching Hierarchy

Structure:

Course
└── Unit
├── Lesson
│ ├── Activity
│ └── Assessment
└── Project

Best for:
- Curricula with varied content types
- Including assessments and projects
- Differentiated instruction

Example use:
- College courses
- Professional development
- Blended learning programs

Pros:
- Flexible content types
- Can include multiple assessment types
- Supports varied pedagogy

Cons:
- More complex for authors
- Requires careful planning

Pattern 3: Flexible Self-Nesting

Structure:

Module
├── Module (nested)
│ ├── Module (nested deeper)
│ └── Content
└── Content

Best for:
- Highly variable organization
- Different depths per curriculum
- Adaptive learning paths

Example use:
- OER repositories
- Competency-based education
- Micro-learning platforms

Pros:
- Maximum flexibility
- Authors control depth
- Reusable modules

Cons:
- Can become unmanageable
- Hard to enforce consistency
- Navigation complexity

Pattern 4: Component-Based

Structure:

Section → [Any of: Video, Reading, Quiz, Discussion, Exercise]

Best for:
- Mix-and-match content
- Component libraries
- Authoring flexibility

Example use:
- eLearning platforms
- Modular curriculum design
- Content libraries

Pros:
- High reusability
- Author creativity
- Easy to rearrange

Cons:
- Less prescribed organization
- May lack coherence
- Requires disciplined authoring

Field Planning

Field Strategy

Universal fields (all block types):
- Title
- Description
- Author
- Last Modified

Type-specific fields (varies by type):
- Lessons: Duration, Learning Objectives
- Activities: Materials Needed, Interactivity Level
- Assessments: Question Count, Time Limit

Field Set approach:
- Create "Basic Info" field set with universal fields
- Create specialized field sets per type
- Apply field sets to appropriate block types

See Field Sets for details.

Modifying Existing Content Models

Understanding Impact

Safe changes (no data loss):
- Adding new block types
- Adding new fields
- Adding new "can contain" rules
- Updating names and descriptions

Potentially destructive:
- Removing fields (data deleted)
- Removing block types with content (must delete content first)
- Removing "can contain" rules (can't add new, but existing content unaffected)

Making Safe Changes

  1. Open the content model
  2. Navigate to the element to modify
  3. Make your change
  4. Save
  5. Changes apply to all curricula using this content model

Best practice: Test on a cloned content model first.

Handling Destructive Changes

Before removing fields:
1. Check if any content uses the field
2. Export or migrate data if needed
3. Communicate changes to authors
4. Remove the field

Before removing block types:
1. Verify no content blocks of that type exist
2. Delete all content blocks of that type first
3. Then remove the block type from content model

Before removing "can contain" rules:
1. Understand existing content won't be deleted
2. Authors can't add new children of that type
3. Existing children remain valid

Content Model Variants

Advanced feature for creating compatible variations.

What Are Content Model Variants?

A content model variant inherits from a parent content model but can add:
- New block types
- Additional fields
- Extended hierarchy rules

Example:
- Base: Course → Unit → Lesson
- Variant: Course → Unit → Lesson → Lab Activity (adds Lab Activity type)

When to Use Content Model Variants

Use when:
- Regional requirements need additional block types
- Different curricula need specialized fields
- You want to maintain compatibility with parent content model

Don't use when:
- You need a completely different organization
- Changes are minor (add to base content model instead)
- You don't understand inheritance implications

Creating a Content Model Variant

  1. Open the parent content model
  2. Click Create Variant
  3. Enter name and description
  4. Add your specialized block types/fields
  5. Save

Result:
- Variant inherits all parent block types
- Variant can add new types
- Curricula can choose base or variant

Cloning Content Models

Create a copy to test changes or create similar content models.

When to Clone

Clone for:
- Testing major changes before applying to production
- Creating a similar content model for different subject
- Starting point for experimentation

Example:
- Clone "K-12 Mathematics" to create "K-12 Science"
- Modify block types and fields for science-specific needs
- Keep math content model unchanged

How to Clone

  1. Open the content model to clone
  2. Click Clone Content Model
  3. Enter new name: "Copy of [Original Name]" or custom name
  4. Description automatically includes "Cloned from..."
  5. Click Clone

Result:
- Complete copy with all block types, fields, and hierarchy
- No connection to original (not a variant)
- Modify freely without affecting original

Deleting Content Models

Prerequisites

You cannot delete a content model if:
- Any curricula use it
- Any content model variants inherit from it

How to Delete

  1. Verify no curricula use the content model
  2. Delete or migrate all curricula first
  3. Open the content model
  4. Click Delete Content Model
  5. Confirm deletion

⚠️ Warning: Deletion is permanent and cannot be undone.

Alternative to Deletion

Instead of deleting:
- Archive: Rename to "ARCHIVED - [Name]" and document why
- Hide: Mark as inactive (if feature available)
- Migrate: Move curricula to new content model before deleting old

Best Practices

Start Simple

Begin with:
- 3-4 block types maximum
- Linear hierarchy
- Basic fields only

Expand later:
- Add specialized types as needed
- Introduce branching when requirements emerge
- Keep it minimal until you understand needs

Why: Over-complex content models confuse authors and create maintenance burden.

Plan for Growth

Design for:
- Future content types (leave room in hierarchy)
- Field evolution (use field sets for flexibility)
- Variant needs (will regional versions need extensions?)

Example:
- Instead of: Lesson → Activity (rigid)
- Use: Lesson → Activity OR Assessment

Use Descriptive Names

Block type names should be:
- ✅ "Course" not "C"
- ✅ "Learning Activity" not "LA"
- ✅ "Formative Assessment" not "Assessment1"

Why: Authors see these names daily. Clarity matters.

Document Your Design

Content model description should include:
- Purpose and use case
- Block type relationships
- Intended use patterns
- Any special rules or conventions

Example:
```
K-12 Mathematics Content Model

4-level hierarchy for standards-aligned K-12 math curricula.

Block Types:
- Course: Full-year curriculum (e.g., "Grade 3 Math")
- Unit: Multi-week instructional unit
- Lesson: Single class period
- Activity: 10-15 minute engagement

Conventions:
- Units align to 1-3 standards
- Lessons align to specific standards
- Activities for practice, not direct instruction
```

Involve Authors Early

Get feedback from:
- Content authors who will use the structure
- Curriculum directors with requirements
- Subject matter experts

Ask:
- Does this match how you think about content?
- What's missing?
- What seems unnecessary?

Why: Content models designed in isolation often miss real-world needs.

Version Content Model Names

If you expect evolution:
- "K-12 Math Content Model v2"
- "Course Template 2024"
- "Standard Content Model (Revised)"

Why: Makes it clear which version curricula use and when changes happened.

Common Questions

Can I change a curriculum's content model after creation?

No. Content models are locked when curricula are created. To change, create new curriculum with new content model and migrate content manually.

What happens to existing content when I modify a content model?

Adding: New types/fields available immediately
Removing: Existing content unaffected but can't add new blocks of removed types
Deleting fields: Data is lost

How many content models should I have?

Typical:
- 1-3 for most organizations
- One per content domain (Math, Science, ELA)
- Or one universal flexible content model

Avoid: Dozens of nearly-identical content models. Use variants instead.

Can authors see content models?

Authors see block types and fields, not the "content model" abstraction. Admins manage content models; authors use them.

Should I create one content model or many?

One content model when:
- Content organization is similar across subjects
- You want consistency
- Maintenance simplicity is priority

Multiple content models when:
- Subjects have fundamentally different organization
- Requirements vary significantly
- Each content model serves distinct purpose

Can I merge two content models?

No automatic merge. You must:
- Create new combined content model manually
- Migrate curricula one at a time
- Or use one content model and deprecate the other

What if I made a mistake in the content model?

If no curricula exist yet: Delete and recreate
If curricula exist:
- Clone content model to create corrected version
- Create new curricula with corrected content model
- Migrate content manually

Troubleshooting

"Cannot delete content model: curricula exist"

Find and delete or reassign all curricula using this content model first. Use the curricula list filtered by content model.

Changes to content model not appearing in curriculum

Refresh the curriculum page. Some changes require reload to display.

Authors can't add certain content types

Check "Can contain" configuration. The parent block type must explicitly allow that child type.

Fields not showing in block edit form

Verify:
- Field set is assigned to block type
- Field set contains the fields
- Field is not hidden or conditional

Content model list shows outdated information

Clear browser cache or hard refresh (Cmd/Ctrl + Shift + R).

Next Steps

After designing your content model:

  1. Managing Block Types - Configure individual block types
  2. Field Sets - Create reusable field sets
  3. Creating Curricula - Start building content with your content model

Related Documentation:
- Admin Overview - Your administrative capabilities
- Managing Block Types - Configure content types
- Field Sets - Create reusable fields
- Team Management - Manage user roles

Was this page helpful? |