English · 简体中文
HRT medication tracker for Android with PK projections and lab tracking. On-device, encrypted, no account required.
Featherline logs doses across injection, patch, gel, oral, and sublingual routes; projects estradiol levels from your dose history using a three-compartment pharmacokinetic model; and tracks blood test results with automatic unit conversion across canonical and clinical units. Everything stays in an encrypted local database — no accounts, no telemetry, no network calls. Backups are encrypted and compressed. Available in English and Simplified Chinese.
⚠️ Not medical advice. Featherline is a tracking tool, not a medical device, and using it does not establish a clinician relationship. The pharmacokinetic projection is a rough population-average estimate from your logged doses — it is not a substitute for blood tests or for a clinician's interpretation, and you should not use it to make dosing changes. See docs/safety.md for the full disclaimer.
- Play Store: Link
- F-Droid: Link
- GitHub Releases (signed APK for sideload): releases page
- Or build from source: see docs/building.md
Note: The Play Store or F-Droid version is recommended. The app holds no internet permission, so the GitHub APK cannot check for updates — you will need to monitor the releases page manually for new versions.
- Log doses across injection, patch, gel, oral, and sublingual routes
- Configurable reminder schedules with snooze and exact-alarm handling
- Group medications and apply schedules to grouped doses
- Optional medicine stock tracking with low-stock warnings and schedule-aware "days remaining" estimates
- Estradiol pharmacokinetic projection from your dose history
- Blood test catalog with automatic unit conversion (pg/mL ↔ pmol/L, ng/dL ↔ nmol/L)
- Encrypted, compressed backup format with restore validation
- App lock with biometric unlock
- Home-screen quick-log widget in two sizes, with progress, next-dose, and tap-to-log
- Journal tab to track meaningful dates on a timeline with milestones, plus per-day notes; pin any date to your home screen as an anchor widget or shortcut showing its running day count
- No accounts, no telemetry, no network calls — everything stays on device
- English and Simplified Chinese
- Material 3 with dynamic color
![]() |
![]() |
![]() |
![]() |
| Home | Plan | History | Calibration |
Featherline is a single-module Android app written in Kotlin with Jetpack Compose. Doses, reminders, and lab results live in a SQLCipher-encrypted Room database. The pharmacokinetic engine is a three-compartment model that converts every logged dose into an estradiol contribution over time, then sums contributions across all routes to produce a projected curve. Reminders use AlarmManager with exact-alarm permission handling and snooze support; notifications survive reboots and time changes through a reconciliation layer. The blood test catalog defines analytes with bidirectional unit conversion via a canonical factor table. Backups are encrypted, compressed, and use a versioned format with full restore validation.
The full architecture, data model, and reminder pipeline are documented in docs/architecture.md.
- Replace the pharmacokinetic engine with a more general multi-medication model
- Personal-PK calibration tuned from your own lab results
- Optional encrypted cloud backup (off by default, end-to-end encrypted)
- Additional languages — translation contributions welcomed on Hosted Weblate (see docs/localization.md)
Kotlin, Jetpack Compose with Material 3, Hilt for dependency injection, Room with SQLCipher for encrypted persistence, Coroutines + Flow. See gradle/libs.versions.toml for exact versions.
Prerequisites: JDK 17, a recent Android Studio, and an Android SDK whose API level matches the project's compileSdk. Standard Android Studio import; run ./gradlew assembleDebug or use the IDE.
Detailed instructions, flavors, and CI behavior: see docs/building.md.
Contributions are welcome. Read the Code of Conduct first, then see CONTRIBUTING.md for development workflow, branching conventions, and how to propose changes.
Translation contributions are welcome on Hosted Weblate.
Featherline stores everything on your device in an encrypted database. There are no accounts, no telemetry, and no network calls. See docs/privacy.md for the full data-handling description.
Featherline is released under the GNU General Public License, version 3.0. See LICENSE for the full text. Third-party dependency, asset, and adapted-code notices are listed in docs/third-party-notices.md.
- The Material Symbols icon set.
- The pharmacokinetic projection draws on the math reference from HRT-Recorder-PKcomponent-Test.
- The estradiol undecylate pharmacokinetic parameters come from Transmtf-HRT-Tracker.
- Plot display logic was adapted from Oyama's HRT Tracker.
- The broader trans health community for testing, feedback, and the prior art that makes a tool like this possible.





