Skip to content

Flexible Content Libraries

Overview

Flexible Content Libraries allow course authors to create reusable content blocks that can be referenced across multiple courses — useful for shared questions, standardized content, and random problem selection. Libraries decouple content authoring from course structure.

The platform currently has two library implementations:

  • Libraries v1: The original library system built on the Studio monolith
  • Libraries v2: A complete rewrite on the openedx-learning backend, offering better versioning, publishing workflows, and hierarchical organization

Current State (2026)

  • Libraries v1: Still supported; allows creating question banks and referencing blocks in courses via a "Randomized Content Block"
  • Libraries v2: New implementation on openedx-learning; available in frontend-app-authoring; better component model and publishing workflow
  • UI: Both v1 and v2 library management accessible from frontend-app-authoring
  • Randomization: Libraries are the primary mechanism for randomized assessment — courses draw random blocks from a library for each learner

Architecture

  • Libraries v1: Backed by MongoDB (same as course content); managed via Studio CMS in edx-platform
  • Libraries v2: Backed by openedx-learning Django service (relational DB); new content component model with versioning and publishing states
  • Course reference: Courses reference library blocks via "library content block" XBlock (LibraryContentBlock)
  • Publishing: Libraries v2 introduces explicit publish states (draft/published) for each component

Relevant Repositories

RepositoryRole in This FeatureActivity LevelNotes
openedx/frontend-app-authoringLibrary UI (v1 and v2)HighAuthoring interface
openedx/openedx-learningLibraries v2 backendHighNew content model
openedx/openedx-platformLibraries v1, LibraryContentBlock XBlockHighLegacy library system

Recent Changes

  • Libraries v2 development actively ongoing in openedx-learning
  • frontend-app-authoring adding v2 library management UI

History

Origin

  • Year introduced: ~2016 (Libraries v1 introduced as "Content Libraries" feature)
  • Initial implementation: Studio-based library editor storing content in MongoDB, same storage as course content
  • Context: Instructors needed reusable question banks for randomized assessments; libraries solved the copy-paste problem

Key Milestones

YearMilestoneTeams / People Involved
~2016Libraries v1 ("Content Libraries") introducedUnknown
~2021–2022Libraries v2 design and openedx-learning development beginsUnknown
~2023–2025Libraries v2 progressively releasedUnknown

People Who Shaped This Area

  • Engineering: Unknown — open question for interview
  • Product: Unknown — open question for interview
  • Design: Unknown — open question for interview

Open Questions

  • [ ] When were Content Libraries first introduced and what was the product motivation?
  • [ ] What limitations of v1 drove the decision to rewrite as v2?
  • [ ] What is the openedx-learning project's full scope beyond libraries?
  • [ ] How does randomization from libraries work technically at the learner level?
  • [ ] What are the most common use cases for content libraries in production deployments?

Schema Education — Internal Research