I start small: vim, makefile, bare Go with no dependencies. I add things only if they improve the end product from the consumer perspective (either FRs or NFRs).
I even used to deploy things as systemd services, unless containers make things easier to more scalable.
For the frontend I couldn't be happier since I discovered "esbuild", which is written in Go and has unbelievable performance.
> And 1 year later you've finally deployed a registration form.
This made me laugh. What's wrong with tailor-made software? It seems that all we care about nowadays is to "get shit done". I wish this kind of thinking vanishes soon.
Do custom software for personal projects. Not justifying your paycheck. I too have been the sorry sod that was handed a legacy project in a PHP self-rolled framework. I really did contemplate the consequences of my reaction after pouring weeks into the "Easy" solution. My options were to vent my frustration by throwing a brick at someone or drink myself to sleep for two months straight. I chose the latter.
It's extremely hard to justify the value it provides over something more out of the box. From an engineering perspective, it makes sense. From a business perspective, it often doesn't make sense to spend 10x as much money to make users 10% happier. It almost certainly won't cause you to make 10x as much money.
The above user mentioned what‘s wrong with writing everything from scratch, but you chose to conveniently skip it.
Developers stay only for short amount of times compared to the lifetime of the product. New developers inherit all the tech debt, bugs and bad decisions in your custom framework.
I was only speaking about one-man personal projects. In my case, I shipped 3 of them (nullitics, lalatabs and a brand new version of onthesamepage) in 3 months. Depends on the project type and on the person, I guess.
I tried to describe my humble workflow here with a few code snippets: https://zserge.com/posts/go-web-services/