Latest / The Indie Hacker Podcast with Fexingo: Solo Developers, SaaS Side Projects, and Independent Tech / How a Solo Dev Hit 10K MRR With a Desktop App That Replaces Spreadsheets
Transcript
- Lucas: So there's this solo developer named Ryan — goes by ryancog on Twitter — who built a desktop app that replaces spreadsheets for small business accounting. He hit ten thousand dollars in monthly recurring revenue within about fourteen months, and he did it without a cloud subscription. Luna: Wait — no subscription? So how does the recurring revenue work if it's a one-time purchase? Lucas: Great question — it's actually a hybrid. The app itself is a one-time purchase, forty-nine dollars. But Ryan offers optional add-ons: premium templates, multi-user licenses, priority support — those are monthly subscriptions. About sixty percent of his revenue comes from the base purchase, and forty percent from those add-ons. Luna: Interesting. So the core product is cheap enough to get people in the door, but the real money is in the extras. Where did he get the idea? Lucas: He was a freelance web developer, and he kept hearing from his clients — mostly small accountants and bookkeepers — that they hated Excel for invoicing and expense tracking. Too many formulas breaking, too many accidental deletions. But they also didn't want to move to the cloud because they had clients who wouldn't upload sensitive data to a server. Luna: Privacy-first. That's a real pain point. So he built something that runs entirely on the local machine? Lucas: Exactly. He used Electron for the UI and SQLite for the database — all local. No account creation required. You download it, you run it, your data never leaves your computer. That was his main differentiator. He launched on Hacker News with a 'pay what you want' model for the first week. Luna: Pay what you want — that's gutsy for a solo dev. Did it work? Lucas: It worked incredibly well. In the first seven days, he had about twelve hundred downloads. Most people paid zero, but enough paid between five and twenty dollars that he made around four thousand dollars that week. And more importantly, he built a community of early adopters who gave him feedback. Luna: Four grand in a week as a solo dev — that's a solid start. But how did he convert those one-time payers into recurring revenue? Lucas: He added the add-ons about three months after launch. The base app was already useful, but users wanted things like automated bank feed imports and advanced reporting. Those became monthly subscriptions at five and ten dollars respectively. About twenty percent of his users eventually bought at least one add-on. Luna: Twenty percent conversion to an upsell — that seems healthy. But isn't a forty-nine dollar one-time purchase a tough business model long-term? You need a constant stream of new customers just to maintain revenue. Lucas: That's the biggest challenge, and Ryan acknowledges it. He's been open about his churn rate on the add-ons — about eight percent monthly — and the base purchase is obviously a one-off. To keep growing, he needs about fifteen hundred new customers per year just to replace the ones who don't upsell. But he's managed that so far through word of mouth and organic search. Luna: Word of mouth for a desktop accounting app? That's not exactly a viral product category. How does that happen? Lucas: It's niche, but sticky. Accountants who use it tell other accountants. Ryan also created a public roadmap on GitHub and a changelog that users follow. He's very transparent about what he's working on. That builds trust, and people recommend it because they feel like they're part of the development process. Luna: So the developer community aspect is a growth engine. That's smart for a solo dev — you're not spending on ads, you're spending on engagement. Lucas: Exactly. He spends exactly zero dollars on paid acquisition. His total monthly expenses are about three hundred dollars — hosting a simple website, a few API services for bank feed integrations, and his own time. He's been profitable since month two. Luna: Three hundred dollars a month and pulling in ten thousand in MRR — that's a massive margin. But doesn't he worry about competition from something like Wave or FreshBooks, which are free or cheap? Lucas: He does, but he argues that his product serves a different user. Wave is free but cloud-based, and FreshBooks is subscription and cloud. His users specifically want offline, local storage, no subscription for the core. It's a smaller market, but he owns it. He told me he'd rather be the best choice for ten thousand users than the fifth choice for a million. Luna: That's a classic indie hacker philosophy. Let's talk about the tech stack a bit — Electron apps get a bad rap for being bloated. How did he keep it lightweight? Lucas: He was very disciplined. He used vanilla JavaScript with no framework — no React, no Vue — just plain HTML, CSS, and JS. The SQLite database is compiled into the app binary, so there's no separate server process. The entire app is about forty megabytes installed. He also stripped out unnecessary Chrome features from Electron's build. Luna: Forty megs is reasonable for a desktop app these days. Did he have any issues with cross-platform compatibility? Lucas: He launched on macOS and Windows simultaneously. Linux came about six months later after user requests. The biggest headache was file system access — different OS paths and permission models. But he used Electron's built-in APIs and tested on virtual machines. He said the Windows version took twice as long as the Mac version because of all the edge cases. Luna: Classic story. So what's next for Ryan? Does he plan to keep it solo or eventually hire? Lucas: He's staying solo for now. He's been approached by a few micro-VCs but turned them down because he doesn't want the pressure to grow fast. He's aiming for twenty thousand MRR within two years, which he thinks is achievable just by adding more integrations and maybe a mobile companion app. But he's clear that he wants to keep it a lifestyle business. Luna: That's refreshing to hear. A lot of indie hackers feel like they have to chase venture money or die. He's proving there's a middle path. Lucas: Absolutely. And that's actually a good segue into something I wanted to mention. This kind of deep-dive episode — and honestly, the whole podcast — only exists because of listeners who support it. Luna: Yeah, it's a small group, but they make a huge difference. We keep the show ad-free and independent, and that's entirely funded by people who chip in through buy me a coffee dot com slash fexingo. Lucas: If today's conversation gave you something useful, and you want to see more episodes like this, that's the place. No pressure — just know that every contribution goes straight into research, hosting, and keeping this thing going. Luna: Right. Now back to Ryan. One thing I'm curious about: how does he handle customer support as a solo dev? That's often the part that scales worst. Lucas: He uses a simple helpdesk tool called HelpScout, and he answers every email himself. He says it takes about two hours a day on average. He's built a knowledge base with video tutorials, which cut down repetitive questions by about forty percent. He also has a community Discord where users help each other, which he monitors but doesn't actively moderate. Luna: Two hours a day is manageable. But what happens when he goes on vacation? Lucas: He doesn't really take long vacations. He takes long weekends. But he's set up an auto-responder that says response times may be delayed, and users are generally understanding. He's also considering hiring a part-time support person once he hits fifteen thousand MRR. Luna: Makes sense. So for someone listening who wants to replicate this model — offline-first, one-time purchase plus subscriptions — what's the key takeaway? Lucas: I think the biggest lesson is that Ryan spent three months just talking to potential users before writing a line of code. He interviewed twenty-two accountants and bookkeepers. He didn't build anything until he could articulate exactly what they needed that they weren't getting from existing tools. That upfront research is what made the product a fit from day one. Luna: Talk to users first — it sounds obvious, but so many people skip it. I love that he went for a niche that's boring but profitable. Accounting software isn't sexy, but it's a need. Lucas: Exactly. And he's not trying to be the next QuickBooks. He's just trying to be the best tool for a specific kind of user. That's a great blueprint for any solo developer. Luna: Alright, we'll link to Ryan's product page and his Twitter in the show notes. Thanks for listening, and we'll catch you next time.