DocsDocs
GitHubGitHub (opens in a new tab)DiscordDiscord (opens in a new tab)
  • Introduction
  • Prerequisite knowledge
  • Core concepts
    • Overview
    • Setup
    • Contributing
    • Development
    • Unit and integration testing
    • End-to-end testing
    • Releasing modules
    • Loading modules
    • Using Webpack
  • Extension system
  • Configuration system
    • Overview
    • Launching workspaces
    • Creating workspaces
    • Siderail and bottom nav
    • Implementation: Under the hood
  • Feature flags
    • Build forms using the O3 form builder
    • Convert HTML form entry forms to O3
    • Overview
    • Set up an instance of O3
    • Create a frontend module
    • Create a distribution
    • Add a left panel to O3
    • Add links to the home page left panel
    • Retrieve and post data
    • Share state between frontend modules
    • Set up translations in a frontend module
    • Format dates
    • Store values
    • Validate forms using React Hook Form and Zod
    • Overview
    • Configure branding
    • Configure the Patient Chart
    • Configure Patient Management
    • Configure Service Queues
    • Configure Ward Management
    • Configure translations
    • Introduction
    • Project structure
    • Code organization
    • Naming
    • Components
    • Type annotations
    • State management
    • Data fetching
    • Loading states
    • Mutations and side effects
    • Event handlers
    • Forms
    • Workspaces
    • Modals
    • Styling
    • Search inputs
    • Internationalization
    • Error handling
    • Testing
    • Performance
  • Key repositories
  • App shell
  • Framework API reference
  • Modal system
  • Breadcrumbs
  • Migrate to Core v6
  • Migrate to Core v5
  • Changelog
Question? Give us feedback → (opens in a new tab)Edit this page on GitHub →
Docs
Recipes
Overview

Overview

Practical, task-focused guides for building and extending O3.

  • Set up an instance of O3
  • Create a frontend module
  • Create a distribution
  • Add a left panel to O3
  • Add links to the home page left panel
  • Retrieve and post data
  • Share state between frontend modules
  • Set up translations in a frontend module
  • Format dates
  • Store values
  • Validate forms using React Hook Form and Zod
Convert HTML form entry forms to O3Set up an instance of O3

© 2026 OpenMRS