When a Free Side Project Stops Being Free
How ChessPecker grew from a personal tool into a 1,300-user SaaS and why freemium was the most controversial but necessary decision I've made.

A Small Tool With No Intentions
ChessPecker didn't start as a startup idea. It wasn't validated, pitched, or planned. It was a tool I built because I wanted something better for my own chess training. I didn't like the existing puzzle workflows. I wanted tighter feedback loops, cleaner UX, and more control over how puzzles were served.
So I built it for myself, on nights and weekends, with zero expectation that anyone else would care. At that stage, "free" wasn't a philosophy. It was just the default when you're building something for personal use.
Opening the Door to the Internet
At some point, I realized something important: if I found this useful, maybe other people would too. So I deployed it publicly. No pricing page. No auth limits. No roadmap. Just a URL and a quiet hope that a few strangers might enjoy it.
I didn't market it. I didn't announce it aggressively. But the internet has a way of finding things that scratch a niche itch.
Growth Without Permission
Users didn't arrive all at once. They trickled in, then steadily climbed. Suddenly there were hundreds. Then a thousand. Now, ChessPecker sits at approximately 1,300 registered users and growing.
That's when the tone of the project changed. More users didn't just mean more page views. It meant more expectations, more feedback, and more responsibility.
"The project didn't change the responsibility did."
The Invisible Costs of "Free"
Running a public app is never actually free. Behind the scenes, ChessPecker requires:
- Hosting and compute
- Database storage and backups
- Authentication and session tracking
- Analytics and monitoring
- Ongoing maintenance and bug fixes
And more importantly, it requires time. Time to debug edge cases. Time to answer emails. Time to ship fixes instead of new ideas. None of this is visible to users but all of it compounds.
When a Hobby Becomes Infrastructure
At a certain scale, your app stops being a toy. People start relying on it. They integrate it into routines. They get frustrated when it's down.
When users rely on your product, you owe them stability. Stability costs money.
Pretending a growing system can stay "casual" is how side projects die.
The Freemium Decision
Eventually, I had to make a call. Not because I wanted to "cash in." But because I wanted the project to survive. The solution wasn't a hard paywall. It was freemium.
- Core functionality remains free
- Power usage is capped
- Advanced features and higher limits are paid
This model wasn't about extracting value it was about aligning it.
The Backlash
Most users understood. Some didn't. One message stood out:
"dont be greedy, this site was free, will go use tacticspecker.com anyway its free"
That message wasn't unique. But it was revealing. It exposed a common misconception: that "free" is a promise, not a moment in time.
Free vs Sustainable
Let's be explicit about the tradeoff:
| Aspect | Free Forever | Freemium |
|---|---|---|
| User Growth | High | Moderate |
| Infra Costs | Unlimited | Controlled |
| Creator Burnout | Likely | Reduced |
| Long-term Survival | Uncertain | Realistic |
Free optimizes for reach. Freemium optimizes for survival. You can't optimize for both indefinitely.
Entitlement Is an Emergent Property
No user wakes up thinking they're entitled. It emerges slowly. Free tools feel like public goods. Creators fade into the background. Maintenance becomes assumed.
Free software often creates entitlement, not gratitude.
This isn't malice. It's human psychology.
"Greed" vs Ownership
Charging for a product you maintain isn't greed. It's ownership. Greed is extracting value without responsibility. This is the opposite.
I still run ChessPecker. I still improve it. I still support free users. Freemium didn't remove generosity it formalized it.
What I'd Do Differently
I don't regret making ChessPecker free. I regret not setting expectations earlier. If I were starting again, I would:
- Communicate limits from day one
- Normalize optional paid tiers early
- Separate "free" from "unbounded"
If you think you might monetize later, design for it early even if pricing is $0.
Lessons for Indie Builders
If you're building a side project:
- Assume success is expensive
- Expect pushback when you set boundaries
- Remember that free users are not customers
- Paid users create alignment, not pressure
Most importantly: your time is part of the system.
Where ChessPecker Goes Next
ChessPecker is still free to use. It's just no longer free to run. The goal isn't profit maximization. It's sustainability, clarity, and respect for users and the builder.
If that means some people leave, that's okay.
Final Thought
Free software is a gift. Not a lifetime guarantee. ChessPecker exists today because it grew up instead of burning out. And that tradeoff, controversial as it is, was necessary.
Growth forces choices. Avoiding them is also a choice.