← Projects

An app

Weave, the tracker my mom actually used

A weight tracker built so the graph does the nagging — one number a day, no food logs, ever. My mom lost 17 lbs with it, the first thing that ever worked for her.

Weave is the first app I ever shipped, and it started as a column in a notes file. I'd been stuck at 175 lbs for months despite doing everything right, so I used my CS degree to debug my weight loss instead of white-knuckling it — and the fix was so small and so obnoxiously effective that I couldn't leave it in a spreadsheet. The whole idea is one move: stop staring at your weight, stare at the gap between it and a line you drew toward your goal. Weave is that move, with the bookkeeping done for you.

I want to be honest about what this is, because "tracker" oversells it. It's a single screen that opens straight to a number. You weigh in once in the morning, and it tells you one thing — whether you're on or off the line for today. That's the entire app. No food logging, ever. No macros, no barcode scanner, no streak you're terrified to break. Most weight apps fail the same way: they ask you to log every bite to get feedback that arrives a week late and buried in noise anyway. Weave inverts that — you do the trivial thing, and the graph does the nagging.

"Feels like a helpful nerdy friend built it and is rooting for you."— Weave design notes

The one trick the whole app is built around

Your bodyweight is fat plus water plus last night's dinner plus a dozen things that swing independently of how disciplined you were. The fat you might lose in a good day is tiny; the daily noise is several times bigger. So Weave draws a straight line from where you are to where you want to be, slices it into a small target for every day, and shows you the delta — target minus actual. You're no longer reading a trend out of a number that lies to you every morning. You're keeping one number near zero.

The slope is the sneaky part I'm fond of. The graph is reoriented so that just staying near the line reads as going up — your brain sees progress where a flat chart would show nothing. Hit or beat the day's target and you get confetti and a little sound. It's a psych trick, fully on purpose, and I'm not above it.

  • One number a day. Weigh in, see your delta, done.
  • No food logging — the feedback comes from the scale and the line, not from you tallying calories.
  • A daily target instead of a flat goal, so every morning is actionable instead of a coin flip.
  • A noisy-weight flag that catches a water swing and talks you down before you spiral.
  • Confetti when you're on track — a tiny daily win is the whole engine.

The proudest thing, said quietly

My mom lost 17 lbs with Weave. She'd tried for years, and nothing had stuck — this was the first thing that ever did. I lost about 16 on the same straight line. "My mom and I lost weight" is not a clinical trial; it's two people. But it's two people for whom nothing else had worked, and the thing that worked was the boring one number a day. That's the result I'm happiest about, and I'm trying to report it without dressing it up.

It is shipped — actually out there, not a screenshot in a folder. It's on the Play Store, it ran a real test cohort on real phones for two weeks, and it's in TestFlight on iOS. I say that plainly because I have a documented habit of building things and never quite launching them, so the fact that this one has strangers' weigh-ins on real devices genuinely matters to me. Getting there meant hunting down a Pixel-only crash, an iOS swipe-that-exits bug, and a CSV import bug that could lose someone's history — the last mile where most of my projects stall.

What I'm still getting wrong

Here's the honest counterweight, and it's a problem I have not solved. Weave's whole magic is the variable reward — confetti most days. But the second a user falls behind, the confetti vanishes, and they can go a long stretch with no win in sight, which is exactly when people quit. So the app is best when things are going well and worst at the moment you most need it. Just handing out confetti for "better than yesterday" would defeat the point of the reward, so the easy fix is the wrong fix. I'm still wrestling with pause-and-recover flows, trying to model what someone's going through when they slip — sick, stressed, a bad week — without making the app a scold. I don't have the clean answer yet, and it's the sharpest open question in the whole thing.

I'm also still learning what "minimal" even means, which sounds like a humblebrag and isn't. My instinct was to keep cutting until one screen did one job — the same instinct behind Super Zen, where the entire product is hiding the interface so you can think. But minimal isn't just fewer things on screen. It's fewer things you have to do to get what you need, which sometimes means adding — a clearer next step after onboarding, a visible target date, a log of past weights because I like the wall of numbers I've climbed down from. Half my todo list is me learning that "simpler" and "less" are not the same word.

One principle I won't move on, though: none of the genuinely helpful stuff sits behind a paywall.

"I didn't put any of the actually helpful stuff behind a paywall — because that would be evil."— Weave notes

If you charge someone to find out whether they hit their own target, you've built a worse thing. So that's Weave: small on purpose, opinionated on purpose, still half-figured-out — a tiny tool that did one honest job well enough that my mom finally got somewhere, and a long list of things I'm still learning to do better.

Keep going I used my CS degree to debug my weight loss · Super Zen

← all projects