John-BoothIQ
150,000 Lines of Vibe Coded Elixir: The Good, The Bad, and The Ugly
TL;DR:
-
Good: 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.
-
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.
-
Bottom Line: Even with the drawbacks, the productivity gains are off the charts. I expect it will only get better.
You can read the full article here:
Most Liked
tozz
150k LoC doesn’t mean anything if you don’t have a of declaration of what it does.
Our Elixir project is at 31k lines cloc --exclude-dir=node_modules,_build,deps . and I will remove a few thousand since this is in the middle of a refactor and I haven’t been cleaning up things thoroughly.
It’s a fairly simple app, a full admin, api for mobile clients, orchestration logic via Oban to process data, spin up servers etc. Some 3rd party integrations.
I use Tidewave quite a bit and I’ve noticed the Anthropic models (haven’t tried others) are happy to duplicate logic like crazy, this is why I’m wary about LoC as an indication of anything really (and personally I want to keep it low, not high).
garrison
Does it matter how many lines of code there are in nobody reads them? Does it matter if logic is duplicated if nobody ever has to change it?
Everyone trying to apply good software practice to vibecoding (“vibe engineering”, “subagents”, “orchestration”) is going to get wrecked by the bitter lesson as usual. Differentiability is king.
Either retreat upmarket or embrace the vibes.
egeersoz
This is a bit surprising to read. Opus 4.5 helped me do a comprehensive refactor of my app’s test suite, and concurrency was a big part of that. It did deep dives into each domain and identified which tests are safe to run concurrently, and we were able to make the suite run 40% faster overall. It also fixed several intermittent test failures caused by concurrency, as well as the dreaded DBConnection errors that tend to clutter the test outputs.
Popular in Blog Posts
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance









