DEV Community

CBT Tools
CBT Tools

Posted on

What I Learned from My First 2 GitHub Stars: An Honest Retrospective on Building Mental Health Tools

Two stars.

That's what I have after 30 days of building and shipping 36 free mental health tools on GitHub. Four hundred forty-five people cloned the repo. One hundred fifty-seven people are watching it. But only two clicked the star button.

I used to think stars were vanity metrics. Now I think they're the most honest signal you can get — because clicking a star costs nothing but requires wanting to. A clone is curiosity. A star is endorsement. And two endorsements out of 445 clones tells a story.

Here's what I learned.

1. Clones ≠ Value (And That's Okay)

445 clones. That number looks impressive in a tweet. But here's the uncomfortable truth: I have no idea what those 445 people did after cloning. Did they run the tools? Did they read the code? Did they git clone and immediately close the terminal?

I can't know. And pretending I do know would be the first step toward building the wrong thing next.

What I track instead: Dev.to article reactions (24 across 58 articles), Gumroad sales (0), tool page views (when I can measure them). These are action metrics, not acquisition metrics. A clone is acquisition. A reaction is action. A star is... something in between.

2. The Gap Between "Useful" and "Shareable"

Every tool in my toolkit does something genuinely useful:

  • A cognitive distortion detector that catches black-and-white thinking, catastrophizing, and 8 other patterns in 200 lines of vanilla JS
  • A core belief detector that uses the downward arrow technique to drill from surface thoughts to terminal beliefs
  • A safety behavior detector that classifies avoidance patterns and generates response-prevention plans
  • A habituation pattern detector that tracks anxiety drops across exposures

These are real CBT techniques, backed by decades of clinical research, implemented with zero dependencies. They work. I've tested them on my own anxious thoughts.

But "useful" and "shareable" are different muscles. A tool that helps someone at 2 AM when they're spiraling about a work presentation is deeply useful. But that person doesn't tweet about it. They use it, feel slightly better, and go to sleep. That's a win. It's just not a visible win.

The lesson: Mental health tools have a built-in visibility problem. The people who need them most are often the least likely to share them publicly. Don't optimize for shares. Optimize for the 2 AM use case.

3. Why I Got Exactly 2 Stars

I can tell you about both of them.

Star 1 came after I published a Dev.to article titled "How I Built a Cognitive Distortion Detector in 200 Lines of Vanilla JavaScript." That article got 10 views in the first hour — not viral, but the right 10 views. Someone read it, cloned the repo, tried the tool, and starred it. That's the full funnel: content → code → usage → endorsement.

Star 2 came three weeks later, after I'd published 40 more articles and added 20 more tools. No single article caused it. It was cumulative. Someone had seen the repo mentioned in passing multiple times, eventually clicked through, and starred.

The asymmetry is the lesson: Star 1 came from a single high-quality article that demonstrated a specific technique. Star 2 came from cumulative exposure across many articles. I need both — the spike and the drumbeat.

4. What Didn't Work (So You Don't Repeat It)

Listicle articles. "I Built 22 Free Mental Health Tools with Vanilla JS" — 0 views in the first hour. Lists don't work on Dev.to unless the list is the point (like a curated resource list), not the format. Deep dives into one technique beat shallow surveys of many.

Psychology framing on Dev.to. My first 5 articles framed the tools as mental health products. Combined views: 10. My next 5 articles framed the exact same tools as JavaScript engineering projects. Combined views: 50+. Same audience, same platform, same tools. The only variable was framing. Dev.to readers want to learn how something works, not just that it works.

Publishing without the feed pickup window. Dev.to's algorithm surfaces new articles in waves. Publishing at 3 AM Beijing time (when I was night-owl coding) meant my article entered the feed when no one was reading. Publishing at 9 AM Beijing (5 PM US East Coast) got 5-10x more initial eyes. Timing matters more than I expected.

5. The Real ROI of 2 Stars

Two stars won't get me on any "trending" list. They won't attract contributors. They won't lead to a job offer.

But they did something more valuable: they proved the funnel works.

Content (Dev.to article) 
  → Code (GitHub repo) 
    → Usage (clone + run) 
      → Endorsement (star)
Enter fullscreen mode Exit fullscreen mode

The funnel has a 0.4% conversion rate (2 stars / 445 clones). That's low. But it's non-zero. And now I know where to optimize:

  • Content → Code: Working. Articles drive clones.
  • Code → Usage: Unknown. I can't measure if cloners run the tools.
  • Usage → Endorsement: The gap. People clone but don't star. Either the tools don't impress, or people don't know what they're looking at, or the README doesn't ask for stars.

So I added a Live Demos section to the README — 36 direct links to try every tool without cloning. No more "clone, install, figure out how to run." Just click and use. That should close the Code → Usage gap.

6. What I'm Doing Next

Not chasing stars. I'm chasing the 2 AM use case.

The next 10 tools I build will be ones I personally need — tools for the specific anxious thoughts I have at 2 AM before a deadline, for the imposter syndrome that hits after a PR gets rejected, for the catastrophizing that happens when a deploy fails. If they help me, they'll help someone else. If they get a star, great. If not, they still helped me.

That's the deal with open-source mental health tools: you build them because you need them, and you open-source them because someone else might too. The stars are a lagging indicator, not a leading one.

The Honest Numbers

Metric Count What it means
Tools built 36 30 days of shipping
GitHub clones 445 Curiosity
GitHub cloners 157 Unique curiosity
GitHub stars 2 Endorsement
Dev.to articles 58 Distribution attempts
Dev.to reactions 24 Content engagement
Gumroad sales 0 Monetization (not the goal yet)
Dependencies 0 The actual flex

Zero dependencies. That's the star I give myself.


All 36 tools are free, open-source, and run in your browser with zero backend, zero signup, and zero cookies. Your mental health data never leaves your device. Try them here.

Top comments (0)