Skip to content

Course Creation

Overview

Course Creation covers the tools instructional designers and content authors use to build and publish individual courses — the course outline editor, unit editing interface, course settings, and the OLX-based content format. Studio is Open edX's course authoring environment and one of its most significant differentiators from competing LMS platforms.

The modern Studio experience is delivered by frontend-app-authoring (a React MFE), which has been progressively replacing the Django-rendered Studio since approximately 2022.

Split from v1.0. This file was created in v1.1 by splitting Course & Pathway Creation (archived). Pathway-specific authoring is now covered in Pathway Creation.

Current State (2026)

  • Course outline: frontend-app-authoring MFE provides the course outline with drag-and-drop section/subsection/unit organization
  • Unit editor: The unit editing page in frontend-app-authoring replaces the legacy Studio unit editor
  • Settings: Course dates, grading policy, and advanced settings migrating to MFE; some still in Django-rendered Studio
  • OLX format: All course content stored as Open Learning XML (OLX) — XML + HTML + assets in a tarball
  • Import/Export: Courses exportable as .tar.gz OLX archives; importable between Open edX instances
  • XBlock content: All in-course content blocks — text, video, problems — are authored as XBlocks in the unit editor

Architecture

  • Frontend: frontend-app-authoring communicates with Studio (CMS) backend APIs in edx-platform
  • Backend: Studio (cms/ in edx-platform) is a Django application with its own database; shares MongoDB with LMS for course structure
  • Content storage: Course structure stored in MongoDB; assets stored in GridFS or S3
  • Publishing: Authoring changes published from Studio to LMS via a publish signal; not real-time
  • OLX: The canonical on-disk format; import/export uses tarball extraction/compression

Relevant Repositories

RepositoryRole in This FeatureActivity LevelNotes
openedx/frontend-app-authoringStudio MFE: outline, units, settingsHighPrimary authoring frontend
openedx/openedx-platformStudio/CMS backend: course structure, OLX, assetsHighcms/ directory
openedx/olxcleanerOLX validation and error checking toolLowDev/migration tool
openedx/cc2olxCommon Cartridge to OLX converterLowContent migration tool
openedx/modular-learningExperimental modular course structureLowResearch/prototype

Recent Changes

  • frontend-app-authoring progressively replacing Django Studio pages
  • Unit editor migration from legacy to MFE

History

Origin

  • Year introduced: 2012 (Studio launched alongside the LMS as edX's course creation tool)
  • Initial implementation: Django-rendered web application (separate from LMS); authors accessed at studio. subdomain
  • Context: Studio was a key innovation — a browser-based course editor for non-technical instructors; replaced earlier command-line or file-based course authoring

Key Milestones

YearMilestoneTeams / People Involved
2012Studio (CMS) launched as Django web appUnknown
2013Open sourced along with LMSUnknown
~2022frontend-app-authoring MFE development beginsUnknown
~2023–2025Progressive Studio → MFE migration page by pageUnknown

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

  • [ ] Who designed Studio and what were the original authoring principles?
  • [ ] Why was Studio built as a separate Django app rather than integrated into the LMS?
  • [ ] What was the original course outline UX and how has it evolved?
  • [ ] When did the decision to migrate Studio to an MFE happen and who drove it?
  • [ ] What are the biggest usability challenges that instructors report with course creation?
  • [ ] How does the OLX format constrain or enable course authoring compared to other platforms?

Schema Education — Internal Research