I embrace the 10x rewrite technique acknowledging the fact software development is hard.
First I make a component work. Then make it with work together with the other components. Then refactor them all to look uniform. Then create the generators to make future components look uniform. Then employ them in real life scenarios. Another refactoring is coming after 2-3 projects.
Then a first stable version is coming. At the seventh rewrite.
I had to admit I’ve managed only a few times to reach a level above seven. That’s a fantastic feeeling. You know you have a rock solid foundation and anything you build upon it just lasts.