I recently became a parent for the first time, as my wife and I welcomed a beautiful baby boy into our lives in January of this year. As I write this, we are still in the first weeks of adjusting to the maelstrom of caring for a fragile, precious life that demands round-the-clock attention. In other words, we are not getting very much sleep.
As a productivity nerd, I have in recent years been getting more data-driven about my health. I now wear a FitBit, which I use, among other things, to track my sleep, and so of course I was curious to see what the FitBit app could tell me about my new sleep patterns. Unfortunately, I hit a limitation quite quickly: the UX largely expects you to have a single, unbroken sleep session each night. With a newborn that needs feeding every 2-3 hours, and sleep often coming in snatched naps throughout the day, much of what I wanted to see was hidden behind design decisions that catered to the median user rather than the edge case.
But hey, it’s 2026, AI coding agents exist, and FitBit has a public API. So I did what any self-respecting sleep-deprived engineer would do: I vibe coded a custom interface to help me visualise my sleep throughout each day. Then I added features to help answer some questions I had: When should I have a nap? Why did I sometimes feel more tired after a sleep session than before? What was the impact on my health? Was I gradually getting more tired each day?
It took me an hour or two with my coding agent of choice, and I had something. Here’s a view of a typical day:
This immediately told me a few things: during the middle of the night, my lack of sleep plus the impact of my circadian rhythm meant I was dangerously tired until the baby settled enough for me to eventually go to sleep; my afternoon nap was too short to really refresh me enough; I was ending the day more or less as tired as I started it; the disruption to my schedule and sleep patterns would be affecting my hormones and mean I’d gradually feel worse over time.
The app is very basic, but at the moment this is genuinely useful to me, and a few weeks later I am still checking it more frequently than the FitBit app.
“Did I just create a new product?”
Leaving aside whether you’re impressed by this basic view or not, it might be tempting to think that I just vibe coded a cool little product that I could ship to other sleep-deprived dads. While the idea is flattering, it mistakes the tip of the iceberg for the whole thing. A valuable product is much more than simply an interface.
Fundamentally, a FitBit is a wearable health watch, a database of my health data over time, and a whole platform for modelling, understanding, and analysing that. Those are the unique product capabilities of FitBit, and the mobile app and website are just interfaces sat on top of that which expose the value to the user. In generic terms, that looks a bit like this:
The “product” is all of these pieces put together. The mobile app and the web UI both draw from a set of common exposed capabilities, which for simplicity’s sake we’ll group under a common “API” (though of course the reality is likely more nuanced ). As a user, I experience the unique capabilities of the product via one or more interfaces that draw from the services exposed by the platform.
... continue reading