I have been powering SPA with go backend, and found gorilla mux [0] to be quite reliable for years.
Appears to be faster, but I guess the difference wouldn't be noticeable until you start doing some pretty heavy stuff.
Or if you don't use anything then how migrations are managed in Go?