As a developer I have to solve specific problem first, and not overgeneralise from the beginning.
Generalisation comes after. It comes when I need to solve another specific problem but my current code base does't handle that easily enough, so I need to generalise.
The code grows organically, with more and more specific problem it can solve easily, and less and less modification are needed to cover other similar problems.
On the other hand,
What is code for the developer translate to business for the startup.
What is problem for the developer translate to customer for the startup.
Don't overgeneralise, make your first customer happy and when you find the second one improve the business so he can be happy too.
Your business grows organically, and at some point, it is general enough and satisfy more and more customer with less and less work.