Personal medical tracking for trans people
Local-first web app to manage HRT, blood tests, and physical progress
- HRT Tracking — Medications, doses, daily intake, stock management
- Blood Tests — Hormone results with context-aware evolution charts
- Reference Ranges — Visualization of hormone targets (feminizing/masculinizing)
- Physical Progress — Secure photos, measurements, comparative timeline
- Appointments — Annual calendar, reminders, practitioner management
- Practitioner Directory — Contact info, autocomplete, history
- Journal — Mood tracking, side effects, custom tags
- Objectives — BLAHAJ visual progress, pre-configured templates (HRT, surgeries, legal documents)
- 100% Local — Data stored only on your device
- PWA — Installable on mobile/desktop, works offline
- Dark Mode — Dark theme by default, trans flag colors
Your medical data NEVER leaves your device.
- 100% local storage (IndexedDB)
- No account required
- No server, no tracking
- Manual export/import for backups
- Open source and verifiable code
Chrysalide is a Progressive Web App (PWA): a web app that installs like a native app on your device, without going through an app store.
📱 iPhone / iPad (Safari)
- Open the link in Safari (not Chrome, not Firefox)
- Tap the Share icon (square with upward arrow)
- Scroll down and tap "Add to Home Screen"
- Tap "Add"
The app appears on your home screen like a regular app.
📱 Android (Chrome)
- Open the link in Chrome
- Tap the menu ⋮ (three dots in top right)
- Tap "Install app" or "Add to Home screen"
- Confirm installation
The app appears in your app drawer.
💻 Computer (Chrome / Edge)
- Open the link in Chrome or Edge
- Click the install icon in the address bar (icon with + or screen)
- Click "Install"
The app opens in its own window, like software.
🦊 Firefox (Desktop)
Firefox doesn't natively support PWA installation. You can:
- Use the app directly in browser (works great)
- Create a shortcut: Menu → More tools → Create shortcut
A Progressive Web App combines the best of web and native apps:
- ✅ No store — Direct installation from browser
- ✅ Offline — Works without internet connection
- ✅ Lightweight — No heavy download
- ✅ Auto-update — Always latest version
- ✅ Privacy — Your data stays on your device
git clone https://github.com/kushiemoon-dev/chrysalide.git
cd chrysalide
pnpm install
pnpm run dev| Component | Technology |
|---|---|
| Framework | Next.js 16 (App Router) |
| UI | Tailwind CSS v4 + shadcn/ui |
| Database | Dexie.js (IndexedDB) |
| Charts | Recharts |
| Icons | Lucide React |
| Dates | date-fns |
| Validation | Zod + React Hook Form |
src/
├── app/
│ ├── page.tsx # Dashboard
│ ├── medications/ # Medications module
│ ├── bloodtests/ # Blood tests
│ ├── progress/ # Physical progress
│ ├── appointments/ # Appointments + annual calendar
│ ├── practitioners/ # Practitioner directory
│ ├── journal/ # Personal journal
│ ├── objectives/ # Transition objectives
│ └── settings/ # Settings
├── components/
│ ├── brand/ # Logo, trans branding
│ ├── layout/ # Header, navigation
│ ├── appointments/ # Calendar, practitioner input
│ ├── objectives/ # BLAHAJ progress, cards
│ └── ui/ # shadcn components
└── lib/
├── db.ts # Dexie configuration
├── types.ts # TypeScript types
└── constants.ts # Constants + objective templates
"Soft & Cozy" theme with trans flag colors:
| Color | Hex | Usage |
|---|---|---|
| Blue | #5BCEFA |
Accents, links |
| Pink | #F5A9B8 |
Secondary accents |
| White | #FFFFFF |
Text, contrasts |
MIT License — see LICENSE
