logo falcao Dev
.../projects

Deentz Mobile

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.

Project name
Deentz

Frontend

  • React Native
  • Expo
  • Expo Router
  • Apollo Client
  • Reanimated
  • Zustand
  • React Native Skia

Backend

  • GraphQL
  • Firebase Auth

Tooling

  • TypeScript
  • Maestro
  • GitHub Actions CI/CD
97%
Copilot task accuracy on open-weight models

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.

2 into 1
Money streams in a purpose-built ledger

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.

+ 1200 tests
Tests on every pull request

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.

4 h/day
Admin time removed

Self-reported by the clinic owner, measured against the manual routine it replaced.

The walkthrough

5 sections
01 / 05

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.

Deentz mobile copilot start screen with suggested questions about stock, sterilisation and the chair planDeentz mobile copilot with a question typed in the inputDeentz mobile copilot conversation history
02 / 05

The day, from anywhere

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.

Deentz mobile home with revenue, appointments, expenses and stock for the week, and the busiest day chartDeentz mobile calendar for one day with appointments by hour and their statusDeentz mobile calendar in the seven-day viewDeentz mobile appointment detail with the patient, the procedures and the paymentDeentz mobile notification centre
03 / 05

Patients and treatments

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.

Deentz mobile patient list with searchDeentz mobile patient record with health alerts, treatments and open balanceDeentz mobile patient record, scrolled to appointments and paymentsDeentz mobile new patient formDeentz mobile treatment detail with the teeth in the plan and the quoteDeentz mobile service catalogueDeentz mobile revenue by service breakdown
04 / 05

Money and stock

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.

Deentz mobile finance screen with gross, expenses and net for the month, the revenue curve and revenue by serviceDeentz mobile ledger with payments and expenses in one listDeentz mobile expenses screenDeentz mobile stock screen with low and out-of-stock itemsDeentz mobile subscription plansDeentz mobile current subscription
05 / 05

Team, clinic and account

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

Deentz mobile team listDeentz mobile team member detail with role and scheduleDeentz mobile clinic settingsDeentz mobile legal screen with LGPD consent recordsDeentz mobile privacy settingsDeentz mobile security settings with biometric unlockDeentz mobile profile settingsDeentz mobile settings menu
Go back to projects