Welcome to Elixir School!

Elixir School is the premier destination for people looking to learn and master the Elixir programming language. Whether you’re a seasoned veteran or this is your first time, you’ll find what you need in lessons and auxiliary resources.

Through the hard work of volunteers Elixir School has been translated to many languages. Some of these translations include: Việt ngữ, 简体中文, 繁體中文, Español, Slovenčina, 日本語, Polski, Português, Русский, Bahasa Indonesia, Bahasa Melayu, Українською, 한국어, Italiano, Deutsch, বাংলা, Türkçe, ภาษาไทย, and Ελληνικά.

We welcome and encourage you to join us in continuing to make Elixir School great by getting involved at elixirschool/elixirschool!

Why Elixir?

Discover why Elixir's popularity has skyrocketed and new companies adopt it daily.

Functional Programming

By focusing on breaking problems down into simple side-effect free functions we can ensure fewer bugs, better test coverage, while incrementally building our solutions through the composition of well tested functions.

Learn More

Feature Packed

Built on the back of a giant, the Erlang runtime system, Elixir takes things even further with easy extensibility, compatibility with Erlang and other BEAM languages, and an ever expanding collection of libraries and packages to improve developer happiness.

Learn More

Vibrant Ecosystem

With dozens of conferences, hundreds of meetups, Slack, IRC, Discord, and multiple active hashtags.

Learn More

By The Numbers

Still not convinced? Here are some numbers that demonstrate Elixir's growth and reach.

100+
Conferences

See Them Here

6 Podcasts
(& Counting)

See Them Here

25 Languages
With Lesson
Translations

See Them Here

600+ Companies
Using Elixir

See Them Here

13,000+ Packages
On Hex

See Them Here

Recent Posts

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

ecto

TIL: Cleaner queries with Ecto `map`

Today I learned how to write cleaner `Ecto` select queries with the help of `Ecto.Query.map`.

announcement

Validating Accessibility and HTML with Rocket Validator

Learn how we're checking and monitoring the new Elixir School site to detect and fix accessibility and HTML issues using Rocket Validator.

announcement

Learning Elixir with others - The Elixir Book Club

Enjoy reading your favorite Elixir books with a group of other Alchemists, introducing the Elixir Book Club.

general

Clean Control Flow in Elixir with Pattern Matching and Immutability

Learn how to use pattern matching instead of guard clauses to implement really clean control flow in Elixir.

liveview libraries

Real-Time SVG Charts with Contex and LiveView

Learn how to use the Contex package to render server-side SVG charts that you can update in real-time with LiveView.

phoenix telemetry instrumenting

Instrumenting Phoenix with Telemetry Part IV: Erlang VM Measurements with `telemetry_poller`

In this series, we're instrumenting a Phoenix app and sending metrics to StatsD with the help of Elixir and Erlang's Telemetry offerings. In Part III we'll incorporate Erlang's `telemetry_poller` library into our Phoenix app so that we can observe and report on Erlang VM Telemetry events.

Want to learn more?

We have articles spanning several topics