PocketMacro is 38,000 lines of code. One developer, one app, built and shipped in a summer. It replaces an 80 dollar a year subscription, and it costs 4.99 once. Those numbers are the whole story, and they are also not the story at all. The story is what the lines were for, and what building it taught me about making indie apps.
I wrote about the build on Medium when it shipped. The headline number was the hook: 38,000 lines versus 80 dollars a year. But the number that matters is not the line count. It is the number of decisions inside those lines, and how many of them were about what not to build.
What we cover
- What PocketMacro actually does, in one sentence
- Why 38,000 lines is not the point, and what is
- The pricing decision: 4.99 once, no subscription
- Privacy as a feature, not a setting
- What I would do differently next time
What PocketMacro actually does
Snap a meal, get macros. That is the whole app. You take a photo of your food, and PocketMacro tells you the calories, protein, carbs, and fat. No account, no subscription, no feed, no social layer. One job, done well.
The simplicity is deliberate. Every feature I considered had to pass one test: does it make the core job better? If it did not, it did not get built. That test is why the app is small enough for one person to build and maintain, and why it feels focused instead of bloated.
Why 38,000 lines is not the point
People hear 38,000 lines and think it means the app is complex. Most of those lines are the boring parts: the camera flow, the results screen, the recipe pages, the settings, the error states, the empty states, the loading states. An app is mostly edge cases with a happy path running through the middle.
The lines are also a record of learning. This was my first iOS app, built in Flutter, and a good share of those lines were written, rewritten, and deleted as I figured out how the pieces fit together. The count is a side effect of finishing, not a goal. If I could have shipped the same app in half the lines, I would have. The lesson is not that big apps need big codebases. The lesson is that a finished app is bigger than it looks from the outside, and that is normal.
The pricing decision
PocketMacro costs 4.99 once. No subscription, no account, no recurring charge. That was a deliberate choice, and it is the one I get asked about most.
The math is simple. The apps it replaces charge around 80 dollars a year. A person who tracks their food for years would pay hundreds of dollars for the same job. I would rather charge once, fairly, and let the app earn its place on the phone without a monthly reminder of its cost.
There is a business trade-off and I am honest about it. A subscription would make more money over time. But a one-time price matches the product: a tool, not a service. You buy a kitchen scale once. PocketMacro is a kitchen scale for your meals.
Privacy as a feature
Photos never leave your phone. That is not a setting buried in a privacy policy. It is the headline on the app's own description, and it is a design decision that shaped the whole build.
Keeping photos on device means there is no server to maintain, no upload to fail on bad wifi, and no question about where your food photos go. It also means the app works the same whether you are at home or off the grid. Privacy is usually framed as a cost. Here it was a simplification. No accounts, no servers, no data to protect, because there is no data leaving the phone.
What I would do differently next time
Two things. First, I would plan the recipe content earlier. PocketMacro now has a growing set of high-protein recipe pages, and each one is a small project: develop the recipe, verify the macros, build the page, make the assets. That content work is a second product hiding inside the first one, and I underestimated how much of it there would be.
Second, I would decide the social and marketing workflow before launch, not after. The app launched, and then I had to figure out how to talk about it. Building the marketing engine alongside the app, instead of after it, would have saved a scramble.
Final thoughts
Indie apps are not about writing a lot of code. They are about deciding what the app is for, building exactly that, and charging for it in a way you can defend. PocketMacro is 38,000 lines, 4.99 once, and one job done well. That is the whole story, and it is enough.
The short version: pick one job, build it properly, charge once, and keep the user's data on their phone. The line count takes care of itself.