My bet is LiveView will become the king of the fast prototype. It doesn't do SPA, but it does damn near everything else with ease and so few lines of code.
I wonder how this copes with long-running pages. What happens if the server is updated and the minimal update format changes?
I have no experience doing this, but Erlang and Elixir do support hot upgrades.