Maintenance
Elixir helps developers write clear and purposeful code that focuses on your data and your domain. Thanks to immutability and memory safety, you can build systems that recover from failures and are easy to maintain.
Happening soon: Elixir Conf EU (22 - 24 April 2026). Get your ticket here!
Code as data transformations
"hello world"
|> String.split()
|> Enum.map(&String.capitalize/1)
|> Enum.join(" ")
#=> "Hello World"
Elixir helps developers write clear and purposeful code that focuses on your data and your domain. Thanks to immutability and memory safety, you can build systems that recover from failures and are easy to maintain.
A single Elixir codebase can scale vertically (on multi-core machines) and horizontally (communicating across nodes), excelling at message-oriented and web real-time systems. Combined with projects like [Numerical Elixir], Elixir scales across cores, clusters, and GPUs.
Voted one of the world's most admired languages several years in a row.
Elixir ships with a package manager, code formatter, and best in class documentation. Projects like IEx (interactive shell) and Livebook (interactive notebooks) enable rapid prototyping and live-debugging of running systems.
Elixir is used by solopreneurs and Fortune 500 companies alike, supporting teams that value developer happiness as well as large-scale operations, across diverse industries and applications.
“Phoenix allows us to build the future with confidence — systems that grow, adapt, and never slow down.”
John Doe, CEO of Phoenix
“Nerves allows us to build the future with confidence — systems that grow, adapt, and never slow down.”
John Doe, CEO of Company
“Nx allows us to build the future with confidence — systems that grow, adapt, and never slow down.”
John Doe, CEO of Company
“Broadway allows us to build the future with confidence — systems that grow, adapt, and never slow down.”
John Doe, CEO of Company
“Broadway allows us to build the future with confidence — systems that grow, adapt, and never slow down.”
John Doe, CEO of Company
The ecosystem grows every day. Explore thousands of community packages on Hex and find the tools for your next project.
current_process = self()
# Spawn an Elixir process (not an operating system one!)
spawn_link(fn ->
send(current_process, {:msg, "hello world"})
end)
# Block until the message is received
receive do
{:msg, contents} -> IO.puts(contents)
end current_process = self()
# Spawn an Elixir process (not an operating system one!)
spawn_link(fn ->
send(current_process, {:msg, "hello world"})
end)
# Block until the message is received
receive do
{:msg, contents} -> IO.puts(contents)
end current_process = self()
# Spawn an Elixir process (not an operating system one!)
spawn_link(fn ->
send(current_process, {:msg, "hello world"})
end)
# Block until the message is received
receive do
{:msg, contents} -> IO.puts(contents)
end current_process = self()
# Spawn an Elixir process (not an operating system one!)
spawn_link(fn ->
send(current_process, {:msg, "hello world"})
end)
# Block until the message is received
receive do
{:msg, contents} -> IO.puts(contents)
end current_process = self()
# Spawn an Elixir process (not an operating system one!)
spawn_link(fn ->
send(current_process, {:msg, "hello world"})
end)
# Block until the message is received
receive do
{:msg, contents} -> IO.puts(contents)
end
Elixir is shaped by the contributions of many. The Elixir Team steers the language and the Erlang Ecosystem Foundation supports Elixir and the broader Erlang community.
A collective of companies that employ developers to work full-time on ecosystem tooling.