Introduction
O3 is a modular, extensible frontend framework for OpenMRS. It provides shared components, APIs, and templates so teams can build user interfaces faster.
⚠️
This site is no longer the source of truth for O3 developer docs. The maintained docs now live on the OpenMRS Wiki: https://openmrs.atlassian.net/wiki/x/94ABCQ
Recommended learning paths
For developers
Developer path
Core Concepts → Frontend Modules (setup, development, testing, releasing) → Extension System → Workspaces → Framework API Reference
For implementers
Implementer path
Core Concepts → Configuration System → Configure O3 → Feature Flags → Forms in O3 → Recipes
Guiding principles
O3 is guided by the following principles:
- Reuse over rework - shared components, APIs, and templates reduce duplicated effort.
- Modular by design - add, remove, or update modules without rebuilding the system.
- Configuration-first - each frontend module declares its config properties.
- Usability first - optimized for point-of-care workflows and complex clinical records.
- Modern stack - approachable for a global developer community.
- Interoperable - built to work with FHIR and other standards.
What O3 is not
O3 is not a new platform version of OpenMRS. It runs on top of your existing database and uses the same REST and FHIR APIs as the O2 UI. While O3 requires minimum versions of the platform and some backend modules, you do not need to overhaul your backend to use it. To run O3 on an existing installation, follow this recipe.
Technology stack
Frontend
- React (opens in a new tab) - JavaScript library for building user interfaces
- TypeScript (opens in a new tab) - strongly typed superset of JavaScript that adds optional type annotations to JavaScript, which allows for static type checking and better tooling support.
- Carbon design system (opens in a new tab) - an open-source design system from IBM.
- Single SPA (opens in a new tab) - JavaScript router for frontend microservices.
- Webpack (opens in a new tab) - module bundler for JavaScript applications.
Backend APIs
Important resources
Docs and repositories
- Guide for the New and Curious (opens in a new tab)
- O3 docs on the OpenMRS Wiki (source of truth) (opens in a new tab)
- Key repositories
Design resources
- O3 Zeplin workspace (opens in a new tab)
- O3 design docs (opens in a new tab)
- O3 designer onboarding docs (opens in a new tab)
Community
- O3 feature squads dashboard (opens in a new tab)
- O3 weekly squad call - every Thursday at 4PM EAT (opens in a new tab)