Deployment & DevOps
Overview
Deployment & DevOps covers the tooling, standards, and processes the Open edX community uses to build, test, and ship software — cookiecutter templates for new services and MFEs, shared webpack/jest build configuration, CI/CD standards, repository health checks, and end-to-end testing.
This is the developer experience layer: what it feels like to create a new Open edX project, maintain it over time, and contribute upstream.
Current State (2026)
• Cookiecutters: `edx-cookiecutters` provides templates for IDAs (Django), MFEs (React), XBlocks, and Django plugins; `npx @openedx/frontend-build` sets up MFE build tooling
• `frontend-build`: Shared webpack, jest, and ESLint configuration for all Open edX MFEs; MFEs depend on it for consistent tooling
• `edx-repo-health`: Automated checks that repositories meet Open edX standards (CI config, license, dependencies, etc.)
• Cypress: `cypress-e2e-tests` provides end-to-end test infrastructure for platform-level integration testing
• CI standard: GitHub Actions used for all openedx org repos; common workflows defined in `.github/` templates
Architecture
• Cookiecutter templates: Python-based project generators; developers run `cookiecutter gh:openedx/edx-cookiecutters` with a template name
• `frontend-build`: NPM package providing shared webpack, jest, Babel, ESLint config; MFEs extend it rather than configuring from scratch
• Repo health: `pytest-repo-health` runs checks as pytest tests; GitHub Actions enforce standards across all repos
• E2E tests: Cypress tests run against a full Tutor-deployed platform; used for regression testing across releases
History
Origin
• Year introduced: ~2014–2015 (cookiecutters first used; build tooling evolved with edX)
• Initial implementation: Shell scripts and manual setup; cookiecutters introduced for consistency as the number of repos grew
• Context: As edX decomposed from a monolith to many services and MFEs, consistent tooling became critical for developer productivity
Key Milestones
`edx-cookiecutters` introduced
`frontend-build` created for MFE tooling consistency
`edx-repo-health` for automated standards checking
Cypress e2e tests established
Open Questions
- ?When were cookiecutter templates introduced and who standardized them?
- ?What drove the creation of `frontend-build` as a shared config package?
- ?What are the most common deviations from the cookiecutter standards in practice?
- ?How does the CI pipeline work for testing MFEs against different Open edX named releases?
- ?What are the biggest friction points in the Open edX developer onboarding experience?