Why I Chose Elixir Phoenix over Rails, Laravel, and Next.js

Phoenix vs Rails/Laravel Capabilities

  • Several commenters say the article understates Rails/Laravel: both have first‑class support for background jobs, websockets, and real‑time (ActiveJob, Sidekiq/Solid Queue, ActionCable/Hotwire; Laravel queues/broadcasting).
  • Others argue Phoenix feels more “integrated”: real‑time, background jobs, PubSub, and process supervision all ride on the same BEAM primitives, with fewer moving parts and less external infrastructure.

LiveView vs Hotwire / Livewire / Next.js

  • Multiple corrections that Hotwire does use websockets or SSE; the difference is architectural, not transport.
  • View: LiveView gives each connected client a stateful BEAM process; ephemeral UI state lives server‑side, reducing client JS and avoiding bolted‑on layers.
  • Counterpoint: this “websocket‑first, stateful web tier” is a real tradeoff:
    • Latency depends on round‑trips; quick mobile interactions and flaky networks can feel rough.
    • You must think about connection lifecycle and state reconnection; browser back button, reconnection delays, and large LiveViews can become problematic.
  • Hotwire is praised for progressive enhancement and working even when websockets drop; Livewire is seen as a simpler, less mature take on the same idea.
  • Some feel Next.js (especially App Router) is over‑complicated, fast‑moving, and brittle for long‑term maintenance, though others defend it as powerful when used well.

Background Jobs: Oban, GenServers, Solid Queue, etc.

  • One camp: BEAM + GenServers mean you often don’t need a “job system”; simple supervised processes or Tasks cover many use cases.
  • Strong rebuttal from production users: use Oban from day one if jobs matter—GenServers lose state on node/pod failure and lack retries. Oban’s simplicity, reliability, and minimal schema are praised; Solid Queue is seen as more complex and less ergonomic.
  • Discussion on clustering with Kubernetes and how BEAM’s “let it crash” model complements, rather than replaces, container orchestration.

Performance, Concurrency, and BEAM Model

  • Many emphasize BEAM’s strengths: lightweight processes, actor model, fault tolerance, soft real‑time behavior, and high connection counts with small resources.
  • Comparisons made to PHP (fibers still need external runtimes), JVM (very capable but heavier), and Node (strong ecosystem but less “batteries‑included” and more infrastructural churn).

Ecosystem, Libraries, DX, and Tooling

  • Some complain Elixir’s ecosystem is smaller and missing certain libraries; others counter that the smaller community “punches above its weight” with high‑quality libs (Ecto, Phoenix, LiveView, Oban, Nx, Livebook, Nerves).
  • DX concerns:
    • A large‑scale Elixir/Phoenix shop reported slow compile times and flaky LSP/autocomplete in a 300k‑LOC codebase.
    • Others with similarly sized apps say compiles are “blazing fast” and suspect circular dependencies or heavy GraphQL setups.
    • LiveView can become unwieldy for very complex UIs, pushing teams back to a React frontend and re‑introducing split‑stack complexity.

Adoption, Hiring, and “Boring vs Exciting” Tech

  • Corporate buyers reportedly hesitate to adopt Elixir; many only recognize JS/Python/C#/Java as “safe” options. Ecosystem size and developer fungibility are major concerns.
  • Suggested strategy: hire strong engineers and teach Elixir rather than filtering for prior experience.
  • Some see Elixir’s “feature complete” status as reduced excitement; others view stability and lack of paradigm churn as a major advantage for long‑lived systems.

Critiques of the Article and Meta Points

  • Several readers feel the article unfairly glosses over what Rails/Laravel already provide and reads like a post‑hoc justification of a preferred stack.
  • The author (in comments) reiterates it was a personal use‑case write‑up, not a general verdict, and acknowledges Rails/Hotwire and Laravel are excellent but argues Phoenix/LiveView felt more seamless and robust for the specific project.