// the find
vintasoftware/medplum-chat-app
FHIR-native live chat mobile app built with React Native and Medplum
A React Native/Expo reference app showing how to build a FHIR-native patient-provider chat using Medplum as the backend. It maps chat threads to FHIR Communication resources and uses Medplum's WebSocket subscriptions for real-time updates. Aimed at healthcare app developers who need a starting point for telehealth messaging without building FHIR plumbing from scratch.
- The FHIR data modeling is done correctly — threads as Communication resources with proper part-of relationships, message status tracked directly on the FHIR resource. Not a bolted-on abstraction.
- Headless hooks pattern in /hooks is genuinely reusable. Someone can lift useSingleThread or useThreads into a different UI without touching the chat logic.
- Push notification architecture via a Medplum Bot is well-documented with step-by-step instructions, which is usually where healthcare app tutorials fall apart.
- CI is set up, Husky pre-commit hooks configured, ESLint/Prettier present — the project hygiene is above average for a demo repo.
- Test coverage is thin: only 3 test files, mostly for hooks and one utility. The ChatContext — which holds the most complex real-time logic — has zero tests.
- The setup process is genuinely painful. You need two Medplum client apps, manual redirect URI matching by IP address, a bot deployed via copy-paste in the UI, and a Subscription created by hand. There's no seed script or IaC to automate any of this.
- Access policy configuration for production is punted to a one-liner in the README with no example policy JSON. Anyone shipping this to real patients will get stuck here.
- Video playback silently fails on web with no graceful degradation — the known issues section acknowledges it but the app apparently just breaks rather than showing a fallback.