Pain Coach

Type

startup

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

Pain Coach app dashboard showing pain tracking metrics

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.