Your @elixirphoenix LiveView app disconnects from the server. The UI freezes, nothing updates until the socket comes back.
Local LiveView doesn't freeze, and when the connection returns, it doesn't throw away your state either.
We built a small burrito ordering app with a "disconnect" button baked in – see how both versions handle the same disconnect live 🌯
New agentic code review workflow unlocked!
Before: You review a diff. Drop some comments. The agent makes changes but they're mixed with old changes. So you re-read everything. Give more feedback. Repeat.
After: Diffs only show what's new since your last review, in realtime.
Meet LiveStash - our new library solving @elixirphoenix LiveView state loss during WebSocket reconnects.
Stash your assigns & recover them automatically via ETS (server-side) or Browser Memory (survives redeploys).
Demo, GitHub, and blogpost linked below! 👇
New package! PhoenixReplay — session recording and replay for Phoenix LiveView.
→ Records assigns server-side, replays by re-rendering the actual view — pixel-perfect, not a DOM approximation → Zero client-side JS — no bundle size impact, invisible to users → See actual server state during replay: changesets, Ecto structs, form data → Navigation, page transitions, live_patch — all captured in one session automatically → 30s session = 8 KB
rrweb and friends record DOM mutations client-side: they fight CORS, break on shadow DOM, drift when assets change, and produce approximate replays with visual glitches. None of that applies here — LiveView templates are pure functions, so same assigns = same HTML. The BEAM just keeps the state.
More coming soon.
https://t.co/vlsnrbpiMn
Elixir v1.20.0-rc.2 series is out! Overall, the compiler finds more bugs, for free, and it has never been faster:
* Infers types across clauses, finding more bugs and dead code
* Compiles ~10% faster and has a new interpreted mode (up to 5x faster, scales to the number of cores)
* Modifying a struct definition recompiles fewer files (better incremental compilation)
Please give it a try and share your feedback! Expect at least two additional RCs before v1.20.0!
At 1703 we migrated a production SaaS from Python/React microservices to Elixir Phoenix monolith
3 apps → 1.
4 languages → 1.
5 frameworks → 1.
Thread with quick numbers breakdown:
The models are very good at writing idiomatic Elixir. Way better than they are at writing TS/Node.
Elixir's corpus is smaller but higher signal. And the training data is evidently cleaner. LLMs regularly regurgitate bad TS patterns from StackOverflow.
OTP + Phoenix + core DB drivers cover what takes dozens of npm packages in Node. Smaller dependency graph means less in context.
Elixir is concise (context-dense).
Great documentation and doc primitives.
Immutability is easier for humans and LLMs to reason about.
Amazing runtime introspection. Agents can connect to a running node, inspect process state, call GenServers, query through your model layer, etc. This means closing the loop.
With Elixir v1.19 out of the door, @duboc_guillaume and I are able to focus on typing new features once again and we have made some fantastic improvements when it comes to typing maps: https://t.co/FNopCJ0rcF
We (@duboc_guillaume and I) wrote an article about the data-structures that power Elixir's type system and some of the optimizations that went into Elixir v1.19! https://t.co/RjdQ42gLLL
Kudos to @heyfresha and https://t.co/KNZbk8aX4g for sponsoring the type system work!
"By embedding framework-specific traces into diagnostics, our benchmarks show Tidewave achieves 2x higher accuracy, completes tasks 45% faster, and uses 9% fewer tokens on average compared to Claude Code standalone."
No marketing. No big team. Just Elixir, MQTT, and engineering excellence.
Cyanview built broadcast tech that runs the Olympics, Super Bowl, and NBA – powered by a 9-person crew.
@mrpopov_com explains how Elixir made it possible in his RTC.ON talk: https://t.co/r0rIb9o7fh
Elixir v1.19 will also include a "mix help app:phoenix" command that lists all modules in an application alongside the first paragraph of their docs. Tell this to your human and LLM friends.
I was on a research tangent, about what languages tend to perform better with code generation, and was surprised by the results. I just assumed python would generally be king...? https://t.co/dB6ldS3ugU What do you think @josevalim ?
It does a better job than Playwright MCP because Tidewave uses the same browser as you.
For example, imagine you are building a project management software and you are working on a feature for transferring tasks between projects. Testing this feature requires at least a user who is admin in at least two projects. When it is time for Playwright to test this feature, you need to automate the account creation, then it has to set up two projects, add the task, etc, and it often gets stuck.
When you are using Tidewave, you naturally do this setup as part of your development, which Tidewave has direct access to during tests. So it just interacts with the same page. Furthermore, if you see any bugs or places you could improve, you can't really tell Playwright or regular coding agent to fix them, you have to translate what you want. With Tidewave you just point and click. 📷
So yeah, it does a much better job than Playwright MCP and it comes with other features too. :)
We asked Tidewave to improve its own homepage with autoplay of videos as we scroll through our features list.
It implemented the feature and used contextual browser testing to scroll through the page, check the DOM, and verify it works! 🎯
Coming for Rails and Phoenix... today!
New Elixir blog post! Interoperability in 2025, beyond the Erlang VM: https://t.co/Ln9Cv6j3cD
Where @wojtekmach and I explore recent efforts for running Elixir in microcontrollers and the browser, as well as integration with C++, Python, Swift, Rust, Zig and more!
Bring your @elixirlang code from the backend to the browser – the official Popcorn release is here 🍿
Get the full story from @uusszz in the official launch blogpost 👇