It’s not easy to balance new features vs paying technical debt. I see building software like buying a house.
Very few young people can wait long enough to buy a house in cash - they need a mortgage.
Very few young companies can afford wait long enough to build perfect software so they need to borrow some technical debt.
Just like your mortgage, you need to pay back technical debt even though you’d like to spend your money (or ressources) elsewhere.
The alternatives are selling licenses, selling ads, selling support or selling services. The problem with licenses is that they are not recurring so you have to come up with new stuff all the time to sell more, especially to existing customers. Selling support works fairly well for open source. Services don’t scale when you need twice the staff to double your sales.