Every tool I’ve built has faced the same gravitational pull: do more. Add the integration, the dashboard, the second mode, the settings screen for the settings screen. The requests are always reasonable in isolation. It’s the sum that quietly ruins things.
A tool that does one thing can be held entirely in your head. You know what it’s for, you know its edges, you trust it not to surprise you. The moment it does two things, you have to start remembering which mode you’re in, and the cognitive cost lands on every single use forever after.
Saying no is a design skill, not a personality trait.
Saying no is a design skill, not a personality trait. It means having a sharp enough sense of what a tool is for that you can tell a good feature from a merely plausible one. Most features are plausible. Very few are good.
The tools I still use years later are almost all small. They didn’t grow into platforms. They stayed exactly what they were, did it well, and earned a permanent place precisely because they never asked me to relearn them.