SPA-like user experience with back end only: Phoenix.LiveView:
youtube.com
youtube.com
Part of the current impl doesn't seem like it is going to scale as the DOM in a page gets larger and larger: he mentions that right now they are sending the full rendered HTML from the server to the client on every update, then doing the diff client-side. They are looking at optimizations, hopefully sending diffs from the server is one of them.