or dont even write a SPA. Send hypermedia from your backend language/framework, use HTMX + Alpine or Datastar, and call it a day.
I’ve been experimenting with HTMX and it feels so much simpler.