I used to. The problem was I aimed at a component that was useful
as a fixed standard (not always changing, upgrading etc). So, you can guess how this story ends...
I accomplished this. But it was by definition a stationary target, and competitors (in this case, open source) largely caught up. But worse, I lost interest, because I was no longer "the only/best in the world" at it.
Success: I not only made enough to live on, I made enough to invest in index funds giving a return that was itself enough to live on, and "retire" (for small values of retire, i.e. a student-level lifestyle - "ramen retirement"). Business began in 2000, able to retire in 2004 or so IIRC. Have lived off the business/investments since then.
lessons learned:
- Automating sales (credit card etc) is a pain to setup, but is helpful for both you and customers. But for my case, about 30% of buyers still needed some contact for the sale (I'm not counting technical help). Sometimes to negotiate on specific issues, sometimes they didn't fit the sales process, maybe sometimes they just wanted reassurance that someone was there.
- I tried to make it too much a business; if I'd stayed truer to my roots, it might have been OK. If you have an open-source version (or, at least, free), it starves off the competition, leaving them with no oxygen to get started, because no one needs it, they get no interest. And everyone's happy, which actually is very important for one's personal happiness too.
- I actually made a lot of money selling to the enterprise; but I hated it. Like, it really really got to me. In one particular sale, there was 5-6 months of negotiation, admin, international tax laws, etc. Ugh. And it all feels dishonest, pointless, and interacting with people who aren't competent because aren't interested and don't care. (the standard story of a developer dealing with business issues). So, you can do it this way, if you keep going up-market. The enterprise likes old stuff, that is trusted, field-tested, known etc.
- turns out I don't enjoy making a fixed standard. There's beauty in it as a business model; but for a technologist, the fun part is making it (and for me, supporting and debugging was also fun). But when it's all done, all working perfectly, it stops being fun. It's a funny old world.
- the underlying factor is that progress marches on. It's good for the world, and it's fun to participate. But not so good for a self-sustaining business with a competitive moat (Warren Buffett likes candy, chewing gum, soft-drink, bricks, furniture etc - stuff that doesn't change fast). You have to keep investing in it - developing new features, new products, new users (analogous to the capital investment required by the cotton mills of Berkshire Hathaway, making them a terrible investment). But this is all OK, if it's fun for you. And it can be.