Recent Posts

Articles authored by Elixir School contributors and members of the community.

phoenix liveview

Building Real-Time Features with Phoenix Live View and PubSub

Integrate Phoenix PubSub with LiveView to build real-time features capable of broadcasting updates across a set of clients.

ecto til

TIL Ecto Constraints and Validations

Let's take a look at how Ecto handles these two ways of ensuring data integrity

phoenix til liveview

Walk-Through of Phoenix LiveView

Learn how to use Phoenix LiveView for real-time features without complicated JS frameworks.

otp supervisors

Elixir Supervisor Strategies

Learn the ins and outs of Elixir's 3 supervisor strategies


TIL GenServer's `handle_continue/2`

Support non-blocking, async GenServer initialization callbacks with OTP 21's nifty `handle_continue/2`!

plug deployment heroku

Deploying our `Plug.Router` application to Heroku

Want to put your app in the real world? Today we do it with Heroku!


TIL about `Process.send_after/4`

Want to schedule something to run later? Need a reoccurring task? Today we learn how!

plug software design

Building web apps with Plug.Router

When it comes to building a web application with Elixir many people will immediately reach for Phoenix. However, did you know `Plug.Router` is just as viable an option? Sometimes, it can be even faster.

recursion software design

Understanding Recursion with Elixir

De-mystify the concept of recursion and gain a deeper understanding of how and why to use it by writing our very own recursive function in Elixir.

kafka libraries

Connecting Elixir to Kafka with Kaffe

A codealong to help connect Kafka to your Elixir project with the wrapper Kaffe.

umbrellas testing til

TIL How to Run Tests for One Child App in an Umbrella

Run all of the tests, or just a specific tests, for a given child app in an umbrella application with this handy command.

ecto til

TIL How to Run Ecto Migrations on Production

What to do when you can't use `mix ecto.migrate`

testing logging til

TIL about ExUnit's capture_log option

Capture the output from Logger to clean up your test runs


TIL about `IO.inspect/2`'s `:label` opt

Did you know you could label your output? Neither did we! Check out today's TIL to learn more.

plug auth

JWT Auth in Elixir with Joken

Use Joken and JOSE for a light-weight implementation of JWT Auth in your Elixir web application.


Reviewing Elixircards

Elixircards show us how modern learning tools should work through their Elixir Decks.

ecto software design

A brief guide to Ecto.Multi

Learn how to compose and execute batches of queries using Ecto.Multi.

umbrellas software design

A look at umbrella applications and how they can help us write cleaner maintainable code.

Agnostic Version Management With asdf

Take a dive into flexible version management of Elixir, Erlang, and OTP with `asdf`!

phoenix review

Reviewing Functional Web Development with Elixir, OTP, and Phoenix

Lance Halvorsen shows us how to build our a guessing video game from the ground up using Elixir and OTP. In the end, he shows us how to build a fully working UI experience with Phoenix, Presence and Channels.