Archived in v1.1. This feature area was split into Course Creation and Pathway Creation.
Course & Pathway Creation
Overview
Course & Pathway Creation covers the tools content authors use to build and publish courses and programs — the course outline editor, unit editing interface, settings pages, and program authoring tools. Studio is Open edX's 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.
Current State (2026)
- Course outline:
frontend-app-authoringMFE provides the course outline, with drag-and-drop section/subsection/unit organization - Unit editor: The unit editing page in
frontend-app-authoringreplaces 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.gzOLX archives; importable between Open edX instances - Programs: Program authoring (sequences of courses) done via Django admin or the
course-discoveryservice admin
Architecture
- Frontend:
frontend-app-authoringcommunicates with Studio (CMS) backend APIs inedx-platform - Backend: Studio (
cms/inedx-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
| Repository | Role in This Feature | Activity Level | Notes |
|---|---|---|---|
| openedx/frontend-app-authoring | Studio MFE: outline, units, settings | High | Primary authoring frontend |
| openedx/openedx-platform | Studio/CMS backend: course structure, OLX, assets | High | cms/ directory |
| openedx/olxcleaner | OLX validation and error checking tool | Low | Dev/migration tool |
| openedx/cc2olx | Common Cartridge to OLX converter | Low | Content migration tool |
| openedx/modular-learning | Experimental modular course structure | Low | Research/prototype |
Recent Changes
frontend-app-authoringprogressively 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
| Year | Milestone | Teams / People Involved |
|---|---|---|
| 2012 | Studio (CMS) launched as Django web app | Unknown |
| 2013 | Open sourced along with LMS | Unknown |
| ~2022 | frontend-app-authoring MFE development begins | Unknown |
| ~2023–2025 | Progressive Studio → MFE migration page by page | Unknown |
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?