<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>ElixirStatus</title>
    <description>Elixir news and status updates from the community for Elixir and Phoenix</description>
    <link>https://elixirstatus.com/</link>
    
      <item>
        <title><![CDATA[The Potions blog: Exploring LiveView 1.2]]></title>
        <description><![CDATA[
          <table width="100%" border="0">
            <tr>
              <td width=80 valign=top>
                <img src="https://elixirstatus.com/rss/avatar/alkx?uid=IGUi7" width="64" height="64" />
              </td>
              <td>
                <h1>The Potions blog: Exploring LiveView 1.2</h1>

                <font color="#aaa">
                  <font color="#aaa">
                     9 Jul 2026
                  </font>
                  <font color="#aaa">
                    by
                    <i class="icon-git_circle"></i> alkx
                  </font>
                  <font color="#aaa">
                    
                  </font>
                </font>

                <p>
With LiveView 1.2 you can move a surprising amount of client-side code back into Elixir. I refactored a trivia game to show how: server-composed JS commands, colocated CSS, and colocated hooks.</p>
<p>
Screencast + full walkthrough: <a href="https://potions.io/blog/colocating-liveview-js-css-and-hooks">https://potions.io/blog/colocating-liveview-js-css-and-hooks</a></p>

                <hr>
                <small><a href="https://elixirstatus.com/p/IGUi7-the-potions-blog-exploring-liveview-12">View on ElixirStatus</a></small>
              </td>
            </tr>
          </table>
        ]]></description>
        <pubDate> 9 Jul 2026 02:51:37 +0000</pubDate>
        <link>https://elixirstatus.com/p/IGUi7-the-potions-blog-exploring-liveview-12</link>
        <guid>https://elixirstatus.com/p/IGUi7-the-potions-blog-exploring-liveview-12</guid>
      </item>
    
      <item>
        <title><![CDATA[ActiveMemory v0.7 — query in-memory data by attributes, not just keys (now with TTL + crash resilience)]]></title>
        <description><![CDATA[
          <table width="100%" border="0">
            <tr>
              <td width=80 valign=top>
                <img src="https://elixirstatus.com/rss/avatar/SullysMustyRuby?uid=0AeAi" width="64" height="64" />
              </td>
              <td>
                <h1>ActiveMemory v0.7 — query in-memory data by attributes, not just keys (now with TTL + crash resilience)</h1>

                <font color="#aaa">
                  <font color="#aaa">
                     8 Jul 2026
                  </font>
                  <font color="#aaa">
                    by
                    <i class="icon-git_circle"></i> SullysMustyRuby
                  </font>
                  <font color="#aaa">
                    
                  </font>
                </font>

                <blockquote>
  <p>
ActiveMemory is a typed, attribute-queryable in-memory store for ETS and Mnesia. Where a key/value cache answers “what’s the value for this key?”, ActiveMemory answers the questions a cache can’t:  </p>
  <pre><code class="elixir">SessionStore.select(%{user_id: user_id, active?: true})
StaffStore.select(match(:role == "admin" and :last_login &lt; cutoff))
TokenStore.withdraw(%{value: submitted_token})  # atomic take-once: exactly one caller wins</code></pre>
  <p>
You define a <code class="inline">Table</code> with named attributes and get typed structs queryable by any combination of fields — no cache keys to design, no match specs to hand-write. v0.7 adds the safety rails for real workloads:  </p>
  <ul>
    <li>
<strong>TTL / record expiry</strong> — expired records are never returned, and a background sweep reclaims the memory. Ideal for one-time tokens, 2FA codes, and magic links.    </li>
    <li>
<strong>Crash resilience</strong> — an ETS heir process preserves your table when a Store crashes; the restarted Store reclaims it with data intact. Zero config.    </li>
    <li>
<strong>Atomic <code class="inline">withdraw/1</code></strong> — fetch-and-delete as a single atomic operation (<code class="inline">:ets.select_delete/2</code> / Mnesia transaction).    </li>
    <li>
<strong>ActiveRepo</strong> — manage many tables (mixing ETS and Mnesia) from one supervised process. Named so it won’t collide with your <code class="inline">Ecto.Repo</code>.    </li>
  </ul>
  <p>
Hex: <a href="https://hex.pm/packages/active_memory">https://hex.pm/packages/active_memory</a>
Docs: <a href="https://hexdocs.pm/active_memory">https://hexdocs.pm/active_memory</a>
GitHub: <a href="https://github.com/SullysMustyRuby/active_memory">https://github.com/SullysMustyRuby/active_memory</a>  </p>
  <p>
Feedback and contributions welcome!  </p>
</blockquote>

                <hr>
                <small><a href="https://elixirstatus.com/p/0AeAi-activememory-v07--query-in-memory-data-by-attributes-not-just-keys-now-with-ttl--crash-resilience">View on ElixirStatus</a></small>
              </td>
            </tr>
          </table>
        ]]></description>
        <pubDate> 8 Jul 2026 11:51:53 +0000</pubDate>
        <link>https://elixirstatus.com/p/0AeAi-activememory-v07--query-in-memory-data-by-attributes-not-just-keys-now-with-ttl--crash-resilience</link>
        <guid>https://elixirstatus.com/p/0AeAi-activememory-v07--query-in-memory-data-by-attributes-not-just-keys-now-with-ttl--crash-resilience</guid>
      </item>
    
      <item>
        <title><![CDATA[API Management Console - runtime route toggling for Phoenix apps]]></title>
        <description><![CDATA[
          <table width="100%" border="0">
            <tr>
              <td width=80 valign=top>
                <img src="https://elixirstatus.com/rss/avatar/rizwan-khalid-1?uid=MUAFV" width="64" height="64" />
              </td>
              <td>
                <h1>API Management Console - runtime route toggling for Phoenix apps</h1>

                <font color="#aaa">
                  <font color="#aaa">
                     5 Jul 2026
                  </font>
                  <font color="#aaa">
                    by
                    <i class="icon-git_circle"></i> rizwan-khalid-1
                  </font>
                  <font color="#aaa">
                    
                  </font>
                </font>

                <p>
I’ve published my first Hex package — API Management Console, a Phoenix
LiveView library for toggling API routes on/off in real time without
redeploying. Disabled routes return 403 at the Plug level, and everything’s
logged in an audit trail.</p>
<p>
The idea came from thinking about how to limit blast radius on some public
endpoints at work — disable fast, then fix properly, instead of scrambling
to redeploy under pressure.
This is also my first real step into open source, so bug reports and
feedback very welcome.</p>
<p>
GitHub: <a href="https://github.com/rizwan-khalid-1/api-management-console">https://github.com/rizwan-khalid-1/api-management-console</a></p>
<p>
Hex: <a href="https://hex.pm/packages/api_management_console">https://hex.pm/packages/api_management_console</a></p>

                <hr>
                <small><a href="https://elixirstatus.com/p/MUAFV-api-management-console---runtime-route-toggling-for-phoenix-apps">View on ElixirStatus</a></small>
              </td>
            </tr>
          </table>
        ]]></description>
        <pubDate> 5 Jul 2026 17:02:56 +0000</pubDate>
        <link>https://elixirstatus.com/p/MUAFV-api-management-console---runtime-route-toggling-for-phoenix-apps</link>
        <guid>https://elixirstatus.com/p/MUAFV-api-management-console---runtime-route-toggling-for-phoenix-apps</guid>
      </item>
    
      <item>
        <title><![CDATA[Where Messages Flow]]></title>
        <description><![CDATA[
          <table width="100%" border="0">
            <tr>
              <td width=80 valign=top>
                <img src="https://elixirstatus.com/rss/avatar/8by3?uid=SG679" width="64" height="64" />
              </td>
              <td>
                <h1>Where Messages Flow</h1>

                <font color="#aaa">
                  <font color="#aaa">
                     2 Jul 2026
                  </font>
                  <font color="#aaa">
                    by
                    <i class="icon-git_circle"></i> 8by3
                  </font>
                  <font color="#aaa">
                    
                  </font>
                </font>

                <p>
When people think BEAM, they think WhatsApp-scale messaging, Discord-style concurrency, and systems that stay up while the world pokes at them. When people think secure chat, they think Signal or Matrix. Signal is excellent, but self-hosting your own server is not really part of the deal. Matrix is.</p>
<p>
Meet River: a Matrix homeserver written in Elixir, built on the same runtime instincts that made the BEAM a natural home for real-time messaging in the first place. It is an attempt to pair Matrix’s open, federated, self-hostable model with Elixir’s strengths: massive concurrency, supervision, fault tolerance, and a web stack that already understands live, distributed systems.</p>
<p>
There’s also a super power for building companion apps, web front ends or bridges, using native rpc’s over a cluster instead of http/json calls.</p>
<p>
Source: <a href="https://git.sr.ht/~sbr/river">git.sr.ht/~sbr/river</a></p>

                <hr>
                <small><a href="https://elixirstatus.com/p/SG679-where-messages-flow">View on ElixirStatus</a></small>
              </td>
            </tr>
          </table>
        ]]></description>
        <pubDate> 2 Jul 2026 15:54:36 +0000</pubDate>
        <link>https://elixirstatus.com/p/SG679-where-messages-flow</link>
        <guid>https://elixirstatus.com/p/SG679-where-messages-flow</guid>
      </item>
    
      <item>
        <title><![CDATA[Beam those tunes]]></title>
        <description><![CDATA[
          <table width="100%" border="0">
            <tr>
              <td width=80 valign=top>
                <img src="https://elixirstatus.com/rss/avatar/8by3?uid=MGFfe" width="64" height="64" />
              </td>
              <td>
                <h1>Beam those tunes</h1>

                <font color="#aaa">
                  <font color="#aaa">
                     2 Jul 2026
                  </font>
                  <font color="#aaa">
                    by
                    <i class="icon-git_circle"></i> 8by3
                  </font>
                  <font color="#aaa">
                    
                  </font>
                </font>

                <p>
Coda brings the power of Elixir and the BEAM to your tunes.</p>
<p>
It’s a self-hosted music server built on Phoenix LiveView: concurrent, fault-tolerant, and comfortable juggling playback, library scans, metadata enrichment, podcasts, audiobooks, device output, and background jobs at the same time. Your local library gets a clean web UI, listening stats, MusicBrainz enrichment, and playback across local audio, AirPlay2, Snapcast, and UPnP devices.
It also supports room correction with impulse files and multi-room audio, so Coda can fit into more serious listening setups instead of just being another library browser.</p>
<p>
Install as a self-contained Burrito binary with a sqlite db, or build from src and hook it up to postgres.</p>
<p>
Want to rock your own thing? The bits that make Coda great are on hex
<a href="https://hex.pm/packages/airplay">https://hex.pm/packages/airplay</a> and <a href="https://hex.pm/packages/snapcast">https://hex.pm/packages/snapcast</a></p>
<p>
Check it out <a href="https://coda.8by3.com/">https://coda.8by3.com/</a></p>

                <hr>
                <small><a href="https://elixirstatus.com/p/MGFfe-beam-those-tunes">View on ElixirStatus</a></small>
              </td>
            </tr>
          </table>
        ]]></description>
        <pubDate> 2 Jul 2026 15:18:12 +0000</pubDate>
        <link>https://elixirstatus.com/p/MGFfe-beam-those-tunes</link>
        <guid>https://elixirstatus.com/p/MGFfe-beam-those-tunes</guid>
      </item>
    
      <item>
        <title><![CDATA[Ash Framework in 11 minutes]]></title>
        <description><![CDATA[
          <table width="100%" border="0">
            <tr>
              <td width=80 valign=top>
                <img src="https://elixirstatus.com/rss/avatar/mateuszkowalczyk?uid=VPrZp" width="64" height="64" />
              </td>
              <td>
                <h1>Ash Framework in 11 minutes</h1>

                <font color="#aaa">
                  <font color="#aaa">
                     2 Jul 2026
                  </font>
                  <font color="#aaa">
                    by
                    <i class="icon-git_circle"></i> mateuszkowalczyk
                  </font>
                  <font color="#aaa">
                    
                  </font>
                </font>

                <p>
Model your domain, derive the rest. In this video, you’ll learn how Ash lets you define resources, actions, policies, relationships, and data layer once, then reuse them across code interfaces, Phoenix forms, JSON:API, GraphQL, TypeScript, and AI tools.</p>
<p>
Watch here: <a href="https://www.youtube.com/watch?v=dDP1I2d3CB4">https://www.youtube.com/watch?v=dDP1I2d3CB4</a></p>

                <hr>
                <small><a href="https://elixirstatus.com/p/VPrZp-ash-framework-in-11-minutes">View on ElixirStatus</a></small>
              </td>
            </tr>
          </table>
        ]]></description>
        <pubDate> 2 Jul 2026 09:59:37 +0000</pubDate>
        <link>https://elixirstatus.com/p/VPrZp-ash-framework-in-11-minutes</link>
        <guid>https://elixirstatus.com/p/VPrZp-ash-framework-in-11-minutes</guid>
      </item>
    
      <item>
        <title><![CDATA[Hologram v0.10: Events, Middleware, and More]]></title>
        <description><![CDATA[
          <table width="100%" border="0">
            <tr>
              <td width=80 valign=top>
                <img src="https://elixirstatus.com/rss/avatar/bartblast?uid=R9AVU" width="64" height="64" />
              </td>
              <td>
                <h1>Hologram v0.10: Events, Middleware, and More</h1>

                <font color="#aaa">
                  <font color="#aaa">
                    30 Jun 2026
                  </font>
                  <font color="#aaa">
                    by
                    <i class="icon-git_circle"></i> bartblast
                  </font>
                  <font color="#aaa">
                    
                  </font>
                </font>

                <p>
A real event system comes to Hologram - v0.10 is out! You can now handle keyboard, scroll, resize, click-outside and scroll-edge events, bind handlers to the window and document, and debounce or throttle the noisy ones, all checked at compile time. To show it off, I rebuilt Space Invaders in pure Elixir, running in the browser with no game engine. There’s also a new server-side middleware layer, and comprehensions and try/rescue now work client-side. More here: <a href="https://hologram.page/blog/hologram-v0-10">https://hologram.page/blog/hologram-v0-10</a></p>

                <hr>
                <small><a href="https://elixirstatus.com/p/R9AVU-hologram-v010-events-middleware-and-more">View on ElixirStatus</a></small>
              </td>
            </tr>
          </table>
        ]]></description>
        <pubDate>30 Jun 2026 23:45:49 +0000</pubDate>
        <link>https://elixirstatus.com/p/R9AVU-hologram-v010-events-middleware-and-more</link>
        <guid>https://elixirstatus.com/p/R9AVU-hologram-v010-events-middleware-and-more</guid>
      </item>
    
      <item>
        <title><![CDATA[Modernizing realtime-js and Logflare for Supabase]]></title>
        <description><![CDATA[
          <table width="100%" border="0">
            <tr>
              <td width=80 valign=top>
                <img src="https://elixirstatus.com/rss/avatar/karolinakulig-arch?uid=Sb6DL" width="64" height="64" />
              </td>
              <td>
                <h1>Modernizing realtime-js and Logflare for Supabase</h1>

                <font color="#aaa">
                  <font color="#aaa">
                    26 Jun 2026
                  </font>
                  <font color="#aaa">
                    by
                    <i class="icon-git_circle"></i> karolinakulig-arch
                  </font>
                  <font color="#aaa">
                    
                  </font>
                </font>

                <p>
Supabase maintained a heavily diverged fork of Phoenix.js under realtime-js (~20M weekly downloads). We moved it back to canonical Phoenix.js, then took Logflare’s ingestion-rule matching from linear scans to a tree-based engine and swapped BigQuery onto the gRPC Streaming API. Full write-up: <a href="https://swmansion.com/case-studies/supabase/">https://swmansion.com/case-studies/supabase/</a></p>

                <hr>
                <small><a href="https://elixirstatus.com/p/Sb6DL-modernizing-realtime-js-and-logflare-for-supabase">View on ElixirStatus</a></small>
              </td>
            </tr>
          </table>
        ]]></description>
        <pubDate>26 Jun 2026 07:45:22 +0000</pubDate>
        <link>https://elixirstatus.com/p/Sb6DL-modernizing-realtime-js-and-logflare-for-supabase</link>
        <guid>https://elixirstatus.com/p/Sb6DL-modernizing-realtime-js-and-logflare-for-supabase</guid>
      </item>
    
      <item>
        <title><![CDATA[Stop mounting your LiveView twice]]></title>
        <description><![CDATA[
          <table width="100%" border="0">
            <tr>
              <td width=80 valign=top>
                <img src="https://elixirstatus.com/rss/avatar/almirsarajcic?uid=L3OKc" width="64" height="64" />
              </td>
              <td>
                <h1>Stop mounting your LiveView twice</h1>

                <font color="#aaa">
                  <font color="#aaa">
                    25 Jun 2026
                  </font>
                  <font color="#aaa">
                    by
                    <i class="icon-git_circle"></i> almirsarajcic
                  </font>
                  <font color="#aaa">
                    
                  </font>
                </font>

                <p>
Every LiveView mounts twice — once for the dead render, once when the socket connects.  </p>
<p>
Everyone reaches for connected?(socket), but it doesn’t stop the double mount; it just hides it.  </p>
<p>
What that quietly costs you, and how to actually mount once:  <br />
<a href="https://elixirdrops.net/d/9mrw2kg3">https://elixirdrops.net/d/9mrw2kg3</a></p>

                <hr>
                <small><a href="https://elixirstatus.com/p/L3OKc-stop-mounting-your-liveview-twice">View on ElixirStatus</a></small>
              </td>
            </tr>
          </table>
        ]]></description>
        <pubDate>25 Jun 2026 10:34:57 +0000</pubDate>
        <link>https://elixirstatus.com/p/L3OKc-stop-mounting-your-liveview-twice</link>
        <guid>https://elixirstatus.com/p/L3OKc-stop-mounting-your-liveview-twice</guid>
      </item>
    
      <item>
        <title><![CDATA[Thinking Elixir 309: The Final Episode]]></title>
        <description><![CDATA[
          <table width="100%" border="0">
            <tr>
              <td width=80 valign=top>
                <img src="https://elixirstatus.com/rss/avatar/brainlid?uid=88mjl" width="64" height="64" />
              </td>
              <td>
                <h1>Thinking Elixir 309: The Final Episode</h1>

                <font color="#aaa">
                  <font color="#aaa">
                    23 Jun 2026
                  </font>
                  <font color="#aaa">
                    by
                    <i class="icon-git_circle"></i> brainlid
                  </font>
                  <font color="#aaa">
                    
                  </font>
                </font>

                <p>
Episode 309 of <a href="https://podcast.thinkingelixir.com">Thinking Elixir</a>. This is it. The final episode of Thinking Elixir after six incredible years of weekly episodes! We send things off in style with a packed news segment covering Phoenix LiveView 1.2’s new colocated CSS powered by the @scope at-rule, the retirement of the long-standing Earmark Markdown library and why you should migrate to MDEx, a major Sagents v0.8.0 release bringing durable interrupts, and structured extraction, PostgreSQL 19’s exciting new features including graph queries and partition management, SpaceX’s jaw-dropping $60 billion acquisition of Cursor, and more! Then we share a special tribute song for you, the audience, and give a shoutout to our original co-host Cade Ward and to longtime sponsors Fly.io and Paraxial. Finally, David shares his new role on the Erlang Ecosystem Foundation board, and Mark talks about what’s next for Sagents and his exciting new AI-native startup. Thank you for six wonderful years. We’re so glad you were here along the way and now for the final episode!</p>
<p>
<a href="https://www.youtube.com/watch?v=p5FWCNUex84">https://www.youtube.com/watch?v=p5FWCNUex84</a></p>

                <hr>
                <small><a href="https://elixirstatus.com/p/88mjl-thinking-elixir-309-the-final-episode">View on ElixirStatus</a></small>
              </td>
            </tr>
          </table>
        ]]></description>
        <pubDate>23 Jun 2026 12:02:43 +0000</pubDate>
        <link>https://elixirstatus.com/p/88mjl-thinking-elixir-309-the-final-episode</link>
        <guid>https://elixirstatus.com/p/88mjl-thinking-elixir-309-the-final-episode</guid>
      </item>
    
      <item>
        <title><![CDATA[Tick-to-Trade in Elixir: A GenServer handle_info Pipeline]]></title>
        <description><![CDATA[
          <table width="100%" border="0">
            <tr>
              <td width=80 valign=top>
                <img src="https://elixirstatus.com/rss/avatar/ryanrborn?uid=sJJkj" width="64" height="64" />
              </td>
              <td>
                <h1>Tick-to-Trade in Elixir: A GenServer handle_info Pipeline</h1>

                <font color="#aaa">
                  <font color="#aaa">
                    18 Jun 2026
                  </font>
                  <font color="#aaa">
                    by
                    <i class="icon-git_circle"></i> ryanrborn
                  </font>
                  <font color="#aaa">
                    
                  </font>
                </font>

                <p>
A full walk through the handle_info chain inside one GenServer — PubSub-fed candle messages, two near-identical clauses that do different jobs, a behaviour-dispatched handoff, and an Oban offload to keep the mailbox draining faster than messages arrive.</p>
<p>
<a href="https://seriousalchemy.com/tick-to-trade">https://seriousalchemy.com/tick-to-trade</a></p>

                <hr>
                <small><a href="https://elixirstatus.com/p/sJJkj-tick-to-trade-in-elixir-a-genserver-handleinfo-pipeline">View on ElixirStatus</a></small>
              </td>
            </tr>
          </table>
        ]]></description>
        <pubDate>18 Jun 2026 16:48:58 +0000</pubDate>
        <link>https://elixirstatus.com/p/sJJkj-tick-to-trade-in-elixir-a-genserver-handleinfo-pipeline</link>
        <guid>https://elixirstatus.com/p/sJJkj-tick-to-trade-in-elixir-a-genserver-handleinfo-pipeline</guid>
      </item>
    
      <item>
        <title><![CDATA[CDPEx: drive Chrome from Elixir over CDP — no ChromeDriver, no zombie processes]]></title>
        <description><![CDATA[
          <table width="100%" border="0">
            <tr>
              <td width=80 valign=top>
                <img src="https://elixirstatus.com/rss/avatar/patrols?uid=Jxkmr" width="64" height="64" />
              </td>
              <td>
                <h1>CDPEx: drive Chrome from Elixir over CDP — no ChromeDriver, no zombie processes</h1>

                <font color="#aaa">
                  <font color="#aaa">
                    16 Jun 2026
                  </font>
                  <font color="#aaa">
                    by
                    <i class="icon-git_circle"></i> patrols
                  </font>
                  <font color="#aaa">
                    
                  </font>
                </font>

                <p>
CDPEx is a Chrome DevTools Protocol client for Elixir. It drives a real Chrome directly over CDP, with no ChromeDriver, Selenium, or WebDriver layer in between.</p>
<p>
You launch a Chrome (or connect to one that’s already running, local or remote), drive the page, and the OS process is reaped for you on teardown, so there are no orphaned Chrome processes left behind.</p>
<p>
What it does:</p>
<ul>
  <li>
<code class="inline">with_page/3</code> that guarantees teardown when you’re done  </li>
  <li>
Real, trusted input: clicks and keystrokes dispatched as genuine user gestures, not synthetic events  </li>
  <li>
Connect to a remote or already-running Chrome over <code class="inline">ws(s)://</code>, not just a local launch  </li>
  <li>
Navigation, <code class="inline">evaluate</code>, screenshots, and PDF rendering  </li>
  <li>
Network observation, including waiting for the network to go idle  </li>
  <li>
Proxy support with authentication  </li>
  <li>
<code class="inline">:telemetry</code> instrumentation and an optional warm browser pool  </li>
</ul>
<p>
It runs in production today as the only browser engine behind a concert-listing app, rendering JS-heavy and Cloudflare-gated pages (a real browser running real JS, no stealth tricks).</p>
<p>
Hex: <a href="https://hex.pm/packages/cdp_ex">https://hex.pm/packages/cdp_ex</a></p>
<p>
Repo and docs: <a href="https://github.com/patrols/cdp_ex">https://github.com/patrols/cdp_ex</a></p>
<p>
It’s pre-1.0, so the API may still change, but it’s been stable under daily load. Feedback welcome.</p>

                <hr>
                <small><a href="https://elixirstatus.com/p/Jxkmr-cdpex-drive-chrome-from-elixir-over-cdp--no-chromedriver-no-zombie-processes">View on ElixirStatus</a></small>
              </td>
            </tr>
          </table>
        ]]></description>
        <pubDate>16 Jun 2026 22:33:25 +0000</pubDate>
        <link>https://elixirstatus.com/p/Jxkmr-cdpex-drive-chrome-from-elixir-over-cdp--no-chromedriver-no-zombie-processes</link>
        <guid>https://elixirstatus.com/p/Jxkmr-cdpex-drive-chrome-from-elixir-over-cdp--no-chromedriver-no-zombie-processes</guid>
      </item>
    
      <item>
        <title><![CDATA[LiveView JS commands playlist in dual audio (🇧🇷,🇺🇸)]]></title>
        <description><![CDATA[
          <table width="100%" border="0">
            <tr>
              <td width=80 valign=top>
                <img src="https://elixirstatus.com/rss/avatar/lubien?uid=QLGPd" width="64" height="64" />
              </td>
              <td>
                <h1>LiveView JS commands playlist in dual audio (🇧🇷,🇺🇸)</h1>

                <font color="#aaa">
                  <font color="#aaa">
                    16 Jun 2026
                  </font>
                  <font color="#aaa">
                    by
                    <i class="icon-git_circle"></i> lubien
                  </font>
                  <font color="#aaa">
                    
                  </font>
                </font>

                <p>
I’ve been posting videos teaching about JS commands frequently on my YouTube channel and so far there’s 3 out and more to come.</p>
<p>
<a href="https://www.youtube.com/playlist?list=PLQIum1rzJJv261U6WZNlnuYiqHs0rdWef">https://www.youtube.com/playlist?list=PLQIum1rzJJv261U6WZNlnuYiqHs0rdWef</a></p>

                <hr>
                <small><a href="https://elixirstatus.com/p/QLGPd-liveview-js-commands-playlist-in-dual-audio-">View on ElixirStatus</a></small>
              </td>
            </tr>
          </table>
        ]]></description>
        <pubDate>16 Jun 2026 18:11:05 +0000</pubDate>
        <link>https://elixirstatus.com/p/QLGPd-liveview-js-commands-playlist-in-dual-audio-</link>
        <guid>https://elixirstatus.com/p/QLGPd-liveview-js-commands-playlist-in-dual-audio-</guid>
      </item>
    
      <item>
        <title><![CDATA[Thinking Elixir 308: Elixir Goes Gradually Typed]]></title>
        <description><![CDATA[
          <table width="100%" border="0">
            <tr>
              <td width=80 valign=top>
                <img src="https://elixirstatus.com/rss/avatar/brainlid?uid=SZwb8" width="64" height="64" />
              </td>
              <td>
                <h1>Thinking Elixir 308: Elixir Goes Gradually Typed</h1>

                <font color="#aaa">
                  <font color="#aaa">
                    16 Jun 2026
                  </font>
                  <font color="#aaa">
                    by
                    <i class="icon-git_circle"></i> brainlid
                  </font>
                  <font color="#aaa">
                    
                  </font>
                </font>

                <p>
Episode 308 of <a href="https://podcast.thinkingelixir.com">Thinking Elixir</a>. Elixir v1.20 has officially landed, marking a huge milestone as the language is now officially a gradually typed language, type checking every single line of code without requiring developer annotations, and even prompting some developers to drop Dialyzer entirely. HexDocs is rolling out per-package subdomains for improved browser security isolation, the Erlang Ecosystem Foundation has launched an Ecosystem Registry to help answer “who uses this?” for Erlang, Elixir, and Gleam companies, and the Lua library for Elixir is approaching its v1.0 release with a brand new pure-Elixir Lua 5.3 VM. On the security front, a sophisticated self-replicating worm called Miasma compromised 73 Microsoft GitHub repos by exploiting legitimate OIDC tokens and valid SLSA provenance, even weaponizing AI coding tools like Claude Code and Cursor, raising fresh questions about supply chain safety and whether Hex might benefit from a cooldown mechanism like the one Ruby just shipped, and more!</p>
<p>
<a href="https://www.youtube.com/watch?v=mlSq6kN3GjI">https://www.youtube.com/watch?v=mlSq6kN3GjI</a></p>

                <hr>
                <small><a href="https://elixirstatus.com/p/SZwb8-thinking-elixir-308-elixir-goes-gradually-typed">View on ElixirStatus</a></small>
              </td>
            </tr>
          </table>
        ]]></description>
        <pubDate>16 Jun 2026 12:07:21 +0000</pubDate>
        <link>https://elixirstatus.com/p/SZwb8-thinking-elixir-308-elixir-goes-gradually-typed</link>
        <guid>https://elixirstatus.com/p/SZwb8-thinking-elixir-308-elixir-goes-gradually-typed</guid>
      </item>
    
      <item>
        <title><![CDATA[BeamWeaver - LangChain/LangGraph-style agents and workflows for Elixir]]></title>
        <description><![CDATA[
          <table width="100%" border="0">
            <tr>
              <td width=80 valign=top>
                <img src="https://elixirstatus.com/rss/avatar/nateless?uid=E7hJY" width="64" height="64" />
              </td>
              <td>
                <h1>BeamWeaver - LangChain/LangGraph-style agents and workflows for Elixir</h1>

                <font color="#aaa">
                  <font color="#aaa">
                    12 Jun 2026
                  </font>
                  <font color="#aaa">
                    by
                    <i class="icon-git_circle"></i> nateless
                  </font>
                  <font color="#aaa">
                    
                  </font>
                </font>

                <h1>
BeamWeaver: AI agents and durable LLM workflows for Elixir</h1>
<p>
We’ve been building LLM features in Elixir and kept running into the same problem: the available Elixir libraries were useful, but still fairly simple, and there was almost no observability for agentic systems.</p>
<p>
So we either had to keep Python microservices around for LLM workflows, or accept much less tooling on the Elixir side. We wanted to stop doing that.</p>
<p>
BeamWeaver is our attempt to bring the best ideas from LangChain, LangGraph, and Deep Agents into Elixir, with an OTP-native design:</p>
<ul>
  <li>
agents and tool calling  </li>
  <li>
graph workflows  </li>
  <li>
checkpoints and resumable execution  </li>
  <li>
memory stores  </li>
  <li>
retries, fallbacks, interrupts, and human review  </li>
  <li>
typed streaming events  </li>
  <li>
provider adapters for OpenAI, Anthropic, Google Gemini, xAI, and Moonshot/Kimi  </li>
  <li>
fake/replay models for deterministic tests  </li>
</ul>
<p>
We’re also building observability on top of it through WeaveScope, which we’ll release very soon.</p>
<p>
The goal is to give Elixir teams the full harness needed to build advanced agentic systems without pushing the hard parts into Python services.</p>
<p>
Documentation: <a href="https://weavescope.gitbook.io/beam_weaver/">weavescope.gitbook.io/beam_weaver</a></p>
<p>
Hex: <a href="https://hex.pm/packages/beam_weaver">beam_weaver</a></p>
<p>
GitHub: <a href="https://github.com/caudena/beam_weaver">GitHub</a></p>

                <hr>
                <small><a href="https://elixirstatus.com/p/E7hJY-beamweaver---langchainlanggraph-style-agents-and-workflows-for-elixir">View on ElixirStatus</a></small>
              </td>
            </tr>
          </table>
        ]]></description>
        <pubDate>12 Jun 2026 09:25:48 +0000</pubDate>
        <link>https://elixirstatus.com/p/E7hJY-beamweaver---langchainlanggraph-style-agents-and-workflows-for-elixir</link>
        <guid>https://elixirstatus.com/p/E7hJY-beamweaver---langchainlanggraph-style-agents-and-workflows-for-elixir</guid>
      </item>
    
      <item>
        <title><![CDATA[Example of Person CRUD application built with Erlang/OTP]]></title>
        <description><![CDATA[
          <table width="100%" border="0">
            <tr>
              <td width=80 valign=top>
                <img src="https://elixirstatus.com/rss/avatar/matheuscamarques?uid=4UVEb" width="64" height="64" />
              </td>
              <td>
                <h1>Example of Person CRUD application built with Erlang/OTP</h1>

                <font color="#aaa">
                  <font color="#aaa">
                    10 Jun 2026
                  </font>
                  <font color="#aaa">
                    by
                    <i class="icon-git_circle"></i> matheuscamarques
                  </font>
                  <font color="#aaa">
                    
                  </font>
                </font>

                <p>
Person CRUD application built with Erlang/OTP, Mnesia, and a Ports &amp; Adapters (Hexagonal) architecture.</p>
<p>
<a href="https://github.com/Erlang-Brasil/person_mnesia_crud">https://github.com/Erlang-Brasil/person_mnesia_crud</a></p>

                <hr>
                <small><a href="https://elixirstatus.com/p/4UVEb-example-of-person-crud-application-built-with-erlangotp">View on ElixirStatus</a></small>
              </td>
            </tr>
          </table>
        ]]></description>
        <pubDate>10 Jun 2026 03:35:35 +0000</pubDate>
        <link>https://elixirstatus.com/p/4UVEb-example-of-person-crud-application-built-with-erlangotp</link>
        <guid>https://elixirstatus.com/p/4UVEb-example-of-person-crud-application-built-with-erlangotp</guid>
      </item>
    
      <item>
        <title><![CDATA[Thinking Elixir 307: Trust Nothing, Sort Everything]]></title>
        <description><![CDATA[
          <table width="100%" border="0">
            <tr>
              <td width=80 valign=top>
                <img src="https://elixirstatus.com/rss/avatar/brainlid?uid=8QHgb" width="64" height="64" />
              </td>
              <td>
                <h1>Thinking Elixir 307: Trust Nothing, Sort Everything</h1>

                <font color="#aaa">
                  <font color="#aaa">
                     9 Jun 2026
                  </font>
                  <font color="#aaa">
                    by
                    <i class="icon-git_circle"></i> brainlid
                  </font>
                  <font color="#aaa">
                    
                  </font>
                </font>

                <p>
Episode 307 of <a href="https://podcast.thinkingelixir.com">Thinking Elixir</a>. Mark shares a bittersweet housekeeping update — the Thinking Elixir Podcast is winding down, with the final episode airing June 23rd, 2026, closing the book on over six years of weekly shows. On the news front, Ecto 3.14 lands with long-awaited UUIDv7 support (time-sortable UUIDs for better index performance) along with a host of other improvements, Oban Pro adds a “human approval” workflow step that lets jobs pause mid-execution and resume on a signal without holding a database connection open, Hologram v0.9 arrives with a new Realtime feature enabling pure-Elixir WebSocket push from server to browser, Dashbit shares a behind-the-scenes look at how they designed Git integration in Tidewave Web across three developer personas, and the NSA drops new Zero Trust Implementation Guidelines that pair nicely with the Erlang Ecosystem Foundation’s own security hardening document, and more!</p>
<p>
<a href="https://www.youtube.com/watch?v=anxr5QsqPOc">https://www.youtube.com/watch?v=anxr5QsqPOc</a></p>

                <hr>
                <small><a href="https://elixirstatus.com/p/8QHgb-thinking-elixir-307-trust-nothing-sort-everything">View on ElixirStatus</a></small>
              </td>
            </tr>
          </table>
        ]]></description>
        <pubDate> 9 Jun 2026 12:29:32 +0000</pubDate>
        <link>https://elixirstatus.com/p/8QHgb-thinking-elixir-307-trust-nothing-sort-everything</link>
        <guid>https://elixirstatus.com/p/8QHgb-thinking-elixir-307-trust-nothing-sort-everything</guid>
      </item>
    
      <item>
        <title><![CDATA[p1meter.dev - a LiveView powered virtual P1 smart meter simulator]]></title>
        <description><![CDATA[
          <table width="100%" border="0">
            <tr>
              <td width=80 valign=top>
                <img src="https://elixirstatus.com/rss/avatar/robinvdvleuten?uid=Yq23O" width="64" height="64" />
              </td>
              <td>
                <h1>p1meter.dev - a LiveView powered virtual P1 smart meter simulator</h1>

                <font color="#aaa">
                  <font color="#aaa">
                     8 Jun 2026
                  </font>
                  <font color="#aaa">
                    by
                    <i class="icon-git_circle"></i> robinvdvleuten
                  </font>
                  <font color="#aaa">
                    
                  </font>
                </font>

                <p>
I’ve been working on <a href="https://p1meter.dev">p1meter.dev</a> (<a href="https://github.com/mijnverbruik/p1meter.dev">GitHub</a>), a small Phoenix LiveView project that provides a virtual smart meter P1 port for development and testing.</p>
<p>
The idea is simple: if you are building software around Dutch or Belgian smart meters, home energy dashboards, DSMR parsing, P1 integrations, or TCP-based meter readers, you often need realistic telegram data. But having a physical smart meter, P1 cable, adapter, or test setup nearby is not always convenient.</p>
<p>
p1meter.dev simulates a live DSMR 5.0 smart meter and streams telegrams over raw TCP.</p>
<p>
You can try the live TCP stream with:</p>
<p>
<code class="inline">nc p1meter.dev 8080</code></p>
<p>
The web interface shows a live preview of the simulated smart meter data, while the TCP endpoint emits the same kind of telegram stream that a P1 reader would receive.</p>
<p>
The project itself is built with Phoenix LiveView. The simulated telegrams are generated using my dsmr package, which handles DSMR telegram data structures and formatting.</p>
<p>
It is mainly useful for:</p>
<ul>
  <li>
testing DSMR/P1 parsers without a real meter nearby  </li>
  <li>
developing energy monitoring tools  </li>
  <li>
experimenting with TCP-based P1 readers  </li>
  <li>
demos, examples, and documentation  </li>
  <li>
reproducing parser or integration issues with predictable input  </li>
</ul>
<p>
The project is still intentionally small, but I’d like to keep improving it. Some things I’m considering:</p>
<ul>
  <li>
more realistic usage patterns throughout the day  </li>
  <li>
configurable meters or scenarios  </li>
  <li>
support for more edge cases in telegram data  </li>
  <li>
examples for consuming the stream from Elixir and other ecosystems  </li>
</ul>
<p>
Feedback, ideas, bug reports, and contributions are very welcome.</p>
<p>
Website: <a href="https://p1meter.dev">https://p1meter.dev</a>
Related DSMR package: <a href="https://github.com/mijnverbruik/dsmr">https://github.com/mijnverbruik/dsmr</a>
Repo: <a href="https://github.com/mijnverbruik/p1meter.dev">https://github.com/mijnverbruik/p1meter.dev</a></p>

                <hr>
                <small><a href="https://elixirstatus.com/p/Yq23O-p1meterdev---a-liveview-powered-virtual-p1-smart-meter-simulator">View on ElixirStatus</a></small>
              </td>
            </tr>
          </table>
        ]]></description>
        <pubDate> 8 Jun 2026 14:06:18 +0000</pubDate>
        <link>https://elixirstatus.com/p/Yq23O-p1meterdev---a-liveview-powered-virtual-p1-smart-meter-simulator</link>
        <guid>https://elixirstatus.com/p/Yq23O-p1meterdev---a-liveview-powered-virtual-p1-smart-meter-simulator</guid>
      </item>
    
      <item>
        <title><![CDATA[Fine tuning classification in Elixir]]></title>
        <description><![CDATA[
          <table width="100%" border="0">
            <tr>
              <td width=80 valign=top>
                <img src="https://elixirstatus.com/rss/avatar/karlosmid?uid=2pAjJ" width="64" height="64" />
              </td>
              <td>
                <h1>Fine tuning classification in Elixir</h1>

                <font color="#aaa">
                  <font color="#aaa">
                     8 Jun 2026
                  </font>
                  <font color="#aaa">
                    by
                    <i class="icon-git_circle"></i> karlosmid
                  </font>
                  <font color="#aaa">
                    
                  </font>
                </font>

                <p>
I fine-tuned a GPT-2 model for ham/spam SMS classification in Elixir.  <br />
This post follows chapter 6 of Sebastian Raschka’s Build a Large Language Model From Scratch, but instead of Python/PyTorch, I implemented the training pipeline in Elixir with Nx.  <br />
For me, the most interesting part is not only that GPT-2 can be fine-tuned for classification, but that Elixir is becoming a serious environment for machine learning experiments.</p>
<p>
<a href="https://karlosmid.com/2026/06/fine-tuning-for-classification/">https://karlosmid.com/2026/06/fine-tuning-for-classification/</a></p>

                <hr>
                <small><a href="https://elixirstatus.com/p/2pAjJ-fine-tuning-classification-in-elixir">View on ElixirStatus</a></small>
              </td>
            </tr>
          </table>
        ]]></description>
        <pubDate> 8 Jun 2026 07:40:15 +0000</pubDate>
        <link>https://elixirstatus.com/p/2pAjJ-fine-tuning-classification-in-elixir</link>
        <guid>https://elixirstatus.com/p/2pAjJ-fine-tuning-classification-in-elixir</guid>
      </item>
    
      <item>
        <title><![CDATA[Your context module has 30 query functions. It needs five]]></title>
        <description><![CDATA[
          <table width="100%" border="0">
            <tr>
              <td width=80 valign=top>
                <img src="https://elixirstatus.com/rss/avatar/BobbieBarker?uid=qrAE4" width="64" height="64" />
              </td>
              <td>
                <h1>Your context module has 30 query functions. It needs five</h1>

                <font color="#aaa">
                  <font color="#aaa">
                     6 Jun 2026
                  </font>
                  <font color="#aaa">
                    by
                    <i class="icon-git_circle"></i> BobbieBarker
                  </font>
                  <font color="#aaa">
                    
                  </font>
                </font>

                <p>
<a href="https://medium.com/@bobbie-barker/your-context-module-has-30-query-functions-it-needs-five-94a826886b7d">I wrote about a pattern</a> for trimming oversized Elixir context modules down to a smaller, clearer API. The goal is to make queries easier to find, easier to reason about, and harder to misuse without losing the flexibility you need in a real codebase.</p>

                <hr>
                <small><a href="https://elixirstatus.com/p/qrAE4-your-context-module-has-30-query-functions-it-needs-five">View on ElixirStatus</a></small>
              </td>
            </tr>
          </table>
        ]]></description>
        <pubDate> 6 Jun 2026 16:08:17 +0000</pubDate>
        <link>https://elixirstatus.com/p/qrAE4-your-context-module-has-30-query-functions-it-needs-five</link>
        <guid>https://elixirstatus.com/p/qrAE4-your-context-module-has-30-query-functions-it-needs-five</guid>
      </item>
    
  </channel>
</rss>

