M

The App Made $4,000 Because It Replaced One Ugly Spreadsheet.I Made My Own App with Claude Code.

7 min readView source ↗

Cover image

It charged 40 users $99/month by saving each of them 3+ hours a week.

Most people try to build the app that looks impressive in public. The dashboard with five tabs. The AI assistant with a cute name. The SaaS landing page that promises to “transform workflows” before it has transformed one real workflow. That is the slow path. The app that made money was much simpler: it took a painful manual process, turned it into a button, and charged for the time it gave back.

Claude Code was not the reason people paid. Nobody cared what built it. The reason they paid was that the app removed a weekly task they already hated: cleaning messy client data, checking it against rules, generating a report, and sending a clean summary. Before the app, that took hours. After the app, it took minutes. That is the whole business.

The App Was Boring On Purpose

The first version did not have teams, roles, billing experiments, onboarding flows, complex permissions, or a beautiful settings page. It had one promise: upload the file, get the clean report, know exactly what needs attention. That was enough because the user did not want software. The user wanted the task gone.

This is where most builders lose the plot. They think small means weak. In reality, small is why the app worked. A broad product has to explain itself. A narrow product walks into a specific pain and says, “I fix that.” The narrower the pain, the easier the sale, the faster the build, and the less room there is for users to misunderstand why they should pay.

Claude Code made the narrow version possible fast. I used it to turn the manual workflow into product logic: what inputs were accepted, what errors mattered, what output users expected, what edge cases would break trust, and what had to happen before the app could say the report was ready. Once those rules were clear, the app was not hard. It was just execution.

The Money Was In The Workflow, Not The Idea

The idea was not original. Every industry has reporting tools, data cleaners, document generators, invoice checkers, onboarding trackers, and internal dashboards. The difference was the workflow. This app was built for one annoying job that people already did every week.

That is the easiest place to find paid software ideas. Look for work that is repeated, manual, rule-based, and painful enough that people complain about it but not so complex that it needs a full enterprise platform. The best signs are always the same: spreadsheets with too many columns, copy-paste between tools, recurring reports, manual checks, screenshots sent as proof, and one person on the team who “just knows how it works.”

The app did not need to invent demand. Demand was already there. If someone spends 3 hours every week fixing the same report, that is 12 hours a month. If the app costs $99/month and saves even half that time, the math is easy. Multiply that by 40 customers and you are at roughly $4,000/month without needing a huge audience.

Claude Code Compressed The Middle

Claude Code did not replace the thinking. It replaced the drag. The painful middle of building small software is not writing one function. It is wiring the boring pieces together: upload flow, parsing, validation, database fields, error states, exports, test cases, empty states, edge cases, setup scripts, and docs.

That is exactly where Claude Code helped. I would give it one narrow job at a time: inspect the current code, add file validation, improve the export logic, catch duplicate rows, write tests for bad inputs, simplify the UI copy, explain the failure state, then review its own diff. It worked because each task had a clear finish line.

The mistake would have been asking it to “build the whole app.” That kind of prompt feels fast for 10 minutes and expensive for the next 10 hours. Claude Code is strongest when the work is broken into small verified steps. It should not guess the product. It should execute the product logic after you have made the workflow clear.

The First Version Sold Before It Was Perfect

The first paying version was not polished. It was reliable. That matters more. Users forgive a plain interface if the output is correct. They do not forgive a beautiful interface that silently gives them the wrong answer.

So the early build focused on trust: clear errors, obvious outputs, repeatable results, and no mystery.

If a file had the wrong column, the app said which column was missing. If a row looked wrong, it flagged the row instead of pretending everything was fine. If the export was complete, the user could see what changed and why.

That is the difference between a toy and a paid tool. A toy works on the demo file. A paid tool survives the ugly file the customer uploads on Monday morning when they are already late.

Distribution Was Smaller Than People Think

This was not a viral launch. There was no massive audience, no Product Hunt miracle, no thread that changed my life overnight. The first users came from direct outreach to people who already had the workflow. The message was not clever: “I built a tool that cleans this exact report in minutes. Want me to run one of your files through it?”

That worked because it asked for a small yes. Not “subscribe to my SaaS.” Not “book a strategy call.” Just send the file you already hate dealing with. Once the output came back clean, the product made sense without much explanation.

The best early marketing for a narrow app is not content. It is proof. Take the user’s messy input, return a better output, and let them feel the time savings before asking for the subscription.

The Trap Is Building Too Much Too Early

The app started making money because it stayed narrow. The moment users pay, the temptation is to expand: new dashboards, more integrations, team management, analytics, automations, templates, notifications, AI summaries, custom branding. Some of that may become useful later. Early on, most of it is noise.

The rule was simple: only build features that make the core workflow faster, safer, or easier to trust. If a feature did not reduce time, prevent mistakes, or help users finish the job, it waited. That kept the product from turning into a messy platform before it had earned the right to become one.

Claude Code makes overbuilding dangerously easy. That is why constraints matter. Fast development is only an advantage if you build the right thing. Otherwise you just create more surface area to maintain.

The Bottom Line

The app made $4,000/month because it did one boring job clearly enough that 40 people paid $99/month for it. Claude Code made the build faster, but the money came from the workflow: repeated pain, measurable time savings, simple pricing, and a product narrow enough to explain in one sentence.

The next profitable app probably does not look like a big idea. It looks like a spreadsheet someone opens every Friday and quietly hates.

I post daily notes on Claude Code, agent workflows, and the small systems that make software feel less like an inbox with syntax highlighting.

Follow me @karpachoq for the next one.

Related articles