What This Template Is For
Every EdTech product eventually hits a content management crisis. Authors cannot find the latest version of a lesson. Reviewers do not know what needs approval. Published content has broken links or outdated information. The root cause is almost always the same: the team built features for learners without specifying how content would be created, organized, reviewed, and maintained.
This template defines the content management system your EdTech product needs. It covers content types and schemas, authoring workflows, review and approval processes, versioning rules, publishing pipelines, and governance policies. Whether you are building a custom LMS, extending an off-the-shelf platform, or migrating between systems, this spec ensures your content operations scale with your catalog.
For the learner-facing design of your courses, use the Course Design Template. This template focuses on the operational side: how content gets created, managed, and maintained by your team.
How to Use This Template
- Define Content Types. List every type of content your platform serves (lessons, quizzes, videos, PDFs, discussions) and their metadata schemas.
- Map the Authoring Workflow. Who creates content, who reviews it, who approves it, who publishes it?
- Specify Versioning Rules. How do you handle updates to live content without breaking the learner experience?
- Design the Publishing Pipeline. What steps does content go through from draft to live?
- Set Governance Policies. Who owns content? How often is it reviewed? When is it retired?
- Review with your content team, engineering, and operations before implementation.
The Template
Content Type Inventory
- ☐ List all content types in your platform
- ☐ Define required and optional metadata fields for each type
- ☐ Specify file formats and size limits
- ☐ Define relationships between content types (lesson belongs to module belongs to course)
| Content Type | Description | Format | Max Size | Required Metadata |
|---|---|---|---|---|
| [Lesson] | [Text-based learning content] | [Markdown / HTML] | [N/A] | [Title, module, learning objectives, duration, author] |
| [Video] | [Recorded lecture or demo] | [MP4, 1080p] | [500 MB] | [Title, transcript, captions, duration, speaker] |
| [Quiz] | [Assessment with auto-grading] | [JSON schema] | [N/A] | [Title, module, mapped objectives, passing score] |
| [Exercise] | [Hands-on practice activity] | [Markdown + code] | [N/A] | [Title, instructions, starter code, solution, hints] |
| [Resource] | [Downloadable supplementary material] | [PDF / PPTX / XLSX] | [50 MB] | [Title, description, file type, related lesson] |
| [Discussion Prompt] | [Forum question for peer learning] | [Text] | [N/A] | [Title, module, discussion guidelines] |
Content Hierarchy
- ☐ Define the content hierarchy (e.g., Course > Module > Lesson > Activity)
- ☐ Specify ordering rules (manual sort, sequential, learner-chosen)
- ☐ Define prerequisite logic (can learners skip ahead?)
- ☐ Document content reuse rules (can a lesson appear in multiple courses?)
| Level | Contains | Ordering | Reuse Allowed |
|---|---|---|---|
| [Program] | [Multiple courses] | [Manual sort] | [N/A] |
| [Course] | [4-8 modules] | [Sequential] | [No] |
| [Module] | [3-6 lessons + 1 quiz] | [Sequential] | [Yes, across courses] |
| [Lesson] | [Text + media + 1 activity] | [Fixed] | [Yes, across modules] |
Authoring Workflow
- ☐ Define roles in the content creation process
- ☐ Map the workflow from first draft to published
- ☐ Set SLAs for each stage (review turnaround, approval time)
- ☐ Specify the tools used at each stage
Roles
| Role | Responsibilities | Tool Access |
|---|---|---|
| [Author] | [Writes lesson content, creates exercises] | [CMS editor, asset library] |
| [Instructional Designer] | [Reviews learning objectives alignment, pedagogy] | [CMS editor, review dashboard] |
| [Subject Matter Expert] | [Reviews technical accuracy] | [CMS viewer, commenting] |
| [Editor] | [Reviews grammar, style, brand consistency] | [CMS editor, style guide] |
| [Publisher] | [Final approval, scheduling, deployment] | [CMS admin, publishing pipeline] |
Workflow Stages
- ☐ Define each stage with entry and exit criteria
- ☐ Assign ownership and SLAs
- ☐ Specify notification triggers
| Stage | Owner | Entry Criteria | Exit Criteria | SLA |
|---|---|---|---|---|
| 1. Drafting | Author | [Outline approved] | [All sections complete, no TODOs] | [5 business days] |
| 2. ID Review | Instructional Designer | [Draft complete] | [Learning objectives aligned, activities appropriate] | [2 business days] |
| 3. SME Review | Subject Matter Expert | [ID approved] | [Technical accuracy confirmed] | [3 business days] |
| 4. Copy Edit | Editor | [SME approved] | [Grammar, style, accessibility checked] | [2 business days] |
| 5. QA | Publisher | [All reviews passed] | [Links work, media loads, quiz functions] | [1 business day] |
| 6. Published | Publisher | [QA passed] | [Live on platform] | [Same day] |
Versioning Rules
- ☐ Define major vs. minor version criteria
- ☐ Specify how updates affect enrolled learners
- ☐ Set rules for concurrent versions (drafts vs. live)
- ☐ Document rollback procedures
| Scenario | Version Change | Impact on Enrolled Learners |
|---|---|---|
| [Typo fix, broken link] | Minor (v1.0 to v1.1) | [Silent update, no notification] |
| [Content restructure, new examples] | Minor (v1.1 to v1.2) | [Notification: "Updated content available"] |
| [New module added, objectives changed] | Major (v1.x to v2.0) | [Learners stay on v1 until they restart or opt in] |
| [Assessment questions changed] | Major | [Existing progress preserved, new enrollees get v2] |
| [Content retired] | Archive | [Learners with progress can still access for 90 days] |
Use product analytics to track how content updates affect completion rates and learner satisfaction.
Publishing Pipeline
- ☐ Define environments (staging, production)
- ☐ Specify pre-publish checks (automated and manual)
- ☐ Document scheduling capabilities (publish at specific date/time)
- ☐ Define the rollback process
| Step | Check | Automated? | Owner |
|---|---|---|---|
| 1. Content validation | [All required fields populated, no broken links] | [Yes] | [System] |
| 2. Media validation | [Videos render, captions present, images load] | [Yes] | [System] |
| 3. Accessibility check | [Alt text present, color contrast, screen reader test] | [Partial] | [QA + system] |
| 4. Quiz validation | [All questions have correct answers, scoring works] | [Yes] | [System] |
| 5. Staging review | [Content appears correctly on staging environment] | [No] | [Publisher] |
| 6. Approval gate | [Publisher confirms go-live] | [No] | [Publisher] |
| 7. Deploy to production | [Content goes live] | [Yes] | [System] |
Content Governance
- ☐ Define content ownership (who is responsible for each course/module)
- ☐ Set review cadence (how often content is audited for accuracy)
- ☐ Define content retirement criteria and process
- ☐ Document the content style guide location and enforcement
| Policy | Rule |
|---|---|
| Ownership | [Every course has a named content owner. Ownership transfers formally.] |
| Review cadence | [All content reviewed for accuracy every 6 months] |
| Retirement | [Content with < 10 active learners and no enrollment in 90 days is flagged for retirement] |
| Style guide | [All content follows the [Brand] Content Style Guide v2.0. Editors enforce on review.] |
| Localization | [English first. Spanish and Portuguese within 30 days of English publish.] |
| Archival | [Retired content archived for 2 years, then deleted] |
Technical Requirements
- ☐ Specify CMS platform (custom build, headless CMS, LMS built-in)
- ☐ Define API requirements for content delivery
- ☐ List integration requirements (video hosting, assessment engine, analytics)
- ☐ Specify search and filtering capabilities
- ☐ Define backup and disaster recovery requirements
| Requirement | Specification |
|---|---|
| Platform | [Custom / Contentful / Strapi / LMS built-in] |
| Content delivery | [REST API / GraphQL / Static generation] |
| Video hosting | [Mux / Cloudflare Stream / Vimeo OTT] |
| Assessment engine | [Built-in / Qualified.io / Custom] |
| Search | [Full-text search across all content types, filter by module/topic/difficulty] |
| Analytics integration | [xAPI / SCORM / Custom events] |
| Backup | [Daily automated backups, 30-day retention, point-in-time recovery] |
Use the RICE Calculator to prioritize technical requirements when you cannot build everything at once.
Open Questions
| # | Question | Owner | Status | Decision |
|---|---|---|---|---|
| 1 | [Unresolved question] | [Name] | Open | |
| 2 | [Unresolved question] | [Name] | Open |
Filled Example: Professional Development Platform
Content Type Inventory
| Content Type | Format | Required Metadata |
|---|---|---|
| Lesson | Markdown | Title, module, objectives, duration, author, difficulty |
| Video | MP4 (1080p, max 12 min) | Title, transcript, captions (EN + ES), speaker, duration |
| Quiz | JSON | Title, module, objectives, 10-15 questions, passing score 75% |
| Lab Exercise | Markdown + Docker sandbox | Title, starter code, solution, hints (3), estimated time |
| Certificate Template | PDF (React-PDF generated) | Course title, learner name, date, credential ID |
Workflow (Simplified)
Author drafts in Notion (3 days) > ID reviews learning alignment (1 day) > SME reviews accuracy (2 days) > Editor polishes (1 day) > QA tests on staging (1 day) > Publisher deploys. Total SLA: 8 business days from outline approval to live.
Key Takeaways
- Define content types and their metadata schemas before building any CMS features
- Map the full authoring workflow with clear roles, SLAs, and approval gates
- Design versioning rules that protect enrolled learners from disruptive content changes
- Set governance policies for ownership, review cadence, and retirement from day one
- Start with an off-the-shelf CMS and migrate to custom only when you outgrow it
About This Template
Created by: Tim Adair
Last Updated: 3/4/2026
Version: 1.0.0
License: Free for personal and commercial use
