The Indie Hacker Podcast with Fexingo · 2026-07-01 · 9 min
Key moments - from our scoring
Substance score
52 / 100
Five dimensions, 20 points each
This episode examines how a solo developer achieved $10K monthly recurring revenue with a single-binary command-line tool for PostgreSQL database migrations - no web dashboard, no UI, just a focused solution to a developer pain point. Unlike language-specific alternatives like Alembic or Flyway, the tool is language-agnostic and eliminates setup friction. The developer charged $50 per developer per month through a free-tier-to-paid conversion model (free for open-source, paid for commercial teams), acquiring customers entirely through GitHub and Hacker News with zero marketing spend. The first paying customer came organically when a CTO found the tool after experiencing a production database outage. Key to the strategy was deliberate scope constraint - when customers requested a UI, the developer refused, calculating that a dashboard would triple his workload. Instead, he invested heavily in documentation as a growth lever, turning support questions into improved docs that attracted organic search traffic. By month eight, he had 200 paying seats across roughly 40 customer accounts, with only 2% monthly churn because switching costs were high once integrated into deployment pipelines.
He built a PostgreSQL migration tool that solved real pain (database outages from botched migrations) with zero setup friction, charged $50/developer/month to engineering teams, and grew entirely through GitHub + Hacker News word-of-mouth. Low churn and high switching costs (once integrated into deployment pipelines) meant 40 customers with 5 seats each could sustain $10K MRR.
He offered a free tier for open-source projects and individual developers, and a $50/developer/month paid tier for commercial use with priority support. The free tier acted as a funnel - developers using it on personal projects would advocate for it at their jobs, while the first paying customer came from a CTO who discovered the tool after a production outage.
He calculated that building and maintaining a UI would multiply his workload by at least three times as a solo developer. Instead, he invested in comprehensive documentation as a growth lever, which attracted organic search traffic and enabled customers to self-serve.
Essentially zero - he spent no money on ads or sales, relying entirely on GitHub, Hacker News, and organic search from his documentation to drive awareness and conversion.
Monthly churn was around 2%, primarily because switching costs were high once teams integrated the tool into their deployment pipelines, and the tool's reliability and responsiveness (the developer responded to issues within hours) made it sticky.
Our reviewer’s read on each dimension, with quotes from the episode.
The episode contains several useful takeaways for indie developers (product-market fit through pain, low-churn model, documentation as growth lever, free tier as sales funnel), but these are presented with limited depth and mostly reiterated rather than deeply explored. The conversation covers ground but lacks novel mechanics or counterintuitive insights beyond 'build something people want and listen to them.'
good documentation is a growth lever. Especially for developer tools
by keeping it simple, you validate the core value proposition faster. If people pay for a CLI tool, you know the problem is real
The core narrative - solo dev builds focused product, solves real pain, achieves sustainable revenue - is a well-worn indie hacker archetype. The specific insight (CLI-only, no UI, still hits 10K MRR) is somewhat novel in emphasis but not deeply original; the underlying principles (tight focus, product-market fit, low acquisition cost) are standard indie wisdom. No contrarian or first-principles argumentation present.
build a real business on your own terms
You don't need a massive team or a complex product to build a sustainable business. You just need a clear problem, a focused solution, and a deep understanding of who you're building for
No actual guest appears in this episode. Lucas and Luna are hosts having a theoretical conversation about an unnamed solo developer's story. The developer whose work is discussed is not interviewed, and we hear only hearsay about their experience. This severely limits the credibility and value of the content - it's secondhand narrative rather than direct expertise.
So there's this story about a solo developer who built a command-line tool
He mentioned that he's thinking about hiring a part-time support person
The episode provides concrete numbers ($50/dev/month, $10K MRR, 2% churn, 8 months to 10K MRR, 200 paying seats, ~40 customers), which is strong. However, the tool itself (a PostgreSQL migration tool) is vague and unnamed. The customer acquisition story is illustrative but generic (CTO finds it on GitHub). No verifiable sources, links, or named case study are provided; all claims rest on unverified hearsay.
fifty dollars per developer per month
It took about eight months from first commit. He hit two thousand MRR in month three, then five thousand by month six, then ten thousand by month eight
The hosts trade conversational turns competently and build on each other's points reasonably well (e.g., Luna's follow-up on churn, the free-tier-as-funnel beat). However, the dialogue lacks sharp follow-ups, no contradictions or productive disagreement emerge, and many questions are softball or leading. There is no pushback on the narrative or probing of underlying assumptions - it reads as two people agreeing on a pre-agreed story.
That's steep for something that doesn't have a UI
I wonder - did he ever face pressure from customers to build a UI?
Computed from the transcript - who did the talking, and the words that came up most.
In this episode, Lucas and Luna explore the story of a solo developer who built a command-line interface tool for developers, reaching $10,000 in monthly recurring revenue without a single user interface. The episode dives into how he found product-market fit by solving a specific pain point: automating database migrations for teams using PostgreSQL. They discuss his pricing strategy, distribution through GitHub and developer communities, and the surprising fact that most of his customers never asked for a UI. The conversation also touches on the challenges of supporting non-technical users, the importance of documentation, and why a CLI-first approach can be a viable alternative to building a full SaaS dashboard. #SoloDev #CLITool #10KMRR #Bootstrapped #SaaS #PostgreSQL #DatabaseMigrations #NoUI #DeveloperTools #IndieHacker #CommandLine #ProductMarketFit #GitHub #PricingStrategy #Documentation #Tech #FexingoBusiness #BusinessPodcast Keep every episode free: buymeacoffee.com/fexingo
Transcribed and scored by The B2B Podcast Index.
Lucas: So there's this story about a solo developer who built a command-line tool that does one thing - PostgreSQL database migrations - and he hit ten thousand dollars in monthly recurring revenue without ever building a user interface. Luna: No UI at all? Like, not even a web dashboard? Lucas: Not even a settings page.
The entire product is a single binary you run in your terminal. You type a command, it migrates your database schema forward or backward. That's it. Luna: I mean, database migrations are a solved problem in a lot of ways.
There's Alembic for Python, Flyway for Java, plenty of options. What made his different? Lucas: Right, but those tools are language-specific or require configuration files. His tool is language-agnostic - a single binary that works with any tech stack.
You define your migration in SQL, and it runs them. He focused on something developers hate: the friction of setting up migration tooling in a new project. Luna: So he removed the setup friction. How did he get the word out?
Lucas: He posted the tool on Hacker News and GitHub. That's it. No ads, no outbound sales. The GitHub repo got some traction, and within a few weeks, he had a few dozen developers using it for free.
Then he added a paid tier - essentially a license for commercial use - and started charging fifty dollars per developer per month. Luna: Fifty dollars per developer per month for a CLI tool? That's steep for something that doesn't have a UI. Lucas: It sounds steep, but here's the thing: his customers are engineering teams who spend hours debugging migration scripts.
The tool automates that and prevents data loss. For a team of ten, that's five hundred dollars a month. Compared to the cost of a database outage, it's cheap. Luna: Okay, so he's selling to teams.
How did he get his first paying customer? Lucas: His first paying customer was a startup that had a production database go down because of a botched migration. The CTO found his tool on GitHub, tried it on a staging environment, and bought licenses for the whole engineering team within a week. Luna: That's a perfect use case.
So the revenue came from teams that had already felt the pain. Lucas: Exactly. And that's a key pattern in a lot of these indie hacker stories - the product solves a problem the customer has already experienced, not one they need to be educated about. Luna: Let's talk about the pricing structure.
Was it just per-developer licensing, or were there other tiers? Lucas: He started with a single paid tier: fifty dollars per developer per month, includes priority support and access to private beta features. But he also kept a free tier for open-source projects and individual developers. That free tier actually drove a lot of adoption because developers would use it on personal projects, then advocate for it at work.
Luna: So the free tier acted as a sales funnel. That's smart. But I wonder - did he ever face pressure from customers to build a UI? Lucas: He did.
Some customers, especially less technical ones, asked for a dashboard to visualize migration history. But he held firm. His reasoning was that building and maintaining a UI would multiply his workload by at least three times, and he was a solo developer. He couldn't afford the distraction.
Luna: And yet he kept growing. How long did it take him to hit ten thousand MRR? Lucas: It took about eight months from first commit. He hit two thousand MRR in month three, then five thousand by month six, then ten thousand by month eight.
The growth was fairly linear, not exponential, but it was consistent. Luna: That's impressive. What was the churn like? Lucas: Very low.
Around two percent monthly. Once teams integrated his tool into their deployment pipeline, switching costs were high. Plus, the tool was genuinely good - it rarely broke, and when it did, he responded within hours. Luna: That's the benefit of a focused product.
Fewer features means fewer bugs. But also more pressure to make those features rock solid. Lucas: Exactly. He spent most of his time on reliability and documentation.
He wrote extensive docs with examples for different database setups, and that became his main customer support channel. People would read the docs and solve their own problems. Luna: I think that's a lesson a lot of founders miss: good documentation is a growth lever. Especially for developer tools.
Lucas: Yeah, and he treated it as such. Every time a customer asked a question, he would improve the docs rather than just answering the email. Over time, the docs became a comprehensive resource that attracted organic traffic from search. Luna: Let's talk about the broader implications.
A lot of indie hackers feel pressured to build a full SaaS product with a web app, authentication, billing, a dashboard. This story suggests that for certain niches, a CLI tool can be enough. Lucas: Absolutely. If your target customer is a developer who lives in the terminal, they might prefer a CLI over yet another web app to log into.
The key is understanding your audience deeply. Luna: But it's a risky bet. If you're wrong, you've built a product that's hard to expand beyond that niche. Lucas: True, but the counterpoint is that by keeping it simple, you validate the core value proposition faster.
If people pay for a CLI tool, you know the problem is real. Then you can decide whether to build a UI later. Luna: And in his case, he never needed to. He's still at ten thousand MRR, and he's thinking about adding a UI, but only as an optional layer.
Lucas: If today's tech conversation gave you something usable, we want to mention that this show stays ad-free because of listener support. If you'd like to keep it that way, you can find us at buy me a coffee dot com slash fexingo. Luna: Yeah, we really believe in keeping the content clean and focused on what matters. No sponsors, no interruptions.
Lucas: Right. So back to the story - the developer recently shared his revenue breakdown on a podcast. At ten thousand MRR, he had about two hundred paying seats, with an average of five seats per customer account. Luna: That's forty customers.
Not a huge number. But each customer is relatively sticky. Lucas: Exactly. And his customer acquisition cost was essentially zero.
He didn't run ads, didn't hire a salesperson. The only cost was his time. Luna: What about the competitive landscape? I imagine since he launched, there've been copycats.
Lucas: There have been a few, but none have gained significant traction. Partly because he built a strong brand around reliability and documentation, and partly because the switching costs are high once you've configured the tool for your pipeline. Luna: So he's got a defensible niche. That's the dream for a solo developer.
Lucas: It really is. And it shows that you don't need a massive team or a complex product to build a sustainable business. You just need a clear problem, a focused solution, and a deep understanding of who you're building for. Luna: What's next for him?
Is he planning to stay solo or eventually hire? Lucas: He's mentioned that he's thinking about hiring a part-time support person to free up his time for building new features. But he's in no rush. The business is profitable, he enjoys the work, and the customers are happy.
Luna: It's a nice counter-narrative to the vc funded growth-at-all-costs story. Lucas: Absolutely. And I think that's why stories like this resonate with our listeners. It's proof that you can build a real business on your own terms.
Luna: So if you're a developer listening and you've been thinking about building a tool for a pain point you've experienced, maybe this is the nudge you needed. Lucas: Exactly. Start small, ship fast, and listen to your users. You might just build something that people will pay for without ever building a UI.
Luna: Thanks for the story, Lucas. That was really inspiring. Lucas: Glad you liked it. That's all for today.
Catch you next time.
Other episodes covering the same guests and topics, from across The B2B Podcast Index.