Project Status

560+ tests passing, production-ready core — here’s what works and what needs help.

Test Coverage

Chairside has a comprehensive test suite that validates the core platform across multiple layers:

  • 515 backend tests — Jest + supertest + MongoMemoryServer covering auth, billing, scheduling, clinical workflows, claims processing, and all major API endpoints
  • 45 Foundation tests — Dedicated test suite for the patient portability registry, covering FHIR operations, consent token validation, and cross-instance transfers
  • 81 of 91 E2E tests passing — End-to-end Playwright tests covering patient intake, appointment scheduling, treatment planning, billing, and insurance workflows

All backend and Foundation tests run with in-memory MongoDB via MongoMemoryServer, so no external database is needed for the test suite. CI runs the full suite on every pull request.

Code on screen

Working Features

These features are implemented, tested, and ready for production use:

Patient management Appointment scheduling Treatment planning Clinical charting Perio charting Tooth charts Progress notes CDT procedure codes Ledger & billing Insurance claims (837/835) Payment processing (Stripe) EOB posting Multi-location groups Role-based access control E-signatures Document management Patient portal Online booking Kiosk mode Recall system Referral tracking Lab orders Prescriptions (eRx) Imaging bridge (21 systems) TWAIN scanner support SMS & email notifications Audit logging Vendor platform (SaaS) Subscription & feature gating Patient portability (Foundation) OAuth2 developer API Multi-tenant scoping

Known Gaps

These areas are functional but incomplete, or haven’t been started yet. Each one is a great contribution opportunity:

  • No background job system — Long-running tasks like batch claim submission, report generation, and bulk SMS campaigns run synchronously. Needs a job queue (Bull, BullMQ, or similar).
  • Minimal frontend tests — The React app has very few component tests. The 130+ components need unit and integration test coverage with React Testing Library.
  • Partial FHIR implementation — Foundation supports $everything and $import but doesn’t expose full FHIR resource endpoints. Expanding to R4 compliance would enable broader interoperability.
  • 10 failing E2E tests — 81 of 91 Playwright tests pass. The remaining 10 are mostly timing-related flakes in insurance claim workflows.
  • No automated deployment — Docker files exist but there’s no Terraform, Helm charts, or one-click cloud deployment. Infrastructure-as-code would lower the adoption barrier.
  • Limited reporting — Basic production and collection reports exist, but advanced analytics (provider comparison, insurance aging, trend analysis) haven’t been built.
Working on laptop

How to Contribute

Chairside welcomes contributions of all sizes. Here’s the workflow:

  1. Fork the repository — Create your own fork on GitHub and clone it locally.
  2. Pick an issue or gap — Check the GitHub Issues for tagged items, or pick one of the known gaps listed above.
  3. Create a feature branch — Branch from main with a descriptive name like feat/bull-job-queue or fix/e2e-claim-timing.
  4. Write tests first — Backend contributions should include Jest tests. Frontend contributions should include React Testing Library tests.
  5. Follow conventions — Backend uses snake_case everywhere. API responses use the standard {type, msg, data} format. Frontend components follow the existing Chakra UI patterns.
  6. Open a PR — Describe what you changed, why, and how to test it. Link the related issue if one exists.

The maintainers review PRs weekly and aim to provide feedback within a few days. Small, focused PRs are easier to review and merge than large ones.

Pick a Gap, Open a PR

Every contribution makes dental software better for everyone.

View on GitHub Developer Docs