DEV Community

Cover image for Launched: Pain Tracker v1.0.0 (Open Source, Local-First, Trauma-Informed)
CrisisCore-Systems
CrisisCore-Systems

Posted on • Originally published at paintracker.ca

Launched: Pain Tracker v1.0.0 (Open Source, Local-First, Trauma-Informed)

For the last two months, I've been documenting the engineering challenges of building a security-first, offline-first health app in public.

You might have read my deep dives on:

Today, the theory becomes reality.

Pain Tracker v1.0.0 is officially live.

What We Shipped

This isn't just a demo. It is a production-ready PWA designed for people with chronic pain who need clinical-grade data without sacrificing their privacy.

1. The "Black Box" Architecture

As discussed in "No Backend, No Excuses", we committed to a Zero-Knowledge architecture.

  • Class A Data (Health): Encrypted AES-GCM. Never leaves the device.
  • Analytics: Minimal, privacy-preserving, and opt-in.
  • Sync: None by default. You own the JSON.

2. The "Panic Mode" UI

We implemented the Trauma-Informed Design principles from the build logs.
When you log a pain level of 9 or 10, the app detects a high-cognitive-load state and:

  • Simplifies the UI instantly.
  • Removes non-essential navigation.
  • Increases contrast and button size.

3. WorkSafeBC Compliance

The goal was utility, not just philosophy. The app now generates PDF reports specifically formatted for WorkSafeBC and insurance claims, bridging the gap between patient experience and clinical requirements.

The Tech Stack (Final v1.0)

For those following the build, here is where we landed for the stable release:

  • Core: React 18 + TypeScript + Vite
  • State: Zustand + Immer (Immutable state is crucial for our undo/redo safety)
  • Storage: IndexedDB (via idb)
  • Validation: Zod (Runtime schema validation for all imports)
  • Testing: Vitest + Playwright (E2E testing for offline flows)

What's Next?

This release (v1.0.1) includes the new "Ritual" Splash Screen—a brutalist glitch effect that signals the transition into a secure, private environment.

We are now moving into Phase 2:

  1. Local-only Machine Learning for pattern recognition.
  2. Deeper EMR integrations.

Try It Out

If you've been following the CrisisCore Build Log, thank you. Your feedback on encryption protocols and accessibility standards shaped this release.

Go break it (and file an issue):

👉 paintracker.ca

Top comments (0)