Phoenix + Elixir
Curated learning path for a developer with 5+ years experience picking up Elixir and Phoenix.
The Learning Path
The consensus is: learn Elixir first, then Phoenix. Phoenix leans heavily on OTP, pattern matching, and the process model - you'll fight the framework if you skip the language. Budget ~2 weeks on Elixir fundamentals before touching Phoenix.
Elixir (the language)
Books
- Elixir in Action, 3rd Edition (Saša Jurić, 2024) - the gold standard. Covers the language, OTP, concurrency, fault-tolerance, and distributed systems. Written for devs with production experience in other languages. Print purchase includes free eBook. Manning | Amazon
- Programming Elixir >= 1.6 (Dave Thomas) - solid alternative, lighter on OTP but great for getting productive fast. Targets Elixir 1.6+, still relevant for fundamentals. PragProg | Amazon
- Testing Elixir (Andrea Leopardi & Jeffrey Matthias, 2021) - covers unit tests, integration testing, OTP testing, Ecto, Phoenix, and property-based testing with StreamData. 262 pages. Targets Elixir 1.8+/Phoenix 1.3+ so API details may need checking, but the testing patterns and philosophy are still solid. PragProg
Official Resources
- Elixir Getting Started Guide - surprisingly good for experienced devs. Skip the "what is a variable" parts, focus on the concurrency chapters.
- Elixir Learning Resources Page - official curated list of books, courses, and screencasts.
- HexDocs - Elixir - API reference and guides.
Talks
- The Soul of Erlang and Elixir (Saša Jurić) - essential talk for understanding why Elixir's concurrency model matters. Demonstrates the BEAM VM's process model and fault tolerance in a visceral way. YouTube
Courses
- Pattern Matching (Mark Ericksen / Thinking Elixir) - free, 20+ lessons across 3 modules. Covers pattern matching across data types, function declarations, and guard clauses. Includes TDD exercises. A great focused drill on the concept that makes Elixir click. Course Link
Phoenix (the framework)
Books
- Programming Phoenix 1.4 (Chris McCord, José Valim, Bruce Tate) - written by Phoenix's creator, Elixir's creator, and a seasoned technical author. The definitive guide. PragProg | Amazon
Official Resources
- Phoenix Overview - architecture, request lifecycle, MVC patterns. Familiar if you've used Rails or Django.
- Phoenix Up and Running - quickstart. As of 1.8.5 there's a one-liner:
curl https://new.phoenixframework.org/myapp | sh - Phoenix Guides on HexDocs - comprehensive. Routing, controllers, contexts, Ecto, channels, deployment.
Video Courses
- Pragmatic Studio - three Elixir/Phoenix courses: Elixir & OTP, Full-Stack Phoenix (58 guided exercises), and LiveView. Highly regarded, structured, paid.
- Alchemist Camp (free) - largest collection of free Elixir/Phoenix screencasts. Project-focused, assumes web dev experience.
LiveView (the killer feature)
LiveView is Phoenix's real-time, server-rendered interactive UI library - no custom JS needed. This is probably why you're looking at Phoenix in the first place.
Books & Courses
- Programming Phoenix LiveView (Sophie DeBenedetto & Bruce Tate) - the definitive LiveView book. Was PragProg's #3 bestseller in 2024. PragProg
- Testing LiveView (German Velasco) - free video course, 16 topics covering testing rendering, interactions, forms, async assigns, LiveComponents, file uploads, JS hooks. Assumes existing LiveView knowledge. testingliveview.com
- Phoenix LiveView HexDocs - official docs.
Articles
- Fly.io Phoenix Files - Fly.io's dedicated Phoenix/LiveView blog. Deep technical articles on real-world patterns. Active through 2026.
- Example: Saving and Restoring LiveView State (Mark Ericksen) - using sessionStorage to persist LiveView state client-side with Phoenix's built-in encryption.
Community + Staying Current
- Elixir Forum - the main community hub. Active, welcoming, core team participates.
- Elixir Hub - curated book/resource lists.
- Thinking Elixir Podcast - weekly podcast covering the ecosystem.
- ElixirConf talks on YouTube - conference talks, good for deep dives.
Tips
- Elixir v1.19 adds
mix help app:phoenix- lists all modules in a Phoenix app alongside their doc summaries. Handy for navigating an unfamiliar codebase. iex -S mix phx.serverstarts the server with an interactive shell - great for poking at things live.
Quick Reference
# Install Elixir (macOS)
brew install elixir
# Install Phoenix generator
mix archive.install hex phx_new
# Create a new Phoenix app
mix phx.new myapp
# Or the new one-liner (Phoenix 1.8+)
curl https://new.phoenixframework.org/myapp | sh
# Start the server
cd myapp
mix deps.get
mix ecto.create
mix phx.server
# Start with interactive shell
iex -S mix phx.server
# List all modules in a Phoenix app (Elixir 1.19+)
mix help app:phoenix
What Makes Phoenix Click for Experienced Devs
- Functional MVC - if you know Rails/Django, the structure is familiar, but everything is immutable and pattern-matched
- OTP/GenServer - the concurrency model is the real unlock. Understand this and Phoenix makes total sense
- Ecto - the database layer. Not an ORM - it's a query DSL with changesets for validation. Explicit > magic
- Channels + LiveView - real-time built into the framework, not bolted on
- Fault tolerance - supervisors restart crashed processes automatically. "Let it crash" is a feature, not a bug