Docs
Introduction

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

Backend APIs

Important resources

Docs and repositories

Design resources

Community

Learning