A free, fully customizable Practice Information Management System
and the open platform that grows around it.
Built for the clinics that carry animal health, the families who depend on them,
and the developers extending both.
YosemiteCrew.mp4
| Metric | Backend | Platform (Frontend) | Mobile App | Desktop |
|---|---|---|---|---|
| Quality Gate | ||||
| Coverage | ||||
| Bugs | ||||
| Code Smells | ||||
| Reliability |
- Overview
- Who It Is For
- Architecture
- Inside the Monorepo
- Installation
- Our Tech Stack
- Engineering Quality
- Documentation
- Dev Environment Access
- Join Our Growing Community
- License
Yosemite Crew is an open-source operating system for the animal health industry. At its core is a free, fully customizable Practice Information Management System (PIMS) that unifies pet care operations, bringing together pet owners, pet businesses, and developers into one ecosystem.
Most veterinary software asks a clinic to bend around the vendor: rigid subscriptions, closed data, and a roadmap someone else owns. Yosemite Crew inverts that. The clinical record is yours, the schema is open, the integration surface speaks FHIR R4, and the entire platform is yours to fork, extend, or run yourself.
It is one monorepo spanning four products: a web PIMS for clinics, a mobile app for pet parents, a desktop shell, and a developer platform.
|
Ultimate convenience. A mobile app to schedule appointments, hold virtual consultations, manage health records, and reach a library of care resources. Enhanced accessibility. Whether in remote locations or facing mobility challenges, quality veterinary care stays reachable anytime, anywhere. |
Streamlined efficiency. Scheduling and communication that cut administrative load instead of adding to it. Customization & integration. Open source means no rigid subscription lock-in, and a system you can shape to how your practice actually works. Security & compliance. Comprehensive data management, reporting, and adherence to regulatory standards. Scalability & support. Built to grow with your practice, backed by regular updates and a community of contributors. |
Empowering innovation. A developer portal at the heart of an ecosystem that mirrors the versatility of the WordPress plugin model. Flexible environment. Public APIs, documentation, and ready-to-use templates for building and managing plugins that extend the core. Community-driven growth. A collaborative environment where contributors keep expanding what veterinary care software can do. |
Four clients, one API, one source of truth. Every product in the repo speaks to the same Express service and the same Postgres schema.
%%{init: {"theme":"base","themeVariables":{"fontFamily":"ui-sans-serif, -apple-system, Segoe UI, Helvetica, Arial, sans-serif","primaryColor":"#ffffff","primaryTextColor":"#1d1c1b","primaryBorderColor":"#bfbfbe","lineColor":"#a09f9f","clusterBkg":"#f7f7f7","clusterBorder":"#eaeaea","fontSize":"14px"}}}%%
flowchart LR
subgraph clients ["Clients"]
WEB["Web PIMS<br/><sub>Next.js 15 · React 19</sub>"]
MOB["Mobile App<br/><sub>React Native 0.81</sub>"]
DESK["Desktop Shell<br/><sub>Electron</sub>"]
EXT["Your Integration<br/><sub>FHIR R4 · public APIs</sub>"]
end
subgraph platform ["Platform"]
API["Express API<br/><sub>REST + FHIR routers</sub>"]
RT["Socket.IO<br/><sub>realtime</sub>"]
JOBS["BullMQ Workers<br/><sub>reminders · labs · schedules</sub>"]
end
subgraph data ["Data & Services"]
PG[("Supabase Postgres<br/><sub>Prisma · schema per tenant</sub>")]
REDIS[("Redis<br/><sub>queue backing store</sub>")]
AUTH["SuperTokens<br/><sub>session boundary</sub>"]
AWS["AWS<br/><sub>S3 · SES · Pinpoint</sub>"]
LABS["Lab & Partner<br/><sub>IDEXX · Merck</sub>"]
end
WEB --> API
MOB --> API
DESK --> API
EXT --> API
API <--> RT
API --> JOBS
API --> PG
API --> AUTH
API --> AWS
JOBS --> REDIS
JOBS --> PG
JOBS --> LABS
classDef accent fill:#f2f8ff,stroke:#247aed,stroke-width:1.5px,color:#1d1c1b
classDef store fill:#f7f7f7,stroke:#a09f9f,color:#1d1c1b
class API,EXT accent
class PG,REDIS store
Postgres is the source of truth. Prisma Migrate owns the schema, and tenant data is isolated by Postgres schema rather than by a filter column, so one clinic's records cannot leak into another's through a forgotten WHERE. See ADR 0001.
FHIR R4 is a first-class surface, not an export button. Clinical artifacts, tasks, templates, and rendered documents have FHIR-shaped routes, so an integrator can talk to Yosemite Crew in a vocabulary the wider health ecosystem already speaks.
A pnpm + Turborepo workspace. Apps ship; packages are the shared spine underneath them.
| App | What it is |
|---|---|
apps/frontend |
The web PIMS. Next.js 15, React 19, Zustand, Storybook, Playwright end-to-end and accessibility suites. |
apps/backend |
The API. Express 4 on TypeScript, Prisma, Socket.IO realtime, BullMQ workers, Stripe. |
apps/mobileAppYC |
The pet parent app. React Native 0.81, Redux, i18next localization, Detox end-to-end. |
apps/desktop |
The desktop shell. Electron, packaged by electron-builder, notarized, with auto-update. |
apps/dev-docs |
The developer documentation site. Docusaurus. |
| Package | What it holds |
|---|---|
@yosemite-crew/database |
The Prisma schema and migrations. The schema source of truth. |
@yosemite-crew/auth |
Provider-independent session boundary built on SuperTokens. |
@yosemite-crew/types |
Shared domain and form types across web, mobile, and API. |
@yosemite-crew/fhir |
FHIR R4 helpers. |
@yosemite-crew/fhirtypes |
FHIR R4 resource type definitions. |
@yosemite-crew/design-tokens |
Semantic design tokens shared by web and mobile. Intent, not platform detail. |
@yosemite-crew/lib |
Cross-workspace utilities. |
- Git
- Node.js 20 (see
.nvmrc) - pnpm 8
-
Create a fork from Yosemite-Crew repository as it is described in GitHub docs. You can skip this step if you want to just run the project and not contribute.
-
Clone your forked repository to your local machine using
git clone. Clone dev branch if want to use the bleeding edge version.git clone https://github.com/yourusername/Yosemite-Crew.git git clone -b dev https://github.com/yourusername/Yosemite-Crew.git cd Yosemite-Crew -
Install the project dependencies.
pnpm install
-
Git hooks are installed automatically during
pnpm install(Husky + commitlint + lint-staged + secret scanning). -
Configure environment variables for the API and web app. Each ships an example file to copy and fill in:
cp apps/backend/.env.example apps/backend/.env cp apps/frontend/.env.example apps/frontend/.env
The backend needs a reachable PostgreSQL database on boot and Redis for the background job queues.
apps/backend/README.mddocuments the startup requirements. -
Run the website and api.
pnpm run dev --filter frontend -- Run the web app pnpm run dev --filter backend -- Run the backend API pnpm run dev -- To run website & api -
Run the Yosemite Crew mobile app. The mobile app does not load
.envfiles. It needs its own configuration (avariables.local.tsand native Firebase and credential files copied fromapps/mobileAppYC/config-templates/). Follow the setup inapps/mobileAppYC/README.mdbefore running.// In apps/mobileAppYC directory pnpm run start -- Start the metro server for mobile development pnpm run android -- Run the app on Android pnpm run ios -- Run the app on iOS -
Before opening a pull request, run the same gates CI will run.
pnpm run verify -- lint + type-check + test + build
- TypeScript for type safety
- Turborepo and PNPM Workspaces for a powerful monorepo structure and efficient build system
- Express as a backend framework, with Supabase Postgres and Prisma for data storage and migrations
- BullMQ on Redis for background jobs, and Socket.IO for realtime updates
- Next.js and React for the frontend, with Zustand for state management
- React Native for mobile app development, and Electron for the desktop shell
- FHIR R4 for clinical interoperability
- Stripe for payments
- AWS to ensure reliable and scalable cloud infrastructure
Open source is a promise about how the code is kept, not only about who can read it. Every change entering dev passes the same gates.
| Gate | What it enforces |
|---|---|
| Static analysis | SonarCloud quality gate per app (see the table above), plus CodeQL scanning. |
| Types & lint | Repo-wide type-check and lint, enforced again on pre-push. |
| Tests | Unit and component suites per workspace, with coverage held on touched files. |
| Accessibility | A dedicated accessibility suite and Playwright a11y run on the web app. |
| End-to-end | Playwright on the web app, enforced in CI. A Detox harness is available for the mobile app and runs locally. |
| Visual review | Storybook and Chromatic for the component library. |
| Supply chain | Dependency review, secret scanning, and staged-secret checks on every commit. |
| Governance | Conventional commits and PR title validation. |
- Contributor workflow: CONTRIBUTING.md
- Security reporting: SECURITY.md
- Engineering standards: docs/engineering-standards.md
- Architecture decisions: docs/adr
- AI/automation contribution policy: AGENTS.md
| Where | What you will find |
|---|---|
| Developer docs | The Docusaurus site for platform and API documentation. |
| Engineering wiki | The structured engineering knowledge base. |
| Architecture guides | PIMS architecture, realtime, notifications, analytics. |
| Architecture decisions | The record of why the platform is shaped as it is. |
| DeepWiki | An AI-generated tour of the codebase. |
Request current dev or staging access from the maintainers through a secure channel. Do not publish shared credentials in repository documentation.
- Star our repo and show your support!
- Tik-tok and Instagram for memes
- Follow us on LinkedIn to get all the latest news
- Join our Discord to chat with fellow contributors and users
- Contribute - we love contributions! Whether it's code, docs, or ideas, your help is always welcome!
Yosemite Crew is released under the GNU Affero General Public License v3.0, with a Yosemite Crew licensing exception that permits combining the program with works under CC-BY-3.0 and CC-BY-4.0.
The YOSEMITE CREW name, logo, and branding are not covered by the open source license. Commercial use of the branding requires a separate commercial license. See License.txt for the full terms.
Thanks to everyone who has contributed to Yosemite Crew!
See the growth over time above. Browse everyone who starred or forked the project: