You’re an experienced Ruby on Rails developer who wants to learn Elixir and Phoenix. You know Ruby inside and out, you’re comfortable with Rails’s architecture, and you’re good at getting things done - so it’s painful to start from scratch.
Elixir looks like Ruby at a glance, but its underlying design is very different. While Ruby is object-oriented, Elixir is a functional language where everything is immutable, there no “objects” or “classes”, and you often need to structure your code completely differently from the equivalent Ruby.
And while Phoenix takes inspiration from Rails, there’s still a learning curve. Some concepts, like “controllers”, “migrations” and the “router”, are familiar to a Rails developer - but others, like Phoenix’s “repo”, “changesets” and “components”, have no direct analogy in Rails. The result: confusion and frustration when you’re not sure how to do something in Phoenix but you know how you’d do it in Rails.
Learning Elixir and Phoenix when you already know Ruby on Rails is like learning Spanish when you already speak Italian. Your existing knowledge gives you a big head-start. You’d be foolish not to make the most of it.
Phoenix on Rails is a 59-lesson tutorial on web development with Phoenix and Elixir that’s specifically tailored towards Ruby on Rails programmers. It teaches you in terms that are easy to understand based on what you already know, explaining everything in an intuitive manner that makes maximum sense to a Rails developer.
Phoenix on Rails is the fastest way to learn Elixir and Phoenix if you already know Ruby on Rails.
Phoenix is a rising star in the world of web development. Built by a former Rails developer, Phoenix takes everything that makes Rails great and improves on it, letting you build feature-rich, maintainable apps at lightning speed.
As Rails uses Ruby, so Phoenix uses Elixir, a functional programming language that runs on the Erlang VM. Erlang is well-known for its scalability, performance and fault-tolerance. Elixir takes the power of Erlang and wraps it a beautiful, elegant, Ruby-like syntax.
Elixir and Phoenix take heavy inspiration from Ruby and Rails, and both are growing rapidly in popularity among Rails developers. Many Rails devs before you have made the switch and not looked back.
Phoenix on Rails is a written tutorial with 59 chapters. Throughout the course you’ll build two fully-featured Phoenix apps that will introduce you to all of Phoenix’s major concepts. You’ll learn how to accomplish all the things that you already know how to do in Rails, and more.
Every sentence of Phoenix on Rails is written with Rails developers in mind. It’ll teach you how each Elixir and Phoenix concept relates to what you already know, explaining where things are similar and where they differ, what has a direct analogy and what’s less familiar. Your existing knowledge will turbo-charge your learning.
Questions? Keep scrolling down, or send an email.
You can try Phoenix on Rails 100% risk-free. Sign up, and if you find the course isn’t for you, send an email within 30 days of purchasing I’ll give you a full refund.
The 59 lessons of the tutorial are divided into four sections:
Part 1 of the tutorial introduces the Elixir language. Phoenix on Rails assumes no prior knowledge of Elixir. It teaches you all the Elixir you need to build a fully-featured Phoenix app.
Some Elixir concepts are easy for a Rubyist to understand. For example, Elixir’s “atoms” are essentially the same as Ruby’s “symbols”. Others, however, are less familiar, such as the distinction between Elixir “lists” and “tuples”, which has no direct analogy in Ruby. Phoenix on Rails takes you through every important Elixir concept, explaining how it relates to what you already know Ruby and how its different.
If you already know Elixir, you might still find Part 1 useful, as it will help you understand how Elixir’s concepts relate to the Ruby concepts you already know.
In Part 2, you’ll scaffold a simple Rails app, with a model, controller and views - then you’ll throw it away and learn how to build a similar (but much better) app in Phoenix.
Some concepts are familiar from Rails, like routers, controllers, and migrations, although they still work slightly differently from what you’re used to. Others are quite different - for example, Phoenix has no “models”, and Phoenix “views” work very differently to Rails views.
Every section ends with a recap that lays out the different concepts that have been introduced, and succinctly explains the differences (and similarities) between Phoenix and Rails (or between Elixir and Ruby.)
This summary makes a handy reference to come back to. Many students have called these recaps one of the most useful sections of the course.
In Part 3, you’ll add more features to the simple app you built in part 2. This is an opportunity to learn about some more advanced concepts, like Phoenix scaffolding, using Erlang libraries in Elixir, Phoenix’s “Plug” library (similar to Rails’s “Rack”), and dependency management with Mix (similar to Bundler and the Gemfile in Rails).
In Part 4 you’ll build a new app from scratch that’s more advanced than the toy app you built in parts 2 and 3.
Along the way you’ll learn how to do even more with Phoenix, including a complete and secure authentication system (with no need a for third-party package like Rails’s Devise), file uploads, advanced features of Phoenix LiveView, and more.
Phoenix on Rails is aimed at developers who already have at least one year’s experience programming in Ruby on Rails. If you don’t know Ruby or Rails, you might still get some value from this course, but it’s not guaranteed.
The current version of the tutorial uses the latest version of everything as of 2023: Elixir 1.14, Phoenix 1.7, and LiveView 0.18.
No. Phoenix on Rails will teach you the Elixir language alongside the Phoenix framework.
Even if you already know Elixir, you might still learn something from the Elixir section of the course, as it will help you understand how Elixir’s concepts relate to the Ruby concepts you already know.
Yes, Phoenix on Rails includes an introduction to LiveView. Both of the applications you’ll build will use LiveView for part of their frontends.
Since Phoenix 1.7, newly-generated Phoenix apps use Tailwind.css for their styling. You don’t have to use Phoenix with Tailwind - it’s easy to, for example, use SASS, LESS, or vanilla CSS instead - but Tailwind is the default.
Tailwind is a simple framework that’s very quick to learn. Phoenix on Rails will teach you how to use Tailwind, and the apps you’ll build use Tailwind for their styling.
Other than general differences in format and writing style, there are two major ways I’d argue that Phoenix on Rails is a better choice than Phoenix for Rails Developers in 2023:
Firstly, Phoenix for Rails Developers teaches Phoenix 1.3, which was released in 2017 and is now very out of date. Phoenix on Rails teaches the latest version of Phoenix, 1.7., and is up to date with all the latest changes to Phoenix, Elixir, and LiveView. (Phoenix for Rails Developers doesn’t mention LiveView at all.)
Secondly, Phoenix for Rails Developers only teaches Phoenix, not Elixir itself. Phoenix on Rails covers more ground as it covers both the Phoenix framework and the Elixir language.
Maybe. Send an email explaining your situation and I’ll see what I can do.
I’d love to hear it! Get in touch on firstname.lastname@example.org.
Still unsure? Enter your email address to access Part 1 of the course for free, forever: