The copilot, in your pocket
The same agent that answers on the web, reached from the phone. The question leaves the server pseudonymised and the numbers in the cards come from the query, never from the model.



The Deentz clinic ERP on the phone: the numbers, the agenda, the patients and the copilot, for an owner who is not at the front desk. React Native with Expo, over the same GraphQL API as the web app.
It is the compact version, not a port. The home answers the four questions an owner asks first: how much came in, how many patients, what went out, what is running low. The copilot is the same agent loop as the web, so a question typed at the school gate gets the same answer, with the same privacy rules, as one typed in the clinic.
Figures render from the server's ledger, clinic time is kept as the clinic keeps it, and health screening states are never collapsed into a false 'no alerts'. Tokens sit in the Keychain and Keystore behind biometric unlock. In closed beta alongside the web app.
The agent runs on an open-weight model, Qwen3-235B, served through OpenRouter. The accuracy is scored by the author across the copilot task set, not yet by an automated suite.
The finance module is its own ledger rather than an accounting integration: appointment billing lines and the expense book merge in get-finance-ledger.ts, and the filter plus both totals run before the page slice, so the sums cover every row the filters keep and not just the page on screen.
Orchestrated multiple CI workflows triggered on PRs across frontend and backend repositories to enforce strict continuous integration quality gates. The automated test matrix validates static typing, architecture, unit/integration, and database migrations, while inherently performing differential coverage regression against main, detecting stateful schema drift, and running headless Playwright E2E assertions for critical user flows.
Self-reported by the clinic owner, measured against the manual routine it replaced.
The same agent that answers on the web, reached from the phone. The question leaves the server pseudonymised and the numbers in the cards come from the query, never from the model.



Revenue, appointments, expenses and stock for the day, week or month, each against the previous period. The calendar reads in clinic time, never in the phone's.





The record opens on what changes the visit today: allergies, medication, open balance. Not asked and none known are different answers, and the screen never blurs them.







Gross, expenses and net for the period, the revenue curve, the share per service, the ledger and the stock alerts. One query layer serves web and mobile, so the figures match.






Roles, schedules, consent records and the account. Session tokens live in the Keychain and Keystore, and the app can lock behind Face ID.







