I Built These Tools Because the Frustration Was Real
Source: Dev.to
Why side projects start with irritation
Most side projects don’t start with inspiration.
They start with irritation—a repeated task.
That’s how all of mine started. Not with a grand plan.
Customizing my terminal was taking way more time than it should.
Editing config files. Something that should take 30 seconds was eating hours.
I wanted:
- one click to apply a theme
- one click to undo it
- zero risk of breaking my setup
So I built TermiCool – simple, fast, reversible terminal theming without the usual pain.
Exporting to PDF was worse. Code lost syntax highlighting. And tabs? PDF has no concept of tabs, so content hidden behind tabs would simply disappear. Half the page gone. That made exports useless for real documentation.
I needed exports that looked like what I actually built—not a flattened, broken version of it.
So I built TreePress.
Now it creates:
- pixel‑faithful exports
- searchable PDFs
- tab‑aware rendering
- proper HTML + Markdown support
- predictable output without manual fixing
No config required.
Every new project meant rebuilding the same Claude Code setup—same files, again. It felt like setup work pretending to be productivity.
So I built CCL.
Now I run one command and get:
CLAUDE.md- subagents
- skills
- security hooks
- project‑aware scaffolding
All generated around the actual codebase, done in seconds.
These weren’t startup ideas. They were problems I got tired of tolerating. They were built in stolen hours: late nights after work.
That’s how most side projects actually happen— not in perfect focus, but in fragments.
Tools at a glance
- If terminal customization feels like a chore → TermiCool
- If your PDF exports destroy what you built → TreePress
- If you keep rebuilding Claude Code setup from scratch → CCL
I built these because the pain was real. Maybe one of them saves you a few hours too.
What repetitive frustration have you been tolerating for too long?
Which one of these feels the most painful to you? I’d love to hear it ↓