150,000 Lines of Vibe Coded Elixir: The Good, The Bad, and The Ugly January 05, 2026 • John
TL;DR:
Good: AI is great at Elixir. It gets better as your codebase grows.
AI is great at Elixir. It gets better as your codebase grows. Bad: It defaults to defensive, imperative code. You need to be strict about what good Elixir looks like.
It defaults to defensive, imperative code. You need to be strict about what good Elixir looks like. Ugly: It can’t debug concurrent test failures. It doesn’t understand that each test runs in an isolated transaction, or that processes have independent lifecycles. It spirals until you step in.
It can’t debug concurrent test failures. It doesn’t understand that each test runs in an isolated transaction, or that processes have independent lifecycles. It spirals until you step in. Bottom Line: Even with the drawbacks, the productivity gains are off the charts. I expect it will only get better.
BoothIQ is a universal badge scanner for trade shows. AI writes 100% of our code. We have 150,000 lines of vibe coded Elixir running in production. Here’s what worked and what didn’t.
The Good
Elixir is Small: It Gets It Right the First Time
Elixir is a small language. Few operators. Small standard library. Only so many ways to control flow. It hasn’t been around for decades. It hasn’t piled up paradigms like .NET or Java, where functional and OOP fight for space.
... continue reading