finds.dev← search

// the find

phoenixframework/phoenix

★ 23,169 · Elixir · MIT · updated Sep 2026

Peace of mind from prototype to production

Phoenix is Elixir's web framework, built on the BEAM's actor model for handling massive concurrent connections without the memory overhead that kills Node or Rails at the same scale. It's for teams who want real-time features (chat, live dashboards, multiplayer) without bolting Redis pub/sub and Socket.io onto a request/response framework that wasn't built for it. LiveView, its flagship feature, lets you build interactive UIs server-side with almost no client JS.

Channels and PubSub are first-class, not an afterthought bolted onto HTTP — a single Phoenix node handles hundreds of thousands of WebSocket connections because the BEAM schedules lightweight processes instead of OS threads. LiveView genuinely changes what you can ship solo: real-time UI with diff-based updates over a persistent socket, no React/Vue build step required. The installer (`phx.new`) generates a project with contexts, Ecto schemas, and test scaffolding already wired sensibly, so you're not assembling a stack from scratch. Hot code reloading and the supervision tree mean a crashing process doesn't take the whole app down, which is a real operational win over a crashed Express handler.

You're adopting Elixir/OTP to get this, and that's a much bigger commitment than picking a framework — the hiring pool is small and the mental model (processes, supervisors, `GenServer`) takes real time to internalize even for experienced backend engineers. LiveView's server-rendered-diff approach means every interaction round-trips to the server; on high-latency connections or for apps that need true offline capability, that's a real constraint, not a style choice. The ecosystem outside HTTP/real-time is thinner than Rails or Django — fewer battle-tested libraries for things like complex reporting, PDF generation, or third-party SaaS integrations, so you'll write more glue code yourself. Deployment is not as turnkey as a Rails/Heroku or Next.js/Vercel setup — releases, clustering, and distributed Erlang config are things you have to understand, even though `phx.gen.release` has closed some of that gap.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →