Skip to content

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

Relevant Repositories

RepositoryRole in This FeatureActivity LevelNotes
openedx/edx-cookiecuttersProject templates for IDAs, MFEs, XBlocks, pluginsMediumOnboarding tool
openedx/frontend-buildShared webpack/jest/ESLint for MFEsHighBuild foundation
openedx/frontend-template-applicationStarter MFE templateMediumMFE scaffold
openedx/edx-repo-healthRepository standards checkerMediumCI enforcement
openedx/cypress-e2e-testsEnd-to-end test suiteMediumPlatform regression
openedx/code-annotationsPII and toggle annotation toolingLowCompliance tooling

Recent Changes

  • frontend-build ongoing updates for React 19 / webpack modernization
  • Cypress test suite expanding coverage

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

YearMilestoneTeams / People Involved
~2015edx-cookiecutters introducedUnknown
~2018–2019frontend-build created for MFE tooling consistencyUnknown
~2020edx-repo-health for automated standards checkingUnknown
~2022Cypress e2e tests establishedUnknown

People Who Shaped This Area

  • Engineering: Unknown — open question for interview
  • Product: N/A (infrastructure/tooling)
  • Design: N/A

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?

Schema Education — Internal Research