I find a go backend with a bit of ajax goes a long way - it's easier to reason about than all the moving parts included here, but perhaps if you're building a complex website the tradeoff is worth it? If you use ajax almost all your logic is on the backend, so it should be easier to keep track of the code.