← All case studies
Mobile + API · in beta

Robin's Voice

A tablet that speaks for someone who can't, and a phone app that makes sure someone answers.

Role
Product, architecture, API and app
Stack
Expo · React Native · Rails 8 · PostgreSQL · ActionCable
Status
In beta with a family care team
Screens

The real app, with made-up data and placeholder names.

Caregiver Today screen with a week strip, who is on duty, the next medication dose, and water, food and medication progress
Today: who's on duty, the next dose, intake so far.
Notifications feed with tablet signals, a medication reminder, water intake and a voice note
Signals from the tablet arrive in real time.
Care hub listing medications, food and water, equipment, body measurements, communication buttons, photos and a doctor report
Care hub, down to a doctor report.
Communication tablet with large picture buttons for Lunch, I want, I feel, It hurts and Let's go, plus Yes, No and Stop
The tablet: big buttons, yes, no and stop.
01

The problem

Adults with severe non-verbal autism often depend on a rotating circle of people: parents, home-care nurses, educators, respite workers. When they are thirsty, in pain or upset, they may have no reliable way to say so.

The people around them have the opposite problem: what one caregiver noticed this morning rarely reaches whoever takes the next shift, and medications, fluid limits and equipment checks live in notebooks and group chats.

02

What I built

A voice on the tabletA picture-button board with 70+ bilingual presets, personal photos and audio, plus a body map to show where it hurts. Buttons can open sub-choices, like which pizza.
Signals someone answersEvery tap reaches the caregivers' phones in real time, and moves from pending to acknowledged to resolved, so two people don't both run and nobody assumes someone else did.
The care recordMedication schedules and dose logs, fluid intake limits with soft and hard alerts, vitals, mood, and a catalogue of 50+ pieces of medical equipment with service logs.
Handoffs that stickShift notes that must be read and dismissed before the next one is written, and a daily schedule shown on the tablet so the person knows what is coming.
03

How it works

One Expo app runs in two modes on two kinds of device: a caregiver phone and a dedicated tablet for the person being cared for. Both talk to a Rails API that scopes every query to a household.

A need, from tap to answer

TabletExpo · cared-person mode
  • Picture buttons and body map
  • Paired with a 10-minute code
  • Taps queue offline
Rails 8 APIDevise JWT · Pundit · acts_as_tenant
  • Every query scoped to a household
  • Signal state machine
  • Audit trail on clinical data
PostgreSQLEncrypted columns
  • Names, conditions, allergies and medication details encrypted at rest

Getting it to the right people

Rails 8 APIActionCable
  • Household channel
  • Push for phones in pockets
Caregiver phonesExpo · caregiver mode
  • Dashboard with badges
  • Acknowledge, then resolve
  • Logs, notes and settings by permission
04

Key decisions

  1. The household is the tenant, not the userA nurse can work with three families. Each membership carries its own role and per-module permissions, plus temporary grants that expire, such as settings access for an hour.
  2. The person being cared for is not a user accountThe tablet signs in as a paired device with its own revocable token. There is no password for them to manage, and a lost tablet can be cut off without touching anyone else.
  3. One state machine for every signalNeeds and pain events share the same pending, acknowledged and resolved flow, so the dashboard, badges and notifications all behave the same way.
  4. Privacy designed in for Loi 25Quebec's privacy law shaped the data model from day one: the most sensitive fields are encrypted at rest and changes to clinical records keep an audit trail.
  5. Taps never get lostThe tablet queues signals while offline and sends them when the connection returns, so a dropped Wi-Fi signal never swallows a request for help.
05

Where it stands

Today

The family beta and the wider care-circle phase are both complete: the app is in use by a real care team. CI runs the API and mobile test suites on every push.

Next

Productization: store listings on iOS and Android, a consent flow for families beyond the first, and recognition under Quebec disability programs.

Rails 8PostgreSQLActionCableDevise + JWTPunditacts_as_tenantPaperTrailRSpecExpoReact NativeTypeScriptZustandi18n EN/FR

Have something people will use every day?

I'm happy to walk through any of these projects, including the private ones, in more depth.