Zero marketing, zero code, 22,000 downloads in three months: a coding beginner's open-source journey
Three months ago, I set myself a goal that sounded a little crazy: build the best free Markdown editor out there.
The crazy part wasn’t “best.” It was “free” — and more than that, it was the fact that I can’t write code.
Three months later. This thing called SoloMD has shipped 30 versions, been downloaded more than 22,000 times, and picked up over 400 GitHub stars. And in those three months, I barely spent any effort on marketing. Here’s how that happened.
Numbers first, so this doesn’t read like a pitch
I don’t like leading with feelings and ideals. Numbers first — judge for yourself whether this is real:
- Repo created April 8. That’s roughly three months to today.
- 30 versions shipped in those three months, currently at v4.8.9 — that’s one version every three days on average. Even I think that’s a little aggressive.
- 417 GitHub stars, 25 forks, MIT license — anyone can take it and fork it.
- Across all platforms: 22,463 downloads total.
The one thing I most want you to notice: none of this was bought. No ads, no paid reviews, no growth hacking. I just followed the distribution advice AI gave me, posted it where it should be posted, and then… that was it. The product walked on its own.
I wanted to build free software that doesn’t treat users as a crop to harvest
Why specifically “free”? Because the free software pond has been murky for a long time.
You want to remove a watermark from a PDF. You grab the first free tool you find. The next day it’s throwing ads at you, hijacking your browser homepage, quietly phoning home in the background — and to actually export the file, you have to subscribe first. “Free” became a hook: reel you in, then bleed you out a little at a time. Users have been trained to expect to be treated as a product in free software — sold as data, never really cared about, “free” just a pressure tactic to push you toward paying.
I was done with that. So SoloMD started with a few hard rules and never moved off them: free, open source, zero ads, zero telemetry, local-first. Your files stay on your machine. I can’t touch them, and I have no interest in touching them. The slogan is one line: One file. One window. Just write.
The phrase “the best free” — the emphasis isn’t really on “free.” It’s on “best.” Free shouldn’t mean settling. A piece of software being free doesn’t mean it has to be full of ads, sluggish, and ugly. What I wanted to prove was the opposite: free can still be the most thoughtfully made thing in its category.
“Best” isn’t just a word. It’s a set of specific fights: the whole application compressed to a dozen megabytes — not the kind of bloatware that eats a gigabyte after install; Windows, macOS, Linux, and mobile, five platforms, same experience everywhere you write; the interface localized into a dozen languages, not just serving English speakers; math formulas and flowcharts — things writers actually use — supported natively, with one-click export to PDF, Word, and HTML. None of those have a “but it’s free so we skip it” excuse — they just need someone willing to put in the work. That “willing to put in the work” part is exactly what I was going for: proving that a free tool doesn’t have to cut corners.
I can’t write a single line of code. I’m not hiding that.
At this point you’re probably wondering: if you can’t write code, who actually wrote the thing 22,000 people downloaded?
AI wrote all of it. I haven’t touched a single line of production code.
That’s not modesty — that’s literally what happened. Every line of code in SoloMD, every bug fix, every version bump — it all came from me describing what I wanted, and AI building it. My job, start to finish, was exactly one thing: making “what I want” clear.
So for someone like me, the hard part was never “write the code.” It was “say it clearly.”
- “Build a Markdown editor” — put it that way and AI gives you something functional but forgettable.
- “Build an editor with a single file and a single window — open it and you’re writing immediately, nothing in the way; no file tree on the left, no row of buttons up top; I want the quiet feeling of something that makes you want to write the moment it’s open” — put it that way and what comes out is the thing I had in my head.
The difference isn’t technical. It’s whether you can take the blurry image in your mind and force it into a sentence specific enough for AI to follow. That’s what I actually practiced over these three months. Not knowing how to code didn’t hold me back — it forced me to think through every requirement more carefully, because I couldn’t shortcut anything myself. I had to say it right.
And “saying it right” rarely happens on the first try. A big part of those 30 versions in three months was “I thought I’d said it clearly — turns out I hadn’t” looping back. A real example: I wanted the editor to autosave while you’re writing — don’t let a slip of the finger wipe unsaved work. I asked for “add autosave” and got a version that saved every few seconds. Sounded right. Felt annoying: the cursor would barely stop and it would save, the drive making noise constantly. I had to go back and be more specific: “wait two seconds of idle before saving; don’t interrupt me while I’m typing; don’t flash ‘Saved’ in the title bar and break my concentration.” It took three tries before that ‘quietly saves in the background’ feel actually landed. Most of those 30 versions were that kind of tuning — not because AI couldn’t do it, but because I hadn’t thought through what “the right feel” actually meant.
“Not knowing tech” today isn’t a weakness. It’s a kind of advantage — it forces you to stay focused on “what do I actually want.” I’m taking 22,000 downloads as evidence for that claim.
One version every three days is a pace I couldn’t have imagined before
Worth saying something about those 30 versions. Three months, 30 releases — one every three days on average. What that pace means for someone who can’t code: it means an idea that pops into my head in the afternoon is something I can be using by the end of the same day.
Someone opened a GitHub issue saying a keyboard shortcut was conflicting on their system. I understood what they needed, described it clearly to AI, and shipped a new version the same evening. In the old world — “first I’d need to learn to code” — that was impossible for a beginner. The learning cliff between idea and usable product was months long, and most people quit at the edge. That cliff is gone now. Between a thought and a working thing, there’s one step left: can you say it clearly.
Moving fast had an unexpected benefit: the product grew with real users, not in isolation inside my head. When someone surfaced a real pain point, it could become a new version within three days. Users could feel that “this software is listening to me.” That kind of tight feedback loop is stickier than any ad.
The bet I made on day one: the people using this aren’t only people anymore
If SoloMD were just “another clean free editor,” I wouldn’t care about it this much. There’s a bet behind it that I made on the very first day:
The users of software have shifted from “humans” to “AI and humans.”
Think about how you write now. You type part of it yourself, then ask Claude, Codex, or Cursor to help you revise, extend, organize. Your notes library — it’s not just you touching it anymore. AI is touching it too. But almost every editor on the market still assumes the user is one person: you. They treat AI as a chat box bolted into a corner, not as a fully-capable “user” that can read and write your files directly alongside you.
So SoloMD was never “an editor with AI tacked on.” It has a built-in MCP server — which means agents like Claude Code, Codex, and Cursor can drive your entire notes library directly: reading your files, editing your files, organizing your files on your instruction, without you copy-pasting between a chat window and an editor. It also supports 14 AI providers with bring-your-own-key (BYOK) — no lock-in to any single one.
What does that actually feel like? Say you tell Claude: “Pull up every note I’ve tagged ‘to-do’ this month, merge them into one list, sorted by urgency.” It goes through MCP into your library, does the work, writes the changes directly to your files — and you watch it happen live in SoloMD. You stop being the middleman shuffling text between two windows. AI becomes a second pair of hands in your notes library. That’s what “the users aren’t only humans” looks like in practice: one human user, one agent user, sharing the same library.
This wasn’t a feature that grew out of nowhere. It was the direction I was certain of on day one. Because the bet I’m making is: every piece of software that’s still alive going forward will have to answer one question — when the thing using you is no longer only human, what should you look like? SoloMD is my first answer to that question.
Someone sent me ¥10
The thing I’ll remember most from these three months isn’t the 400-plus stars or the 22,000 downloads. It’s a user who sent me a ¥10 tip.
Ten yuan can’t buy much. But I sat there staring at my screen for a good moment. Because that wasn’t ten yuan — it was a stranger who had used something I built, decided “this is worth something, I want to say thank you,” and actually did it.
Stars are free, one click and gone. Downloads too — try it, if it doesn’t click, delete. But money is different. Even just ten yuan — that’s “being recognized” with real weight behind it. Someone who can’t write code spent three months describing things to an AI, built something with their hands, and a real stranger validated it. The warmth of that feeling — I still feel it when I think about it.
I screenshotted that ¥10 notification and saved it in a dedicated folder. Not for the money — what’s ten yuan going to do — but so that on some future day when I’m tired and thinking about giving up, I can pull it out and remind myself: the free, hands-off-your-data, quietly-gets-out-of-your-way little editor I made — a real stranger needed it, and thanked me for it.
I barely marketed it. Where did 22,000 downloads come from?
I said I didn’t push hard. So where did those 22,000 people come from?
Honest answer: the distribution moves I made were extremely plain. I just followed AI’s suggestions and posted it where it should be posted. GitHub, the right directories, a handful of places developers actually hang out — AI told me where to post and how to write the posts, I did it, and that was the whole thing. No ads, no chart-gaming, no marketing team.
Getting to 22,000 wasn’t about how hard I pushed. It was the product speaking for itself. A genuinely free, genuinely clean editor that was designed from the start for the “AI + human” user — among the people who tried it, some of them starred it, sent it to a friend, added it to their tools list. Open source and word of mouth are the slowest path but also the most durable. I had no other option — I had no budget — but looking back, that slow path forced me to make the product solid: because anything I couldn’t push through marketing had to be good enough that people would push it for me.
Three months. 30 versions. 417 stars. 22,463 downloads. One ¥10 tip. For someone who couldn’t write code three months ago, this open-source road has gone further than I had the nerve to imagine.
But the numbers aren’t really what I want to say. What this whole thing actually proves is something I keep saying: you don’t need to know how to code to build something people genuinely need. You need to be able to say the thing you want to build — clearly — and then start. Don’t stay stuck in thinking.
I’m still building. SoloMD is still a long way from what “the best free Markdown editor” means in my head — there’s a stack of interactions left to polish, a queue of user requests to work through, and the agent-driving piece has barely gotten started. But because it’s open source, because the release cadence is fast, I can pay those debts one at a time. At least now I know: this road — even a complete beginner who can’t write code — can walk it.
Further Reading
- SoloMD website / open-source repo: solomd.app · GitHub
zhitongblog/solomd - Also on this site: Why I’m Rebuilding 100 Free Tools
- Also on this site: I Built Another Terminal, Unterm — Its Default User Isn’t Human
Discussion