growthbuild in public

How Lima reached 25,000 users without a marketing budget

· 7 min read

The Lima numbers come up in every conversation: 25,000 active users, zero marketing budget, no PR agency, no influencer deals, no App Store featuring. People ask how. The honest answer is build in public, but it started somewhere unexpected.

It started as a tool I actually needed

I built Lima because I kept downloading four different apps to track habits, money, calendar and focus sessions, and every week I forgot to open at least one. The mental overhead of switching between them was as annoying as the problems they were supposed to solve.

That origin matters for the distribution story. When you build something because you need it, you know exactly which communities have the same problem. I wasn’t guessing at a market. I was already in it.

Where it actually started: the Spring Boot community

The first real traction didn’t come from a productivity forum. It came from the Spring Boot community. Lima’s backend runs on Spring Boot, and I was posting technical updates there: how I structured the API, what I was caching and why, specific problems I ran into and how I solved them. Standard technical sharing.

People in that community started helping. They’d answer questions, suggest approaches, and then ask: what is this app you’re building? That’s when I realized the build in public thing wasn’t just about showing your product. It was about building in front of people who were curious about the problem. The community formed around the technical process, not around the launch.

From there I started posting in productivity communities too. Not announcements, actual builds. “I just shipped the 84-day habit grid. Here’s what it looks like, here’s what broke in the first version, here’s what I’d change.” Screenshots of real data. Real numbers. The things that normally stay internal.

Reddit’s culture around this is different from Twitter or LinkedIn. People on r/productivity or r/androidapps are actively looking for solutions to real problems. If what you built actually solves it, they’ll say so, download it, and come back. If it doesn’t, they’ll say that too, and that feedback is more useful than any focus group.

The WhatsApp bot changed the trajectory

The single biggest spike came from a post about Lima’s WhatsApp bot. You send a voice note or a photo of your bank statement. Lima reads it and logs the transactions automatically. No manual entry.

The reaction was immediate. Not because it was technically impressive (it’s not particularly hard), but because it solved a very specific, very annoying thing that people could immediately picture. “I hate typing every expense manually. This would fix exactly that.” Posts like that travel. They get saved, shared in group chats, linked in productivity guides.

I didn’t have to be clever about distribution. I just had to find the communities where people already complained about the exact problem and show them something that worked.

What didn’t work

Posting on Hacker News: the audience is engineers who already have their productivity setup locked in and aren’t looking for a new app. It’s a great community but not the right audience for a personal organization app.

Polished launch announcements: I tried a more structured launch post once and it underperformed. The casual “here’s what I built this week” posts consistently did better. Authenticity is not a marketing tactic. It’s the only thing that works in communities that have seen a thousand product launches.

Asking for upvotes or engagement: the communities have good spam radar. The moment a post feels like a promotion, people ignore it.

The 25k number

The 25,000 users are people who actively open Lima. Not total installs, not accounts created, not downloads. Active users. That number grew slowly and then faster as word of mouth compounded. Some months were flat. Some were double the previous one. There was no launch spike that set the baseline. Just consistent product improvement and consistent showing of work.

Build in public works if you’re actually building and actually in public. Posting consistently about what changed, what broke, what users asked for, what you’re thinking about next. The community that forms around that is small but real, and real users tell other real users.

The Lima story is boring in the best way: build something you need, find people with the same problem, show your work, repeat. No paid acquisition involved.


The Flutter codebase that powers Lima across iOS, Android and web, and why we chose it over React Native. Also: the ETag caching bug and the WhatsApp ninth-digit bug we found building this.