phoenix_test_playwright v0.12.0 released 🥳
Shorthand to eval JS in browser, assert_path fixes for LiveView navigations, and more.
Also ships with https://t.co/68ep5ob2ZX for LLM coding agents. 🤖
#elixirlang
Rewrote https://t.co/RaVKia5WBN from JS to Elixir 🎸 Free tool to convert music chordsheets (UltimateGuitar → ChordPro, etc.).
Ported ChordsheetJS to Elixir with Claude — surprisingly few manual interventions needed. Now on Phoenix and finally motivated to build new features!
Playwright remote server support (websocket) for phoenix_test_playwright 🥳
Looking for early feedback — especially around CI setups.
"Remote server playbook" for the docs.
Please give the main branch a spin:
https://t.co/eWOGAAtnH5
Hat tip to Carson and Tyler!
#elixirlang
phoenix_test_playwright 0.10.1 released 🥳
Small macro, big effect 🪄:
step/3 groups trace actions and AUTOMATICALLY links to source code line
Big thanks to @nathanl for adding this!
TIL Oban's unique job period uses fixed time windows, not sliding windows.
A job with unique: [period: {7, :days}] can still allow duplicates 2 days apart if they fall into different buckets.
For sliding windows use a custom query.
https://t.co/x3fo3NUiaT
#elixirlang#oban
🎉 phoenix_test_playwright 0.10.0-rc.0 released
Breaking changes - if you are reaching beyond the PhoenixTest API into internals.
Upside:
Browser pooling by default.
Well documented, consistent PlaywrightEx API for advanced use cases.
Early adopters ftw!
#elixirlang
🎉 playwright_ex 0.2 released
Focus: documentation and consistency
Added docs and typespecs
Ensured API consistency, especially 'Channel' modules (browser, frame, ...)
#elixirlang
https://t.co/8MqLOyA7Z4
I present: playwright_ex
A simple Playwright client for #elixirlang.
Experimental.
Extracted from phoenix_test_playwright.
PRs welcome!
It's not comprehensive, because that's a daunting task (see playwright-elixir).
But easy to extene
https://t.co/8MqLOyA7Z4
#ElixirConfEU call for talks is open (Apr 23-24, Malaga).
I submitted: Changeset driven forms.
Interested?
Which aspects should I focus on? 👇
#elixirlang
https://t.co/F5mYEILb9A
Call for feedback:
phoenix_test_plawright browser pooling
Please run locally & in CI.
Useful? Stable? Configurable to your needs?
https://t.co/hB7ijJSEWu
#elixirlang
Surprising ⚡️:
Performance of phoenix_test_playwright already pretty good.
Compared to official javascript client.
Many tests: browser re-use (experimental) brings slight boost.
Unclear if worth the complexity.
Do you need it?
https://t.co/8OtP6O63hI
#elixirlang
"Let it Crash - Designing Robust Systems"
Our talk included a Live Demo with audience participation.
👇 More details about what Marcus and I did at Dev Connect OWL.
https://t.co/1EDT0qkjlm
#elixirlang
How do you find a misbehaving part of your software?
Patience 🤣
Monitoring & Metrics (Prometheus, Grafana, cAdvisor, PRTG)
Error Tracking & Logging (Sentry, Firebase, log files)
Observability & Tracing (OpenTelemetry, metrics, distributed tracing)
User Feedback
We asked two questions at our talk "Let it Crash - Designing Robust Systems".
What are your building blocks for robust systems?
How do you find a misbehaving part of your software?
Great answers in thread👇
My takeaway: The BEAM provides.
#elixirlang#devconnectowl
What are your building blocks for robust systems?
Testing & Monitoring (unit/load tests, monitor, health checks)
Fault Tolerance (redundancy, circuit breakers, loose coupling)
Simple Architecture (KISS)
Load Distribution (client-side calcs)
"I would ask you" 🤣
Common phoenix pitfalls when upgrading to LiveView 1.1
Tests may break in several ways.
- HTML boolean attrs like 'checked' rendered differently
- stricter CSS selectors due to lazy_html
- phoenix_test needs fix #45 (unreleased)