Elixir is great! BEAM and friends is amazing.

I think Elixir/Phoenix could use a little bit of Javascript (and modern PHP) enthusiasm to help with adoption - this all seems a bit…dry.

Personally I want to move away from JavaScript and its ecosystem. There is https://hexdocs.pm/phoenix_live_view/js-interop.html though. For the record, Phoenix does use JavaScript for its "LiveView"[1], but I think it is optional? At least I remember someone telling me this when I was complaining that generating a basic Phoenix project (using "mix") is too bloated due to JavaScript and such.

[1]

  [...]
  ./deps/phoenix_live_view/assets/js/phoenix_live_view/view_hook.js
  ./deps/phoenix_live_reload/priv/static/phoenix_live_reload.js
  ./assets/package-lock.json
  ./assets/vendor/topbar.js
  ./assets/js
  ./assets/js/app.js
  [...]
Phoenix LiveView uses JS because the core of the tech requires the server to compute diffs & the client to patch the DOM accordingly. This is why a JS package is needed alongside the other default package from Phoenix, which brings Phoenix Sockets & Channels capability (which builds on top of transports such as Websocket).

Previously have seen: https://github.com/patrick-steele-idem/morphdom

Can check: https://www.npmjs.com/package/phoenix_live_view