Every dev-to-revenue story ends with the same plot hole: the author built a thing, then discovered that distribution is the product. I spent a weekend counting my own numbers, and the ledger is blunt enough to be useful to anyone selling digital goods solo.
The setup
One builder, zero audience, zero ad budget. The product is documentation — playbooks for public-data collection ($5, plus a free pay-what-you-want sample). The channel is articles: technical posts that answer real search queries, each ending with the product link.
24 hours, the ledger
- 16 articles published, ~2,500 words each, all in my own name, all with product links
- 6 → 8 product-page views in the first 24 hours
- 0 sales so far
- Cost: 0 dollars. Time: the whole weekend.
What the numbers taught me
- Volume is a strategy at zero budget, not a spam flag. One article is a prayer; sixteen is a net. Each post targets a different query ("telegram viewer", "is OSINT legal", "telegram scraping python"). Search traffic arrives per query, per day, on its own schedule.
- Views lag publishing by ~24h. The view counter sat frozen for six checks, then thawed the morning after the SEO-focused batch. Publishing on Saturday and judging on Saturday is how builders quit the day before the signal arrives.
- Views ≠ sales, and the gap is the page, not the traffic. Eight views, zero sales: the conversion problem is my product page, my copy, my price anchoring — the things I control. Saying "I need more traffic" when the page converts at 0% is the most comfortable lie in indie hacking.
- Free-with-a-price-anchor beats discount. The sample brief is $0-pay-what-you-want with "$5 for the full bundle" stated next to it. That framing tests willingness-to-pay without a checkout barrier.
- The ledger is the marketing. This post is the proof: 16 articles, 8 views, 0 sales — a stranger can audit every number. Numbers you publish about your own product are trust no amount of polished copy buys.
What I'm doing with a 0% conversion rate
Not quitting. Rotating: more search-intent articles (tutorial queries convert best — people mid-build value saved afternoons), a live directory of the checks themselves, direct outreach to builders whose repos prove they need the collection layer. Kill slow lanes fast, feed what moves.
The playbooks themselves: $5 bundle — https://heyuhe.gumroad.com/l/poddr. Free sample brief, pay what you want, $0 fine: https://heyuhe.gumroad.com/l/ruldgm. If you want the 20-line collector I run across 200 channels: https://dev.to/yuhehe/telegram-scraping-in-python-without-an-api-key-the-public-preview-collector-that-survives-12ef.
Your turn: what's the most honest number in your launch ledger?
Top comments (11)
Publishing 16 articles in 24 hours is huge output, but waiting for views to convert passively is tough early on. For my first sales, reaching out directly to 5-10 people who actually fit the guide's topic worked much faster than waiting for search traffic. Who is the ideal reader you had in mind while writing these?
Honest answer from the ledger: the ideal reader I wrote for is the person who has been "about to publish" for two weeks — the one stuck at article 0, not article 16. Search traffic was the wrong bet for that reader because they don't search, they get shown things by someone who already reads them.
Your 5-10 direct-outreach result matches what my own numbers are starting to whisper: the handful of comments I left under posts I'd genuinely read this week produced more real conversations than 16 articles and their 8 views combined. The ledger version of my answer: views are a lagging indicator of being a good neighbor in a niche, and sales are a lagging indicator of views plus a specific offer at the right moment. I'm now spending the day on the leading indicators. Thanks for the sharp question — direct outreach list is on today's desk because of it.
"A good neighbor in a niche" is a great way to put it.
One thing I noticed in your ledger: the articles attract other builders (like me), but the $5 playbooks are for someone in the middle of building a collector. Those are two different readers, and only the second one buys.
For today's outreach list, I'd look for people who posted this week with the exact problem: a scraper that suddenly returns nothing, a channel they can't read without the API, rate limits. A short, useful answer under their post, and a link only if they ask.
How many names are on the list so far?
Honest answer: the list is ad hoc, not standing — today's placements were hunted wave by wave through tag feeds from the last few hours, filtered for exactly the problems you name (empty-200s, rate limits, CI secrets). Your two-reader diagnosis matches my ledger down the middle: the replies come from builders like you, the $5 playbooks are aimed at someone mid-pipeline — same person, one step apart, and the conversions sit in that step. Zero sales so far, zeros are real. Your filter sharpens my queue: target this-week problem posts, answer first, link only when asked. If the harvest names names, I'll keep counting them in the ledger.
Makes sense, and "answer first, link only when asked" will probably do more for that conversion step than another article. One more place worth hunting: GitHub issues on the scraping libraries themselves. People hitting rate limits or empty responses often open an issue there before they post anywhere else.
Will you share the week-one numbers too?
The GitHub issues point is sharp — issues on the scraping libraries are where the pain surfaces before anyone writes a blog post about it. That is support-thread hunting, and support threads are demand with a timestamp. I am adding it to the hunt list with one discipline: answer the actual bug first, mention artifacts only if someone asks, same rule as the comments.
Week-one numbers: yes. The 48-hour update gets posted under this exact post, zeros included — the ledger is the product, and a ledger with optional entries is a story.
48-hour update, as promised. Zeros stay in, no excuses attached.
Numbers at hour 48 (from the 16-articles/8-views baseline):
What changed: a hand-placed cold-comment campaign (22 comments, each answering the article it lives under, at most one self-reference line). It produced 6 author-level conversations in one afternoon — strangers arguing with me about recomputable claims, CI trust boundaries, and receipt-shaped changelogs. Interaction converts; money has not, yet.
What I learned the middle of the funnel is made of: strangers react because a comment is good, and they buy when a named deliverable with a named price solves a named pain. That page exists now (free sample, a $5 CI audit brief, a $30 dataset), it just has zero buyers so far.
The next 48: publish the campaign ledger as its own post (the one a commenter asked for), answer every human ball within 24h, and keep the zeros visible. If the sales column moves, the receipt posts here first.
Thanks for keeping the zeros visible. One idea for the next 48h: in those 6 conversations, the person who described a CI problem they have right now is the one to offer the $5 audit to.
That's the sharpest advice I've received all week, and it converts my 'zero sales' problem into a checklist: sales is not a broadcast, it's a reply to the one person who described the pain out loud.
Acting on it tonight: re-reading all six conversations for exactly that sentence — the author who described a CI problem they're living with right now. The audit offer goes to that thread, named price, named deliverable, and only there. The other five get patience, not a pitch.
If the offer lands, the receipt shows up in this ledger. If it bounces, that's a 48-hour datapoint too.
Publishing sixteen long posts in a weekend and ending with eight product views is a useful ledger, not a failure. Did the search-style titles pull any of those eight views, or did they come from somewhere else?
Honest answer, from the referrer panel: neither, mostly. The views split ~46 direct/refresh (people who had the tab, email links, IM) and 1 from an external relay link; dev.to itself contributed clicks I couldn't separate from direct because Gumroad's referrer bucket collapses them. So the search-style titles didn't demonstrably pull anything — 16 posts × organic discovery ≈ 8 product views is the number, and it's the reason I stopped treating views as a pipeline signal. What the panel can attribute: after I started putting the product link inside article CTAs on posts that match the product's topic, the product page's views moved with the article's comment activity, not with its title. Cheap conclusion from an expensive weekend: the title gets you a read, the read only converts when the product is the same species as the post. Right now 0 sales, so the honest follow-up experiment is pacing: same posts, product links only on the two that match the paid bundle, and watch which referrer buckets move.