Applied AI

ChatHRT

Hormone therapy management that never phones home

Role
Design and engineering
Year
2026
Status
Live on web, mobile build verified
2
platforms from one domain core
34
domain tests
0
accounts required
Local
default data residency

The problem

Trans health apps ask people to hand their medical transition to a server and their identity to a login form. The safety requirements here are not a feature list. They decide the architecture.

What we built

Decisions That Mattered

1.

Put the domain in a package

Dose schedules, site rotation, refill windows, and appointment logic live in a shared core with its own tests, and both the web app and the mobile app consume it. Neither platform owns the rules.

2.

Unify two Tailwind versions

The web target runs Tailwind v4 and the mobile target runs Tailwind v3 through NativeWind. A design-token pipeline compiles one source of truth into both, so the brand cannot drift between platforms.

3.

Default to local

Storage is local-first with optional device-keyed sync and no account. The application works fully with no database and no API key, degrading to a demo responder instead of an error page.

4.

Design for the exit

An app-wide quick exit leaves for a neutral site from any screen. Onboarding asks for a chosen name and pronouns, treats every field as optional, and the AI carries both into its system prompt alongside a medical-advice guardrail.

5.

Cite the sources

Chat responses retrieve from a curated corpus of real organizations and render inline numbered citations as source cards, so a claim about hormone therapy always shows where it came from.

What this demonstrates

Universal applications where safety, privacy, and citation are architectural constraints, not settings a user has to find.

Next.js 16ExpoNativeWindStyle DictionaryOKLCH tokensGroqPrisma

Next project

SPECTER

All work

Get in touch

Start a Project

Tell us what you are trying to build and what is in the way. We will tell you early if we are not the right fit.

starrybodies@gmail.com