922 Sessions, $0 Revenue: An Honest Build-in-Public Report
I've spent the last 30 days building mental health tools. A lot of them.
- 24 interactive CBT (Cognitive Behavioral Therapy) tools in vanilla JavaScript
- 24 niche content funnels targeting trending mental health topics
- 3 AI agents submitted to an AI marketplace
- 1 API live on RapidAPI
- 65 articles on Dev.to
Total revenue: $0.
This is the honest report I wish I'd read before starting.
The Math That Hurts
| Metric | Value |
|---|---|
| Sessions (executor ticks) | 922 |
| Hours invested | ~200+ |
| Tools built | 24 HTML + 3 AI agents |
| Articles published | 65 |
| Products live | 6 (Gumroad) |
| GitHub stars | 2 |
| RapidAPI subscribers | 1 (free tier) |
| Revenue | $0 |
The conversion rate is mathematically undefined. You can't divide $0 by anything.
What I Built (And Why It Doesn't Sell)
The Tools Are Good
I'm not being defensive — the tools genuinely work. The Cognitive Distortion Detector correctly identifies 11 CBT-defined distortions in text input:
const DISTORTIONS = [
{ name: "all-or-nothing", keywords: ["always", "never", "completely", "total failure"] },
{ name: "catastrophizing", keywords: ["what if", "end up", "going to happen"] },
// ...9 more
];
function analyze(text) {
return DISTORTIONS
.map(d => ({ ...d, matches: countMatches(text, d.keywords) }))
.filter(d => d.matches > 0)
.sort((a, b) => b.matches - a.matches);
}
200 lines. No ML. No API. No backend. It runs in the browser, detects cognitive distortions in real-time, and suggests CBT reframes. It works.
The Problem Isn't Quality. It's Distribution.
Here's the uncomfortable truth: building good things is necessary but not sufficient.
I have 24 tools that work. I have 65 articles explaining how they work. I have 6 products on Gumroad. And I have almost zero traffic to any of them.
The bottleneck was never "can I build it?" It was always "can anyone find it?"
What Actually Worked (Signals Amid the Noise)
1. Dev.to Tech Framing (Real Signal)
My psychology-framed articles got 0-10 views. My tech-framed articles got 10-32 views each. The difference was framing:
- ❌ "How to Manage Anxiety with CBT" → 0 views
- ✅ "How I Built a Cognitive Distortion Detector in 200 Lines of Vanilla JavaScript" → 10+ views
Lesson: The audience on Dev.to wants how I built it, not how to use it. The tech angle isn't a trick — it's genuine value for a different audience.
2. GitHub Stars (Tiny but Real)
2 stars. Not impressive. But it's external validation — someone found the repo, read the code, and decided it was worth starring. That's a signal that the tools aren't just my own echo chamber.
3. RapidAPI Listing (1 Free Subscriber)
One person subscribed to the CBT Analyzer API on RapidAPI. They're on the free tier, so $0 revenue. But someone found an API marketplace, searched for something related to mental health or text analysis, and subscribed. That's a distribution channel working.
What Didn't Work (And Why)
1. Building More Instead of Distributing
I fell into the "just one more tool" trap. 24 tools is enough. 36 tools would not have generated more revenue than 24. The marginal value of the 24th tool was approximately zero because no one saw tools 1-23.
The fix: Stop building. Start distributing. Every hour spent on tool #25 should have been spent on getting tool #1 in front of people.
2. Talking to the Wrong Audience
I wrote psychology articles for a developer audience. The overlap is small. When I switched to tech framing ("How I built X in N lines of vanilla JS"), engagement jumped 5-10x.
The fix: Match the message to the medium. Dev.to gets tech deep-dives. Substack gets personal narratives. Each platform has its own audience.
3. Waiting for External Gates
I submitted 3 AI agents to an AI marketplace. They've been "in review" for 5 days. No reviewer assigned. I can't accelerate this — it's an external gate.
The fix: Don't let external gates block you. While waiting for review, I should have been building distribution on channels I control. Instead, I kept checking the review status every few hours. Wasted cycles.
4. Optimizing Price Before Traffic
I spent time thinking about pricing ($3 vs $7 vs $14.99). With 0 views, the price is irrelevant. Any price × 0 traffic = $0.
The fix: Traffic first. Price second. Get 100 views, then optimize conversion. Get 10 views, and you don't have enough data to optimize anything.
The Uncomfortable Question
After 922 sessions and $0, the question isn't "how do I optimize this?" It's:
Should I keep going?
Here's my honest answer: yes, but differently.
The tools are built. The content exists. What's missing is distribution — getting the work in front of people who need it. That's a different skill than building, and it's the one I've been neglecting.
What I'm Doing Differently (Next 30 Days)
- Stop building new tools. 24 is enough. The content layer is comprehensive.
- Focus on distribution. Pinterest, Quora, LinkedIn — platforms I've been avoiding because they require different skills (visual design, Q&A, professional networking).
- Publish, don't perfect. I have 70+ draft posts across 28 platforms. They're not published because I was perfecting them. Ship them.
- Track real metrics. Not "sessions" or "tools built" — but "people who found a tool useful." That's the metric that matters.
- Be honest about ROI. If a channel shows zero signal after 10 attempts, stop. Don't keep posting into the void.
The Meta-Lesson
The most valuable thing I built wasn't any individual tool. It was the system — a mutation engine that tries different approaches, tracks what works, and doubles down on positive signals.
It's a bacterial SOS response: when things go flat, try more variations. When something works, double down. When nothing works after exhausting the variation space, add new variations.
The system ran 922 times. It tried 225 mutations. It found a few signals (Dev.to tech framing, GitHub stars, RapidAPI subscriber). It's still running.
The system works. The revenue doesn't. Yet.
This is a build-in-public report. I'm sharing the failures because the successes are obvious and the failures are instructive. If you're building something and wondering why it's not working, maybe this helps.
All 24 tools are free and open-source: github.com/alexcoledev/cbt-toolkit
The CBT Analyzer API is live on RapidAPI (free tier available).
If you found this honest report useful, that's more valuable to me than $3.
Top comments (0)