net/http and REST api all the way down, I for the most part try to stick to the stdlib as much as possible. The few exceptions are logging (I like zerolog) the sql driver, and auth. I do keep the front/backend separation because doing site hosting in S3 with a cloudfront cache is pennies on the dollar (.63 cents a month) and I tend to lean towards using vue.js more these days. I have been known to just serve the html statically directly from go as well, and use go templates in the past, and use minimal jquery where it's needed (I still like jquery :-/, not everything needs to be full-blown SPA-mode)
I've recently decided to drop javascript frontends for a hobby project of mine and just go with bare go templates. Someone hopefully will laugh at it, but it has been a great, productive decision. It's been easy and quick again to slap ugly lists or tables of stuff together.
The entire headache of choosing a web framework, generating a seed of magnificient complexity, wrestling with the javascript build ecosystem, figuring out how to balance state between JS ui components, JS state management, backend state management and databases. Not necessary. Do an SQL query, put that into a neat datastructure and run html templating, followed by <go build>. Maybe add bootstrap for some neat CSS.