Rework Why It Matters slide into 4-point fragment list

Torey Heinz committed Feb 17, 2026
commit 59e907e23f51affecb7c2745dcbe0b15fcad3ff2
Showing 1 changed file with 7 additions and 10 deletions
slides/01-intro.html +7 -10
@@ @@ -228,18 +228,15 @@
<!-- SLIDE 10: Why It Matters — I/O bound insight -->
<section data-auto-animate>
<h2>Why It Matters for Web Apps</h2>
- <p><strong>Web applications are fundamentally I/O bound</strong></p>
-
- <p class="fragment small" style="margin-top: 0.5em;">
- Your app spends most of its time <strong>waiting</strong> &mdash; on databases, APIs, file systems.
- </p>
-
- <p class="fragment" style="margin-top: 1em;">
- The answer to I/O bound problems? <strong>Concurrency.</strong>
- </p>
+ <ul>
+ <li class="fragment"><strong>Concurrency</strong> &mdash; web apps are I/O bound; most time is spent waiting on databases, APIs, file systems</li>
+ <li class="fragment"><strong>Fault tolerance</strong> &mdash; processes crash in isolation, supervisors auto-restart them</li>
+ <li class="fragment"><strong>Real-time built in</strong> &mdash; WebSockets via Phoenix Channels &amp; LiveView, no extra infra</li>
+ <li class="fragment"><strong>Built-in background processing</strong> &mdash; GenServers replace Redis + Sidekiq/Bull</li>
+ </ul>
<aside class="notes">
- Here's the insight that made Elixir click for me. Think about what your web app actually does. The computation — parsing, processing, rendering — takes microseconds. But the I/O — database queries, API calls — takes milliseconds to seconds. Your app spends almost all its time waiting. So the question is: how well does your runtime handle waiting?
+ Web apps are I/O bound — most time is spent waiting on databases and APIs. The BEAM was built for exactly this. But it's not just concurrency. Fault tolerance means one bad request doesn't crash your app — supervisors restart failed processes automatically. Real-time is built right in with Phoenix Channels and LiveView — no Redis pub/sub or Socket.io needed. And background processing? GenServers handle what you'd normally need Sidekiq or Bull for — rate limiters, caches, scheduled jobs — all in the same app, no external dependencies.
</aside>
</section>