DEV Community

Cover image for What I Learned Building an peptides tracker app for My Girlfriend's Stack
Alex
Alex

Posted on

What I Learned Building an peptides tracker app for My Girlfriend's Stack

A few months ago my girlfriend went down the peptides rabbit hole. GLP-1 first, then a bunch of others whose names I still struggle to spell. She started looking for a tracker and hated everything she found — too clinical, too spreadsheet-y, not something you'd actually want to open every morning.

So I built one, Her own peptides tracker app.

Here's what I picked up along the way.


The real constraint was emotional, not technical

She didn't just want a functional app. She wanted one that felt good to use. "Premium" was the word she used.

That sounds vague until you look at what the competition was doing: harsh blue-and-white grids, data-dense layouts, the kind of interface that makes you feel like you're managing a clinical trial rather than your own body.

I talked to a friend who's a therapist about color theory before I touched a design file. She walked me through how certain palettes — especially high-contrast, heavily saturated ones — create friction and low-grade stress. The design choices most health apps make work against the habit they're trying to build.

So the first real lesson: the aesthetic IS the product, when your product is a daily habit. If the app feels like a chore to open, people won't open it.


Dose calculation is deceptively hard

The dose calculator was the feature that took the most iteration. You enter your vial size, how much bacteriostatic water you used for reconstitution, and the dose you want — and it spits out exactly how many units to draw.

Simple premise. Painful reality.

Peptides are measured in different units depending on the compound: mcg, mg, IU, mL. Some compounds are dosed in micrograms, others in international units, and the conversion between them isn't universal — it depends on the specific compound. A lot of calculators online get this wrong or oversimplify it.

Getting the unit conversions right, and making the UI simple enough that someone half-awake at 7am could use it without second-guessing themselves, took several rounds of testing. That's a pattern I keep running into: the features that seem small on a spec sheet are often the ones that require the most careful thought.


"No spreadsheet" is a design brief, not just a preference

When she said she didn't want it to feel like a spreadsheet, I initially treated that as a visual note. Rounded corners, softer colors, done.

It's not that simple.

Spreadsheets feel like spreadsheets because of information density and interaction model, not just looks. Every row visible at once. Edit mode that requires navigation. A sense that the interface is waiting for you to input data rather than guiding you through a day.

The Today view I built works differently: you see your schedule for the day, you tap to log a dose, and the card disappears. One action at a time. When you're done, it shows a quote. That last bit was her idea, and it matters more than I expected — it gives the session a sense of completion rather than just... stopping.


Compound library decisions have downstream effects

I built a library of 50+ peptides with categories and search so users don't have to type compound names by hand. This seems like a convenience feature, but it shapes the entire protocol-building experience.

When people add a compound to their stack, they pull it from the library. Each compound gets its own mini-protocol: dose, unit, injectable or oral, schedule (daily, every other day, specific days), and an optional end date for timed cycles.

Having the library meant I had to make decisions about categorization. Which compounds belong together? How do you label things in a way that's useful without implying medical guidance? I ended up including basic descriptions so users can learn about something before adding it — that felt more responsible than just listing names.


The wellness check-in was an afterthought that became the heart of it

The mood/wellbeing log was a late addition. She asked for it and I almost skipped it. It's not core to tracking peptide doses.

It turned into the feature she was most excited about. There's an animated blob that reacts to how you're feeling when you log your check-in. She said it was her favorite thing to build together (she was designing while I was coding).

In retrospect, it makes sense. The whole point of tracking health protocols is to understand how your body is responding over time. Logging doses without logging how you feel is just half the picture. The calendar history view ties both together — you can look back at a week and see not just what you took but how you were doing.


Freemium structure for a niche app is harder than it sounds

The basic scheduling is free. The other features — dose calculator, compound library, wellness check-in, history, shareable progress card — are premium with a free trial.

I went back and forth on what to gate. Too aggressive and the free tier is useless; too generous and there's no reason to upgrade. For a niche health app where users are already spending money on peptides, price sensitivity is lower than usual, but trust is higher. People want to know the app is maintained and will be around.

I haven't fully solved this. It's a real ongoing calibration.


What I'd do differently

I underestimated how much time the App Store review process would take, and how many small decisions (screenshots, descriptions, category selection) would matter for discoverability.

I also built some features in an order driven by what was interesting to build rather than what would be most valuable to users first. The dose calculator should have come before the shareable progress card. Shareable cards are fun; accurate dosing is the actual point.


The peptides tracker app is called Milos and you can find it here.

She uses it every day. That's the metric I care about.

Top comments (0)