The reading order
-
1.
Elixir's Concurrency Model Is the One You Actually Want
The foundation: processes, supervision, and why the concurrency model other stacks fake with queues and retries is the default here.
-
2.
Elixir's BEAM Is the Runtime AI Agents Want
Agents are long-running, stateful, failure-prone processes — exactly the workload the BEAM was designed for four decades ago.
-
3.
Why We'd Pick Elixir for an AI Startup Backend
An AI backend is agents holding a session for seconds or for hours, token streams pushing model output to a live UI, six flaky tool calls per turn, and durable multi-step jobs — the property Python and Node concurrency are weakest at. The costs stated plainly: the model and ML layer is still Python's, the hiring pool is smaller, and mostly-stateless CRUD over a hosted model API buys you little.
-
4.
Why Every AI Agent Framework Is Written in Go (And What That Costs You)
The steelman: why every agent framework picked Go, and the supervision, hot-code, and state-recovery costs hiding in that choice.
-
5.
Elixir Is the Language AI Codes Best
Pattern matching, immutability, and a small surface area — why LLMs generate better Elixir than Python or TypeScript.
-
6.
TDD With Claude Code in Elixir: What Holds Up
Three tests in this repo, three different answers to "is this safe concurrently" — and marking a new test async: true without checking is the ExUnit mistake an agent makes unprompted. The argument: mix precommit, compile --warnings-as-errors plus the full suite, is the instruction Claude actually follows, and the Oban idempotency test gets written before the job body, because an agent generating job code from a prompt has no way to know retries are in play.
-
7.
Ruby Isn't Dead, It Got Boring — And Boring Is Why It Ships
The counterweight: boring is a feature. If the team knows Rails, the right AI stack might be the one that ships this quarter.
-
8.
What Together AI's $800M Round Says About Elixir
Together AI's $800M Series C at an $8.3B post-money valuation, read off the Greenhouse listing instead of the press release: authentication flows including SSO and OAuth, organizations, projects, API keys, and role-based access controls, on Elixir/Phoenix services. Elixir sits at 2.7% of respondents in the 2025 Stack Overflow Developer Survey — raw adoption share answers the wrong question.
-
9.
Build an AI Agent Loop in 50 Lines of Elixir
The whole argument, executable: observe-decide-act in 50 lines with no framework — a GenServer doing what agent frameworks abstract.
-
10.
Testing AI Agent Outputs in Elixir with ExUnit
Two seams make the 50-line agent loop testable: thread opts down to Req.post/1 so a test can pass plug: {Req.Test, Agent.LLM}, and emit an [:agent, :tool_call] telemetry event so you can assert on tool-call sequences, not just the final string. Tribunal's faithfulness and hallucination checks cost a model call and tag themselves :eval, which test_helper.exs excludes by default — mix test --only eval runs them.
-
11.
15 Elixir Libraries I Reach For in 2026
The day-one Hex install list — what each library earns its place doing, and the ones that got dropped along the way.
-
12.
RAG in Phoenix: Hand-Rolled pgvector or Arcana?
You don't need a vector database — the Postgres you already run does RAG fine. The hand-rolled path, and when Arcana earns its place.
-
13.
Streaming LLM Tokens in LiveView, the 2026 Way
The naive version — accumulate each token into an assign and re-render — keeps paying the model after the user closes the tab, rebuilds an ever-growing binary on every token, and sits on half a sentence when OpenAI returns a 500 four tokens in. start_async/4 gives a real terminal event through handle_async/3, and Req's function-form :into drives the request inside the task so the upstream socket dies with it — into: :self is the trap that spawns a helper which outlives your task and keeps draining. Buffer 50ms or 20 tokens and flush one update: the rate the model emits tokens should not be the rate you re-render.
-
14.
Oban as a Durable AI Agent Runtime in Elixir
One Oban job per ReAct step, enqueued in the same Ecto.Multi transaction as the state write, so a deploy at step 23 resumes from an agent_runs row instead of dying with a GenServer's heap. {:snooze, seconds} for a rate limit, {:cancel, reason} for a 400 or 422 that will fail identically every time, and an idempotency key derived from run plus step so a retried charge doesn't double-bill.
-
15.
Instrumenting LLM Calls in Phoenix with Telemetry
ReqLLM already emits token counts, calculated cost, and request duration on every call, so the work is five lines of Telemetry.Metrics connecting an event that already exists to a dashboard Phoenix already ships. The hand-rolled :telemetry.span/3 version for raw Req/Finch, the tag_values step that pulls .id out of ReqLLM's LLMDB.Model struct before it reaches a label, and the two numbers worth alerting on: cost per day trending, p95 latency per provider.
-
16.
Build an MCP Server in Phoenix With Hermes
Hermes 0.14 in a Phoenix app: tools as components, one forward to the StreamableHTTP transport plug, and authentication in the server's init/2 — a Plug.Conn assign does not reach a Hermes tool. Every tool maps to a named function in one of your contexts, Billing.customers_over_limit/2, never the lazy single run_sql tool that hands the model your database connection and calls it flexible. Skip the protocol entirely if the only thing calling your app is a script you also wrote.
-
17.
The Ruby to Elixir Migration That Cut Our Service Footprint From Ten to Six
The production receipts: ten services to six at InsideTrack, the migration order that worked, and when not to migrate.
Other topic guides
- AI engineering What production AI engineering actually looks like in 2026 — the autonomy ladder for agents, the workflow shift, telemetry, and team sizing.
- Security for startups A guided reading order for startup security — what to read first on SOC 2 as a revenue tool, vCISO hiring, and securing AI-native products.
- Engineering leadership Engineering leadership at startup scale — hiring from one engineer to fifteen, rituals that work at small teams, the staff-engineer interview loop.