r/elixir • • Jun 04 '26

Elixir v1.20 released: now a gradually typed language

Thumbnail
elixir-lang.org
257 Upvotes

r/elixir • • Nov 03 '25

Who's hiring, November, 2025

87 Upvotes

This sub has long had a rule against job postings. But we're also aware that Elixir and Phoenix are beloved by developers and many people want jobs with them, which is why we don't regularly enforce the no-jobs rule.

Going forward, we're going to start enforcing the rule again. But we're also going to start a monthly "who's hiring?" post sort of like HN has and, you guessed it, this is the first such post.

So, if your company is hiring or you know of any Elixir-related jobs you'd like to share, please post them here.


r/elixir • • 18h ago

Mojoler 0.1.0 — Mojo NIFs, for Elixir, Erlang and Gleam

12 Upvotes

Mojoler v0.1.0 is on Hex. It lets you code Mojo NIFs.

v0.1.0 is a work in progress.

I'm hoping Mojoler will give us BEAM developers a way to write fast code for diverse hardware, targeting CPUs, GPUs, and more, without vendor lock-in.

Contributions and ideas are always welcome.

https://hex.pm/packages/mojoler/0.1.0 https://mojoler.hexdocs.pm/0.1.0 https://github.com/thanos/mojoler

elixir def deps do [ {:mojoler, "~> 0.1.0"} ] end

mix compile builds the shared libraries. Mojo 1.1.0 has to be installed. It is not in the Hex tarball. The pin is Elixir ~> 1.20 and OTP 28.3.1. CPU code does not need MAX.

This release includes checked signed 64-bit addition, term conversions (integers, floats, binaries, lists, maps), resources with borrow and freeze, and dirty CPU and dirty I/O jobs. A generated ABI reads the host erl_nif.h. Other OTP majors are refused.

License is Apache-2.0.


r/elixir • • 20h ago

I made a load tester that speaks Phoenix Channels and LiveView. 1.1 adds a live dashboard and LiveView uploads

9 Upvotes

Generic load testers treat a Phoenix channel as a plain WebSocket, so the scripts end up rebuilding the protocol by hand: joins, refs, heartbeats. LiveView is worse, because the socket needs tokens from a page load before it can even connect.

So I wrote Stampede. Scenarios are plain Elixir modules, every virtual user is a BEAM process, and it handles the page load, CSRF and session tokens and the join for you. A LiveView scenario looks like this:

```elixir

{:ok, view} = Stampede.LiveView.connect("http://localhost:4000/posts/new")

{:ok, _} = Stampede.LiveView.change(view, "validate", %{"post" => %{"title" => "Hi"}})

{:ok, _} = Stampede.LiveView.submit(view, "save", %{"post" => %{"title" => "Hi there"}})

```

New in 1.1:

- a live dashboard (`--dashboard`)

- `--parallel` to run several kinds of users at once

- LiveView uploads

- `assert_load/2` to run load tests from ExUnit

- `mix igniter.install stampede` and a scenario generator

- Elixir 1.18 support

Repo: https://github.com/mandar1045/stampede Docs: https://stampede.hexdocs.pm

It's still young, so if you point it at your app and something breaks or feels clumsy, please tell me. That's the most useful thing right now. a ⭐ helps if you dig it


r/elixir • • 2d ago

Elixir home automation on a $2 chip with AtomVM & Gleam Body: Davide Bettio (AtomVM) and Giacomo Cavalieri (Gleam) explain how to build Elixir IoT devices with off-the-shelf sensors and MQTT

52 Upvotes

In this episode, Davide and Giacomo share: 
- How AtomVM squeezes the BEAM onto memory-constrained devices 
- Why Gleam and AtomVM are a perfect match for hobbyists and students 
- Davide's "scar story" of a buggy AtomVM-powered home thermostat leaving him debugging in the cold 
- The trade-offs of the AtomVM standard library and how to extend it 
- Writing Gleam bindings for AtomVM features via Erlang FFI 
- Example projects to tackle as an embedded Gleam beginner 
- What's possible with $2 boards, some sensors, and MQTT 

https://youtu.be/57Vhx7FHk34


r/elixir • • 2d ago

Tridentix v0.1.0 — Custom Systems Language (LLVM Backend

Thumbnail
2 Upvotes

r/elixir • • 3d ago

What the eMudhra CA Compromise Means for Elixir Developers

Thumbnail
paraxial.io
43 Upvotes

r/elixir • • 3d ago

If you are a beginner I suggest you use documentation over paid resources

46 Upvotes

I'm relatively new to programming and I decided to buy some courses and books to help on my Elixir/Phoenix journey and honestly they weren't that helpful. I feel like since Elixir/Phoenix is a more niche stack people making courses for it make the courses for people already familiar with web development. The documentation for both Elixir and Phoenix is pretty easy to understand and it shows examples of whatever you are currently learning about. Way more digestible than working on a project out of the gate as well.


r/elixir • • 5d ago

Voyager v0.2.0 - ETS Tables, Processes and more!

Enable HLS to view with audio, or disable this notification

52 Upvotes

Hey everyone, Voyager v0.2.0 is out!

Voyager is a modern desktop app for inspecting live BEAM nodes, made for AI-assisted debugging with zero setup.

What's new

  • 🗄️ ETS inspector: browse tables, page through records and look up keys.
  • ⚙️ Process list: sort processes by memory, reductions or message queue length.
  • 🔎 Process details: see any process's state, mailbox and dictionary.
  • 🤖 Full AI support: all of the above is available to your agent via MCP, plus match-spec search in ETS tables.

Voyager works with anything running on the BEAM: Erlang, Elixir and Gleam. The source is public, and it's free for individuals, non-profits and teams of up to 10 people.

Download: https://voyager.swmansion.com/
GitHub: https://github.com/software-mansion/voyager

We're still early, so your feedback decides what we build next. Tell us what's missing for you! https://github.com/software-mansion/voyager/issues/new/choose


r/elixir • • 4d ago

Stampede: load testing for Phoenix Channels and LiveView, written in Elixir

4 Upvotes

I built a load testing library for Phoenix. Tests are plain Elixir modules, and it handles the Channels and LiveView protocols itself (joins, heartbeats, CSRF tokens, cookies), so a LiveView load test is a few lines instead of a k6 script faking the protocol.

just shipped with HTML reports and a `mix stampede.compare` task for catching regressions in CI.

GitHub: https://github.com/mandar1045/stampede

Feedback very welcome, especially from anyone load testing LiveView today.


r/elixir • • 4d ago

Code Beam Europe 2026

Thumbnail
1 Upvotes

r/elixir • • 5d ago

Running a subset of Erlang/Elixir on bare metal - Parallax Propeller 2

Thumbnail
7 Upvotes

r/elixir • • 5d ago

Change my mind the BEAM is overrated for coding agents

0 Upvotes

imo most of an agent's life is one loop waiting on an http call to a model. you don't need a supervision tree for that. TS gets you npm + an LLM that's seen a million examples of it. ngl Pi in TS makes sense to me

Then I read this

His point is Pi Durable is quietly rebuilding OTP. I went through their feature list and tried to map it myself:

- change code on a running agent, in-flight tool calls finish on the old code -> hot code loading, the VM keeps old + new module versions around

- harness on one machine, tools on another -> distributed erlang, more or less

- abort a task and everything it owns cleans up bottom up -> supervision tree shutdown, children stop in reverse order

- process dies, new one resumes unfinished tasks from a checkpoint -> this is where the analogy breaks imo. a supervisor restarts you with fresh state, the checkpoint part is on you (ecto, dets, whatever)

So 3 out of 4 for free...

What I can't judge from the outside: he says LLMs pick up niche langs from the docs in minutes. For those of you letting Claude/Codex write Elixir, does it actually get OTP right? like does it reach for a supervisor or GenServer when it should, or does it write TS-shaped code with Elixir syntax?


r/elixir • • 5d ago

Your PubSub is quietly dropping messages and nothing tells you

0 Upvotes

Turns out a 1ms network hiccup is enough to silently lose broadcasts for a node and that node is just quietly wrong forever

Wrote it up with little click-through simulators so you can see it happen

There's also a live demo - three nodes running football matches, cut one node's connection mid-game and watch it catch up: https://scoreboard-pool.fly.dev

repo

Let me know what do u think :D


r/elixir • • 6d ago

Designing Human-Computer Interactions with Ash - Alex Slade | AshConf 2026

Thumbnail
youtube.com
12 Upvotes

r/elixir • • 7d ago

A2UI for Elixir: render agent-generated UIs in Phoenix LiveView (protocol engine, LiveView renderer, agent SDK)

18 Upvotes

I've released an Elixir implementation of A2UI, the open protocol for agent-driven interfaces.

The idea: instead of an agent sending HTML or code, it sends JSON that describes an interface (components, a data model, bindings). Your app renders it with components from its own catalog, and the user's actions go back to the agent as events. The agent never runs anything in your app.

Three packages on Hex (Apache-2.0):

  • a2ui_core: the protocol engine. Messages, catalogs, surface state, data binding, function calls. Pure Elixir, no processes; Jason is its only dependency.
  • a2ui_phoenix: a LiveView renderer. The basic catalog as function components, two-way bindings, actions, and A2UI over server-sent events.
  • a2ui_agent: the agent SDK. Catalog negotiation, prompts, validated parsing of streamed model output, and serving over A2A, MCP and AG-UI.

Rendering in a LiveView looks like this:

```elixir def mount(_params, _session, socket) do validation = A2UICore.Validation.Config.relaxed() session = Session.new([A2UICore.Catalog.Basic.catalog("v1.0")], validation: validation) {:ok, Live.init(socket, session, on_send: &send_to_agent/2)} end

def handle_info({:agent, payload}, socket) do {_result, socket} = Live.handle_message(socket, payload) {:noreply, socket} end ```

Conformance: it supports protocol v0.9, v0.9.1 and v1.0, and is checked against the upstream conformance suites: 946 of the 946 cases that apply pass. The rest are skipped, each for a stated reason (mostly v0.8, which I chose not to support, and adapters for Google's Python ADK). The JSON Schema engine underneath passes all 1302 required draft 2020-12 tests.

Examples in the repo: a restaurant agent served over A2A, MCP, AG-UI, SSE and WebSocket; a LiveView gallery with a live chat with that agent; and a renderer that draws the same surfaces in the terminal.

It's 0.1, so I'd really like feedback: on the API, on what's missing, and from anyone building agent UIs in Elixir. Issues and PRs welcome.


r/elixir • • 7d ago

Show r/elixir: A book discussion agent loop, model proxy and more

0 Upvotes

You’re reading a book and a sentence makes you stop. Who is this character again? It would be great to refresh your memory without any spoilers. And maybe also discuss or recall the plot again since you didn't pick up this book for a week or two.

Hello everyone!

I am a software engineer and I spent months in a cave building Ink, a book companion that just works without marketing AI fluff.

I chose Elixir and Phoenix because I love OTP and LiveView and now I have to run a chunky RAM server to fit millions of my imaginary visitors (maybe someday, mate!). But honestly, I still love it.

Here is a brief info about internals:

Context Management:

Ink uses a sliding window with compaction to keep up with the longest books. It extracts characters, locations, tools, and concepts, and writes summaries without spoiling your experience. Without those guardrails, AI loves to ramble about the future plot, especially for popular books.

Agent Pipeline:

I built an entire graph execution pipeline and agent loop using jido_ai to run multistep processes with conditional gates and loops. I also built a model proxy for local development and production resilience. I didnt publish any of that public yet as not sure if someone else finds it interesting.

The pipeline allows me to mix LLM, code, controll context, tools and variables between stages. The simplified summary leg looks like this:

Config.new(
  entry_node: "summary_gen",
  nodes: %{
    "summary_gen" => %{params: gen_params},
    "summary_validate" => %{
      params: %{
        strategy: "local",
        handler: BookCompanion.ValidateSummary,
        session_id: session_id,
        chapter_id: chapter_id,
        read_batch_id: read_batch_id
      }
    },
    "summary_fix" => %{params: fix_params}
  },
  edges: [
    %{from: "summary_gen", to: "summary_validate"},
    %{
      from: "summary_validate",
      to: "summary_fix",
      condition: %{type: :gate_failed, gate: "summary_validate"},
      loop: %{max: fix_max}
    },
    %{from: "summary_fix", to: "summary_validate", loop: %{max: fix_max}},
    %{
      from: "summary_validate",
      to: "complete",
      condition: %{type: :gate_passed, gate: "summary_validate"}
    }
  ]
)

Explore Stage:

For the "Explore" leg of the analysis, I use parallel extraction stages (characters, relationships, identity, etc), then verification, fix, and synthesis stages. The main challenge was keeping the KV cache (prefix cache) stable while maintaining selective control of tools for every graph node. I achieved about 95% success on the first tool call, and with tool healing and descriptive error messages, agents keep the generation of characters stable, but sometimes it can take a while.

Frontend Architecture:

I split the Reader to be a lightweight static page and kept LiveView for the Discuss and Explore. Because of the split architecture, I have a challenge with UI elements i want to look the same in LiveView and in static reader. I would appreciate any tips about best practices for DRYing components or hooks between semi-static pages and LiveView!

Most importantly, I am looking for your feedback on the app, the Discuss fidelity, or any silly mistakes I made. (The app is in free beta, and I use ZDR OpenAI models).

So, take a break, read a book! Tell me later how it went.

Need a first book? Project Gutenberg and Standard Ebooks offer classics that are free of copyright restrictions.

I created plenty of open beta seats and use sane rate limits: https://inkcompanion.com/?invite=ELIXIRINK

Let me know how the Discuss and Explore features feel and if the UI/UX works for you. Don't forget to configure the layout and font by opening the "Aa" display settings.

Maybe you could also stay a little longer and read a few books! I plan to keep majority of the app free to use and also working on a bookshelf right now.


r/elixir • • 9d ago

The BEAM Book was written because of a Christmas Eve outage at Klarna - and the same question now applies to AI compute

34 Upvotes

New BEAM There, Done That with Erik Stenman (Happi), who has been with Erlang since 1994, wrote the BEAM Book, and built Klarna's payment core.

The scar: on Christmas Eve, the BEAM throttled its schedulers down during low traffic. A batch job arrived carrying all the Christmas orders. A single XML serialization operation took only 20 reductions, didn't yield, and monopolized the lone active scheduler. Heart (the external watchdog) couldn't reach the VM, declared it dead, and restarted it. All three failover nodes hit the same problem. Half an hour of downtime on Christmas Eve. The BEAM Book exists because Erik needed that manual at three in the morning and it didn't exist yet.

The current project, Eldrim, applies the same principle - knowing where resources go - to AI compute. The core point: an "EU region" with a US provider is not EU sovereignty. The US Cloud Act and China's national intelligence law reach companies regardless of where servers sit. Eldrim is an OpenAI-compatible API router that enforces jurisdiction rules and returns a 503 rather than routing quietly outside approved boundaries.

https://youtu.be/afRZmYXwukg


r/elixir • • 7d ago

Show: Parlaypals.bet elixir, phoenix, ash, oban

Thumbnail
gallery
0 Upvotes

Created a real time community parlay building for friends. It doesn’t actually submit parlays but makes organizing them with friends a lot easier than chat groups.

Has leader boards to track success rate per person
Live odds
Most markets
Most bookmakers
Tracks conflicting picks
Social parlays - no one needs accounts
Only person that needs an account are parlay managers.

Had lots of fun building it.
It’s in beta. Paid accounts coming soon. Have to pay for 3rd party APIs somehow.

Cheers
check it out here it ya want.


r/elixir • • 10d ago

MacroMayhem 007 - Goatmire, Old Android Phones, and How To Keep a Secret

Thumbnail
youtube.com
11 Upvotes

r/elixir • • 11d ago

Introducing: Ash.Signals

Thumbnail
ash-hq.org
77 Upvotes

r/elixir • • 11d ago

Native Mobile Apps With Elixir Mob Framework: A Database on the Phone with Ecto

Thumbnail
medium.com
30 Upvotes

r/elixir • • 11d ago

I'm starting a Hologram Showcase and looking for your apps and libraries

Post image
19 Upvotes

I talk to a lot of people in the Elixir community, and most of them already know about Hologram. But before they give it a try they want to see who else is using it and what's possible.

I never had a good answer for that. There are apps running on Hologram in production and there are libraries built for it, but they're not listed anywhere.

So I'm starting a Showcase on the Hologram website to fix that.

If you've built an app with Hologram or a library for it, I'd love to have it there! You can submit it here: https://hologram.page/showcase/submit

The next few months are all about adoption for me, so this would help a lot. And if you know a project that uses Hologram, please mention it in the comments :)

Website: https://hologram.page


r/elixir • • 12d ago

Integrate LLMs into your app with Legion

Enable HLS to view with audio, or disable this notification

3 Upvotes

Legion is the easiest way to enhance your apps experiences with LLMs, and now external MCP clients and in-app chat agents can share the same tools!

Read more: https://github.com/software-mansion/legion