Inspiration

There's an overwhelming amount of supplement information online, and almost none of it agrees. Every podcast, article, and influencer pushes a different protocol, and new research lands constantly, sending people flip-flopping between supplements for the same problem - magnesium for sleep one month, something else the next. Supplements are a fifty billion dollar industry built on this kind of guesswork. And even credible research can't settle it for an individual: a study tells you what worked on average across thousands of strangers, not whether your magnesium is helping your sleep. People are drowning in general information, but none of it tells them what's actually working for them. Litmus was built to close that gap.

What it does

Litmus brings your whole supplement routine into one place. You log what you take, look up the evidence behind any ingredient, and get a clear read on which supplements are genuinely moving the goals you care about. When you're starting out, it recommends a sensible set of supplements based on your goals, so you begin with direction instead of a guess.

The core of the app grades your routine against your goals using your own results. It compares the days you took each supplement against the days you didn't, then sorts everything into what's clearly working, what's doing nothing, what may be working against you, and which goals still have nothing supporting them - along with an evidence-backed suggestion to fill the gap. Every grade is backed by a readout you can open and inspect, and when there isn't enough data to draw a conclusion, it says so plainly rather than inventing one.

How I built it

The entire frontend was generated with v0. The app is a Next.js project deployed on Vercel, which serves both the UI and the API through route handlers, so there's no separate backend. Amazon Cognito handles authentication, and Amazon Aurora PostgreSQL (Serverless v2) is the system of record.

Before Litmus is an app, it's a database. I ingested public data from trusted sources - supplement labels and graded ingredient evidence from the NIH, standard health-outcome names from the National Library of Medicine, and citation-ranked research papers from PubMed - so every fact in the app traces back to a named source. Alongside that evidence, Aurora stores each user's stacks, doses, daily check-ins, and goals. The verdict on a routine isn't a quiz result or a model output; it's a SQL query that joins a user's own logs against the evidence and grades each supplement against their goals.

Challenges I ran into

The hardest part was the data, not the app. Public supplement data is large and messy - hundreds of thousands of product labels and millions of ingredient rows - and making it trustworthy meant deduping records, normalizing names, and tracking the provenance of every row so nothing drifted from its source. Getting the personal-effect math right was the other challenge: it has to be honest about confidence, only call a result once there's enough signal on both sides, and never overstate a correlation as proof.

What I learned

That the database really is the product. Once the schema and the data were right, most of what looks like a "feature" became a straightforward query over a well-modeled relational store. I also got much more comfortable with credential-less access patterns between Vercel and AWS.

What's next

Expanding the evidence corpus, sharpening the personal-effect engine as more data accumulates, and bringing the full experience to the iOS app.

Built With

Share this project:

Updates