Look at this graph and consider the emphasis on “top paying”:
“Top paying” for me means that with Elixir and Phoenix LiveView, I can single-handedly implement things that I’d otherwise pay a fortune for one backend developer (PHP or JavaScript) and one frontend developer (React, NextJS, etc.) to do, while also playing project manager / product manager / cat herder between these two minds that constantly have to renegotiate JSON response schemas 🤦
“A penny saved is a penny earned,” etc.
I’ve been puzzled over the backend/frontend “split-brain” situation since I took over the development of a product with two codebases…
Incredible brain scatter when you’re dealing so much with the “contract negotiation” between backend and frontend. And forget about it without TypeScript to create interfaces (without cheating by using “any”). You lose the plot in no time.
Honestly, while NextJS is OK once you get the hang of it, I’m disgusted by the mentality it fosters. I regularly end up with 800+ LoC TSX components that, if I try to further modularize/componentize, I’ll spend more time opening 15 different files and writing types and drilling props (or realing with Zustand) than actually implementing features.
The JS ecosystem has four good things:
- A massive
npm
package library with some trustworthy “golden packages”, such as Leaflet and PDF.js . Phoenix.LiveView.JS
for JavaScript interoperability with Elixir and Phoenix LiveView.- htmx – really great for sprinkling interactivity on otherwise static pages without going full bonkers with a framework.
- PM2 – I run NextJS self-hosted on a VPS across multiple CPU cores.
Beyond that, every JS framework starts with the reactionary mentality of “React is a monstrosity” and a few releases later shifts to the gorilla-beating-on-chest-minded “React killer”… only to soon start creeping toward React’s feature bloat and becoming a moving target just like React; either because it attracts people who fall in love with their abstractions and working on the Shiny New Object / Fad of the Month / Framework of the Future, or because the framework developers raised capital from VCs eyeing Vercel’s pie and salivating.
This is diametrically opposed to the Phoenix LiveView mentality, which has never wavered from its “product vision”. Practically all state resides within the LiveView BEAM VM process, or in GenServers on the server side, and you don’t need to split your brain between two systems.
It’s not just Elixir as a language that matters for the future of getting things done well and frugally, but also the sober, down-to-earth, pragmatic mentality shown by the maintainers of major packages and the team around José Valim in general.
The JS ecosystem is the software version of Deft . Elixir and its ecosystem are the polar opposite of that.
Thank you for coming to my TED Talk. Now back to slinging JSON back and forth, writing types/interfaces, and writing TSX I go!