Pain Coach
Overview
A pain and lifestyle tracking platform for post-operative patients, paired with a companion dashboard for clinicians. Patients log their pain levels, activity, and lifestyle factors to better understand and reduce their long-term pain.
Tech Stack
TypeScript
Vue 3
Nuxt
Sass
PostgreSQL
NginX

design
Inspired by the lack of accessible digital tooling in chronic pain management, I set out to build a clinical platform that could support real patients and clinicians in a highly regulated, trust-sensitive environment — one where reliability and data integrity are non-negotiable.
Built as a TypeScript/Vue monorepo using Nuxt and Nitro, Pain Coach combines a responsive patient-facing interface with a robust backend of over 600 API endpoints. The architecture supports multiple independent clinics, each with their own programs, and role-based access control across clinicians, admins, and patients.
development
PostgreSQL underpins the platform's data layer, with an organisation model that isolates each clinic's data from the others. All API boundaries are validated with Zod schemas, and strict role- and permission-based access control ensures clinicians, admins, and patients only ever access data within their own organisation.
The backend runs a pipeline of around 20 scheduled cron jobs handling async image processing, multi-channel clinical form delivery (email, SMS, and push notifications), and subscription billing lifecycle management via Stripe and Xero. Third-party integrations span AWS SES, S3, and SNS, Google Maps, and Cloudflare R2 — with a clinical trial currently running at the University of Technology Sydney.