That’s basically right. But it’s quite a difference what you have to do to scratch your itch, and what you need to do for it to be useful for others.
If you do it for yourself, there are no tests or documentation or even a GUI. It’s quick and dirty, all configuration is hardcoded. If you need a different config, you’ll just change the code.
All that doesn’t really fly if you expect someone else to use the project.
On the other side, especially if it’s too polished, idiots will perceive the project as being a commercial one and demand that you do what they want.
If you don’t know the stories, maybe read up on the maintainer of core-js or Marcel Bokhorst. These two people complained about how tough it is to make good open source software. Both talked specifically about their toxic audience. So in turn the audience ridiculed them and they even received death threats.
I suppose the thing is, I personally wouldn’t care much if anyone else used it or not, my itch has been scratched. If someone else finds it of use, great! If they need changes, they’ve got the code and can get crackin’ on it themselves. Or, they can pay me to do it if we can agree on a price. Outside of that I have no expectations.
That’s definitely a healthy way of dealing with that.
But with this way, something like Linux, Distros, Firefox, Blender or LibreOffice would have never happened. There are those who want to build retail-level open source software, mostly out of idealism, and then you are stuck between a non-monetizable rock and a toxic hard place.
But I totally agree with you, unless you are super idealistic, your way of handling it is probably the most healthy one and the one that will cause you the least amount of trouble. And it’s also what I do, except when I sometimes do get idealistic.