01 of 13New
Aster
A calm, human companion app that turns a nervous clinic visit into something people actually understand — appointments, results and follow-ups in one quiet place.
- Year
- 2026
- Disciplines
- Product, iOS, Engineering
- Platform
- iOS, Web
- Brief
- Sample client

01Context
Aster came to us with a familiar problem: brilliant care, buried under a patient experience that felt like paperwork. Visits were confusing, results arrived as jargon, and follow-ups slipped through the cracks.
We designed and built a companion app — end to end — that sits between the clinic and the patient. It explains what is happening in plain language, remembers what matters, and gently nudges people toward the next right step.
02Problem
Health is high-stakes and low-tolerance for friction. Every screen had to be legible under stress, trustworthy at a glance, and fast on a three-year-old phone in a waiting room with one bar of signal.
- Explain clinical results without dumbing them down
- Earn trust with restraint, not dark patterns
- Work offline-first for patchy clinic Wi-Fi
- Meet accessibility from day one, not as a retrofit
03Strategy
We ran a two-week discovery with real patients and clinicians, then designed in the open — shipping a clickable prototype in week three and testing it with people who were, days earlier, actual patients.
- Research-led flows, tested with 14 patients
- A quiet design system in Bricolage + system text
- SwiftUI front end, typed API, offline cache
- Weekly builds the clinic could hold and react to
04Design


05Engineering
Native SwiftUI and Jetpack Compose clients share a typed contract with a Node.js tRPC backend; PostgreSQL holds the clinical schedule, Redis handles reminder fan-out, and an offline-first cache keeps the app useful on one bar of clinic Wi-Fi.
- End-to-end types: tRPC contract shared client/server
- Offline queue with conflict-safe replay on reconnect
- HIPAA-style audit trail on every record touch
- Push via APNs/FCM through one dispatch service on AWS ECS
Also considered. Flutter or React Native for a single codebase — we went native for HealthKit depth, accessibility APIs and scroll feel.
06Details
The mechanism underneath, as a working model. Press the buttons.
lab / sync / offline-first action queue
Every tap is a command. Offline, commands queue locally; on reconnect they replay in order, conflict-safe.
Loading the model
Figures inside a model are simulated to show how the mechanism behaves. They are not production measurements.
07What shipped
8 modules are in the build below. Each one works.
- 01Offline mode with an ordered action queue that replays on reconnect
- 02Snooze, refills and reschedule
- 03Plain-language lab results
- 04Care messages
- 05Family profiles
- 06Appointments: book, cancel, history
- 07Records: vitals, documents, allergies, vaccinations
- 08Billing and insurance
08Technology
This is the kind of work we do under Mobile Apps — iOS & Android.
Now use it.
This is Aster, the whole application. Continue as the sample user, change things, reload. Your data stays in this browser and resets from Settings, then Data.

A full application, not a recording. Sign in as the sample user; your data stays in this browser.
