If you want an all-in-one, which it sounds like you do, I'd look into something like Nuxt and VueJS 3[1]
If you don't mind separating them out (which lets you use different tools for your web tier and your middle tier) I'd probably use a combination of a static page driven by VueJS on the frontend and Golang on the backend for the API.