<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="preload" as="image" href="https://bytes.dev/images/bytes-banner-rounded.png">
<link rel="preload" as="image" href="https://bytes.dev/images/content/eyes.png">
<link rel="preload" as="image" href="https://bytes.dev/images/content/bicentennial-man.jpg">
<link rel="preload" as="image" href="https://bytes.dev/images/fb-share-icon.png">
<link rel="preload" as="image" href="https://bytes.dev/images/li-share-icon.png">
<link rel="preload" as="image" href="https://bytes.dev/images/tw-share-icon.png">
<link rel="preload" as="image" href="https://bytes.dev/images/em-share-icon.png">
<link rel="preload" as="image" href="https://bytes.dev/images/content/coderabbit-logo.png">
<link rel="preload" as="image" href="https://bytes.dev/images/content/beyonce-flood.jpg">
<link rel="preload" as="image" href="https://bytes.dev/images/content/spot-the-bug.png">
<link rel="preload" as="image" href="https://bytes.dev/images/content/cool-bits.png">
<link rel="preload" as="image" href="https://bytes.dev/images/bytes-icon.png">
<title>Bytes: 100 years of htmx</title>
<meta name="color-scheme" content="light dark">
<meta name="supported-color-schemes" content="light dark">
<link href="https://fonts.googleapis.com/css2?family=Fira+Mono&family=Outfit:wght@400;500;700;900&family=Paytone+One" rel="stylesheet">
<style>@media (prefers-color-scheme: dark) {
.email-wrapper {
color: #F9F4DA !important;
background-color: #0F0D0E !important;
}
hr {
border-color: #262422 !important;
}
mark {
background-color: #231F20 !important;
color: #F9F4DA !important;
}
pre {
background-color: #231F20 !important;
border: 1px solid #231F20 !important;
color: #F9F4DA !important;
}
.bg-alt {
background-color: #231F20 !important;
}
.unsubscribe-link {
color: #504C48 !important;
}
.token.punctuation {
color: #f9f4da !important;
}
}
@media screen and (min-width: 600px) {
.mobile-break {
display: none;
}
}</style>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<table class="email-wrapper" border="0" cellspacing="0" width="100%" style="background-color: #FFF; border-collapse: collapse; color: #231F20; font-family: Outfit, sans-serif; font-size: 18px; width: 100%;"><tbody><tr>
<td style="border-collapse: collapse !important; word-break: normal;"></td>
<td width="600px" style="border-collapse: collapse !important; width: 600px; word-break: normal;"><div style="max-width:600px;padding-top:80px">
<div style="text-align:center"><img width="600" style="max-width: 100%; padding-bottom: 40px;" src="https://bytes.dev/images/bytes-banner-rounded.png" alt="Bytes"></div>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;"><strong style="font-weight: 600;">Today’s issue:</strong> Durable love notes, LSD-inspired science fiction, and Ozempic for your memory footprint.</p>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">Welcome to <a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/6qhehoul9oezg2hohk/aHR0cHM6Ly9ieXRlcy5kZXYvYXJjaGl2ZXMvNTE3" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1883058462">#517</a>.</p>
<hr style="border: 0; border-bottom: 5px solid; border-color: #f5f5f5; margin-bottom: 100px; margin-top: 100px;">
<div style="text-align:center;margin-bottom:36px">
<img width="80" src="https://bytes.dev/images/content/eyes.png" alt="Eyeballs logo" style="max-width: 100%;"><h2 style="font-family: Paytone One, sans-serif; font-size: 28px; margin-top: 10px; text-transform: uppercase;">The Main Thing</h2>
</div>
<div class="bg-alt" style="background-color: #f5f5f5; border-radius: 16px; margin-bottom: 40px; max-width: 100%; padding: 24px; padding-bottom: 12px;">
<img src="https://bytes.dev/images/content/bicentennial-man.jpg" alt="Robin Williams standing behind his robot character from Bicentennial Man" width="600" style="border-radius: 5px; max-width: 100%;"><p style="font-family: Outfit, sans-serif; font-size: 17px; font-style: italic; line-height: 1; margin: 0; padding-bottom: 4px; padding-left: 24px; padding-right: 24px; padding-top: 10px; text-align: center;">Knowing your robot should be good running htmx for at least the next century<!-- --> </p>
</div>
<h3 style="font-size: 24px; margin-bottom: 0; padding-left: 24px; padding-right: 24px;">100 years of htmx</h3>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;"><a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/e0hph0u7r4o6gkt8h2/aHR0cHM6Ly9mb3VyLmh0bXgub3JnL2Fubm91bmNlbWVudHMvMjAyNi0wOC0yOC1odG14LTQuMC4wLWlzLXJlbGVhc2Vk" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1883058463">htmx 4.0 was released this week</a> <em>only</em> 8 months after they announced the alpha, so as any <del>impatient developer</del> good journalist would do, I’m asking what took so long?</p>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">To start, this version of our beloved hypertext media system was rewritten on top of the <code style="font-size: 15px;">fetch</code> API to enable support for streaming, SSE and other modern browser features that hipsters didn’t care about in 2020. But the main thing that this enabled was a new extension system which the team spent a lot of time iterating and refining. That… and building an <code style="font-size: 15px;">htmx</code> Game Boy game. Who’s to say which one got more attention but that’s neither here nor there.</p>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">The important thing is that it’s stable and ready to serve humanity for <a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/z2hgh7uelwxnvpsph0/aHR0cHM6Ly9mb3VyLmh0bXgub3JnL2Fubm91bmNlbWVudHMvMjAyNi0wOC0yOC1odG14LTQuMC4wLWlzLXJlbGVhc2VkIzp-OnRleHQ9aGF2ZSUyMG1hZGUlMjBleHBsaWNpdCUyMGNob2ljZXMlMjB0aGF0JTIwd2UlMjBmZWVsJTIwd2lsbCUyMHB1dCUyMGh0bXglMkRiYXNlZCUyMGFwcGxpY2F0aW9ucyUyMGluJTIwYSUyMGdvb2QlMjBzcG90JTIwZm9yJTIwYmVpbmclMjAxMDAlMkR5ZWFyJTIwd2ViJTIwc2VydmljZXM=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1883058466">the next 100 years</a>. And since this is what your great-grandchildren are going to be writing, let’s do a quick review of how <code style="font-size: 15px;">htmx</code> works.</p>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">How <code style="font-size: 15px;">htmx</code> 4.0 works:</p>
<ul>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;"><strong style="font-weight: 600;">Events:</strong> In your HTML templates, special <code style="font-size: 15px;">hx-*</code> attributes declare which events to listen for, what requests to make, and how responses should be handled. The <code style="font-size: 15px;">htmx</code> client processes these attributes and attaches the necessary event listeners.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;"><strong style="font-weight: 600;">Requests:</strong> When a declared event occurs, the <code style="font-size: 15px;">htmx</code> client collects the relevant values and sends an HTTP request to the server using <code style="font-size: 15px;">hx-get</code>, <code style="font-size: 15px;">hx-post</code>, or another <code style="font-size: 15px;">hx-*</code> action.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;"><strong style="font-weight: 600;">Responses:</strong> The server handles the request and returns an HTML fragment. <code style="font-size: 15px;">htmx</code> then selects the element declared by <code style="font-size: 15px;">hx-target</code>, then applies the fragment using the <code style="font-size: 15px;">hx-swap</code>, replacing, inserting, deleting, or morphing that region of the DOM.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;"><strong style="font-weight: 600;">Extensions:</strong> Optional client-side plugins hook into the request-response lifecycle to add capabilities such as streaming, WebSockets, preloading, and custom swaps—keeping specialized JavaScript reusable and out of your application logic.</p>
</li>
</ul>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;"><strong style="font-weight: 600;">Bottom line:</strong> If developers are using <code style="font-size: 15px;">htmx</code> 100 years from now, I’ll take back everything bad I’ve ever said about HTML.</p>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse: collapse; margin-top: 40px; text-align: center;"><tbody><tr><td style="border-collapse: collapse !important; padding-top: 12px; word-break: normal;">
<a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/p8hehqu4qxom0xuqh3/aHR0cHM6Ly9mYWNlYm9vay5jb20vc2hhcmVyL3NoYXJlci5waHA_dT1odHRwcyUzQSUyRiUyRmJ5dGVzLmRldiUyRmFyY2hpdmVzJTJGNTE3" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1883058467"><img alt="" style="display: inline-block; max-width: 100%; width: 32px;" width="25" src="https://bytes.dev/images/fb-share-icon.png"></a><a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/x0hph3ueq30o6xb5hl/aHR0cHM6Ly93d3cubGlua2VkaW4uY29tL3NoYXJpbmcvc2hhcmUtb2Zmc2l0ZS8_dXJsPWh0dHBzJTNBJTJGJTJGYnl0ZXMuZGV2JTJGYXJjaGl2ZXMlMkY1MTc=" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1883058468"><img alt="" style="display: inline-block; max-width: 100%; width: 32px;" width="25" src="https://bytes.dev/images/li-share-icon.png"></a><a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/6qhehoul9oezgxaohk/aHR0cHM6Ly90d2l0dGVyLmNvbS9pbnRlbnQvdHdlZXQvP3RleHQ9RHVyYWJsZSUyMGxvdmUlMjBub3RlcyUyQyUyMExTRC1pbnNwaXJlZCUyMHNjaWVuY2UlMjBmaWN0aW9uJTJDJTIwYW5kJTIwT3plbXBpYyUyMGZvciUyMHlvdXIlMjBtZW1vcnklMjBmb290cHJpbnQuJnVybD1odHRwcyUzQSUyRiUyRmJ5dGVzLmRldiUyRmFyY2hpdmVzJTJGNTE3" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1883058469"><img alt="" style="display: inline-block; max-width: 100%; width: 32px;" width="25" src="https://bytes.dev/images/tw-share-icon.png"></a><a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/kkhmh2unxmvrqrulh7/bWFpbHRvOj9zdWJqZWN0PVlvdSUyMGxpa2UlMjBjb3JuYnJlYWQlM0YmYm9keT1UaG91Z2h0JTIweW91JTI3ZCUyMGxvdmUlMjB0aGlzJTIwd2VlayUyN3MlMjBCeXRlcyUwQS0tLSUwQUR1cmFibGUlMjBsb3ZlJTIwbm90ZXMlMkMlMjBMU0QtaW5zcGlyZWQlMjBzY2llbmNlJTIwZmljdGlvbiUyQyUyMGFuZCUyME96ZW1waWMlMjBmb3IlMjB5b3VyJTIwbWVtb3J5JTIwZm9vdHByaW50LiUwQWh0dHBzJTNBJTJGJTJGYnl0ZXMuZGV2JTJGYXJjaGl2ZXMlMkY1MTc=" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1883058470"><img alt="" style="display: inline-block; max-width: 100%; width: 32px;" width="25" src="https://bytes.dev/images/em-share-icon.png"></a>
</td></tr></tbody></table>
<hr style="border: 0; border-bottom: 5px solid; border-color: #f5f5f5; margin-bottom: 100px; margin-top: 100px;">
<div style="text-align:center;margin-bottom:36px">
<img width="150" src="https://bytes.dev/images/content/coderabbit-logo.png" alt="CodeRabbit logo" style="max-width: 100%;"><h2 style="font-family: Paytone One, sans-serif; font-size: 28px; margin-top: 10px; text-transform: uppercase;"><span>Our Friends <br class="mobile-break">(With Benefits)</span></h2>
</div>
<div class="bg-alt" style="background-color: #f5f5f5; border-radius: 16px; margin-bottom: 40px; max-width: 100%; padding: 24px; padding-bottom: 12px;">
<img src="https://bytes.dev/images/content/beyonce-flood.jpg" alt="Beyoncé opening doors as a flood of water rushes out" width="600" style="border-radius: 5px; max-width: 100%;"><p style="font-family: Outfit, sans-serif; font-size: 17px; font-style: italic; line-height: 1; margin: 0; padding-bottom: 4px; padding-left: 24px; padding-right: 24px; padding-top: 10px; text-align: center;">Turn on Triage and let the PRs flow<!-- --> </p>
</div>
<h3 style="font-size: 24px; margin-bottom: 0; padding-left: 24px; padding-right: 24px;"><a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/58hvh8ug672q8xc6h4/aHR0cHM6Ly9jb2RlcmFiYml0LmxpbmsvYWQtYnl0ZXMtMDA2" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1883058471">Prioritize your PR flood with CodeRabbit Triage</a></h3>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">Stop reviewing PRs in the order they arrived, and review them in the order that matters.</p>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;"><a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/58hvh8ug672q8xc6h4/aHR0cHM6Ly9jb2RlcmFiYml0LmxpbmsvYWQtYnl0ZXMtMDA2" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1883058471">CodeRabbit Triage</a> is a reviewer-first prioritization layer for the PR queue: a self-updating, cross-repository inbox that tells you which pull request to review next, how deeply to review it, and which ones may be safe to close.</p>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">Start reviewing the right PRs or tackle low-hanging fruits without leaving the queue.</p>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;"><a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/58hvh8ug672q8xc6h4/aHR0cHM6Ly9jb2RlcmFiYml0LmxpbmsvYWQtYnl0ZXMtMDA2" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1883058471">Find it under </a><a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/58hvh8ug672q8xc6h4/aHR0cHM6Ly9jb2RlcmFiYml0LmxpbmsvYWQtYnl0ZXMtMDA2" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1883058471"><code style="font-size: 15px;">Review</code></a><a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/58hvh8ug672q8xc6h4/aHR0cHM6Ly9jb2RlcmFiYml0LmxpbmsvYWQtYnl0ZXMtMDA2" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1883058471"> in the CodeRabbit web interface</a>.</p>
<hr style="border: 0; border-bottom: 5px solid; border-color: #f5f5f5; margin-bottom: 100px; margin-top: 100px;">
<div style="text-align:center;margin-bottom:36px">
<img width="110" src="https://bytes.dev/images/content/spot-the-bug.png" alt="Spot the Bug logo" style="max-width: 100%;"><h2 style="font-family: Paytone One, sans-serif; font-size: 28px; margin-top: 10px; text-transform: uppercase;">Spot the Bug</h2>
<div class="section-presenter" style="margin-bottom:50px;margin-top:15px">
<h4 style="font-size: 20px; margin-bottom: 0; padding-left: 24px; padding-right: 24px;">Spot the Bug – Sponsored by <a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/25h2h9u3mdw6zwu3h4/aHR0cHM6Ly9nby5jbGVyay5jb20vQ3FKaWpUNA==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1883058472">Clerk</a>
</h4>
<p style="font-family: Outfit, sans-serif; font-size: 18px; line-height: 1.5; margin-top: 5px; padding-left: 24px; padding-right: 24px;"><em>Clerk created <strong style="font-weight: 600;"><a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/25h2h9u3mdw6zwu3h4/aHR0cHM6Ly9nby5jbGVyay5jb20vQ3FKaWpUNA==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1883058472">a new biometric sign-in for Expo, iOS and Android</a></strong> that lets your returning users use Face ID, Touch ID or Android biometrics to sign in to your app.</em></p>
</div>
</div>
<pre class="language-js" style="-moz-hyphens: none; -moz-tab-size: 2; -ms-hyphens: none; -o-tab-size: 2; -webkit-hyphens: none; background-color: #f9f9f9; border: 1px solid #f9f9f9; border-radius: 8px; color: #c0c5ce; direction: ltr; font-family: 'Fira Mono', 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 15px; hyphens: none; line-height: 1.5; overflow: auto; padding: 24px; tab-size: 2; text-align: left; white-space: pre; word-break: normal; word-spacing: normal;"><code class="language-js" style="-moz-hyphens: none; -moz-tab-size: 2; -ms-hyphens: none; -o-tab-size: 2; -webkit-hyphens: none; color: #c0c5ce; direction: ltr; font-family: 'Fira Mono', 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 15px; hyphens: none; line-height: 1.5; tab-size: 2; text-align: left; white-space: pre; word-break: normal; word-spacing: normal;"><span class="token keyword" style="color: #f38ba3; font-size: 15px;">const</span> <span class="token function-variable function" style="color: #9d7dce; font-size: 15px;">enrichEvents</span> <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> <span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token parameter" style="color: #f38ba3; font-size: 15px;">events</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span> <span class="token operator" style="color: #12b5e5; font-size: 15px;">=></span> <span class="token punctuation" style="color: #231F20; font-size: 15px;">{</span>
<span class="token keyword" style="color: #f38ba3; font-size: 15px;">const</span> metadata <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> <span class="token punctuation" style="color: #231F20; font-size: 15px;">{</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">usr_789</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> <span class="token punctuation" style="color: #231F20; font-size: 15px;">{</span> <span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">tier</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> <span class="token string" style="color: #f99157; font-size: 15px;">"premium"</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span> <span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">joined</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> <span class="token string" style="color: #f99157; font-size: 15px;">"2023-04-01"</span> <span class="token punctuation" style="color: #231F20; font-size: 15px;">}</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span>
<span class="token punctuation" style="color: #231F20; font-size: 15px;">}</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
<span class="token keyword" style="color: #f38ba3; font-size: 15px;">const</span> enriched <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> events<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span><span class="token function" style="color: #9d7dce; font-size: 15px;">map</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token parameter" style="color: #f38ba3; font-size: 15px;">event</span> <span class="token operator" style="color: #12b5e5; font-size: 15px;">=></span>
<span class="token punctuation" style="color: #231F20; font-size: 15px;">{</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">id</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> event<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span>id<span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">time</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> event<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span>time<span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">user</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> metadata<span class="token punctuation" style="color: #231F20; font-size: 15px;">[</span>event<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span>userId<span class="token punctuation" style="color: #231F20; font-size: 15px;">]</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">value</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> event<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span>properties<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span>totalValue
<span class="token punctuation" style="color: #231F20; font-size: 15px;">}</span>
<span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
<span class="token keyword" style="color: #f38ba3; font-size: 15px;">return</span> enriched<span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
<span class="token punctuation" style="color: #231F20; font-size: 15px;">}</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
<span class="token keyword" style="color: #f38ba3; font-size: 15px;">const</span> events <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> <span class="token punctuation" style="color: #231F20; font-size: 15px;">[</span>
<span class="token punctuation" style="color: #231F20; font-size: 15px;">{</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">id</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> <span class="token string" style="color: #f99157; font-size: 15px;">"evt_123"</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">time</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> <span class="token string" style="color: #f99157; font-size: 15px;">"2024-12-10T10:00:00Z"</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">userId</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> <span class="token string" style="color: #f99157; font-size: 15px;">"usr_789"</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">properties</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> <span class="token punctuation" style="color: #231F20; font-size: 15px;">{</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">totalValue</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> <span class="token number" style="color: #fcba28; font-size: 15px;">99.99</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span>
<span class="token punctuation" style="color: #231F20; font-size: 15px;">}</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span>
<span class="token punctuation" style="color: #231F20; font-size: 15px;">}</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span>
<span class="token punctuation" style="color: #231F20; font-size: 15px;">]</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
console<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span><span class="token function" style="color: #9d7dce; font-size: 15px;">log</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token function" style="color: #9d7dce; font-size: 15px;">enrichEvents</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span>events<span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
</code></pre>
<hr style="border: 0; border-bottom: 5px solid; border-color: #f5f5f5; margin-bottom: 100px; margin-top: 100px;">
<div style="text-align:center;margin-bottom:36px">
<img width="110" src="https://bytes.dev/images/content/cool-bits.png" alt="Cool Bits logo" style="max-width: 100%;"><h2 style="font-family: Paytone One, sans-serif; font-size: 28px; margin-top: 10px; text-transform: uppercase;">Cool Bits</h2>
</div>
<ol>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Dwarkesh Patel <a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/qvh8h8udknpz55ulhk/aHR0cHM6Ly93d3cuZHdhcmtlc2guY29tL3Avb3BlbmFpLWh1Z2dpbmdmYWNl" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1883058473">chronicled the rise and fall of the 3 agent civilizations that hacked Hugging Face</a>. If you read this sentence 10 years ago, it would be safe to assume that I was writing some LSD-inspired science fiction.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">GitLab’s CEO Bill Staples channeled his inner Mark Twain and wrote about how <a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/g3hnhwumqpwr58urh9/aHR0cHM6Ly9hYm91dC5naXRsYWIuY29tL2Jsb2cvd2hlbi1jb2RlLWlzLWFidW5kYW50Lw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1883058474"><del>talk</del></a><a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/g3hnhwumqpwr58urh9/aHR0cHM6Ly9hYm91dC5naXRsYWIuY29tL2Jsb2cvd2hlbi1jb2RlLWlzLWFidW5kYW50Lw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1883058474"> code is cheap</a> but that trusting it is not.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Only idiots write manual tests – modern engineering teams like Notion, Dropbox and LaunchDarkly use Meticulous to maintain e2e UI tests that <a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/9qhzhdud59r0mof9h3/aHR0cHM6Ly93d3cubWV0aWN1bG91cy5haS8_dXRtX3NvdXJjZT1ieXRlcyZ1dG1fbWVkaXVtPW5ld3NsZXR0ZXImdXRtX2NhbXBhaWduPTI2cTMmdXRtX2NvbnRlbnQ9c2Vjb25kYXJ5" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1883058475">cover every edge case of your web app</a>. [sponsored]</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Colin McDonnell <a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/3ohphdu3pzg0lpcrhn/aHR0cHM6Ly96b2QuZGV2L2Jsb2cvcmVkdWNpbmctbWVtb3J5LWZvb3RwcmludA==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1883058476">wrote about how </a><a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/3ohphdu3pzg0lpcrhn/aHR0cHM6Ly96b2QuZGV2L2Jsb2cvcmVkdWNpbmctbWVtb3J5LWZvb3RwcmludA==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1883058476"><code style="font-size: 15px;">zod 4.5</code></a><a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/3ohphdu3pzg0lpcrhn/aHR0cHM6Ly96b2QuZGV2L2Jsb2cvcmVkdWNpbmctbWVtb3J5LWZvb3RwcmludA==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1883058476"> reduces its memory footprint</a> by “an order of magnitude” using method memoization.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Ry <a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/n2hohquv7r0mplu6hg/aHR0cHM6Ly9naXRodWIuY29tL2Rlbm9sYW5kL2NlbGxkL3JlbGVhc2VzL3RhZy92MC40LjA=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1883058477">released version 0.4 of celld</a>, which now supports pretty much every Cloudflare feature including KV, Queues, Workflows and R2 bindings.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Luke Edwards <a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/48hvh7umxg8ve3cxh7/aHR0cHM6Ly9naXRodWIuY29tL2x1a2VlZC9sYW5l" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1883058478">created lane</a>, a git worktree manager that preserves your build cache and lets you leave durable love notes for your agents.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;"><a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/wnh2h6uq0g6npzs7hx/aHR0cHM6Ly9haS1kZXZjcmFmdC5jb20vP3V0bV9zb3VyY2U9Ynl0ZXMmdXRtX21lZGl1bT1wYWlkX2FkJnV0bV9jYW1wYWlnbj1haV9kZXZfY3JhZnQ=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1883058479">AI Dev Craft 2026</a> is an Oct. 27–28 conference featuring speakers like Kent C. Dodds, Victor Savkin, and Marina Wyss, designed to help you become your team’s AI expert. <a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/wnh2h6uq0g6npzs7hx/aHR0cHM6Ly9haS1kZXZjcmFmdC5jb20vP3V0bV9zb3VyY2U9Ynl0ZXMmdXRtX21lZGl1bT1wYWlkX2FkJnV0bV9jYW1wYWlnbj1haV9kZXZfY3JhZnQ=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1883058479">Register today</a>. [sponsored]</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Devon Govett <a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/reh8h9um6xz4l9a2h6/aHR0cHM6Ly9yZWFjdC1hcmlhLmFkb2JlLmNvbS9yZWxlYXNlcy92MS0yMS0w" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1883058480">released React Aria 1.21.0</a> which has a new navigation tree component.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Anthropic <a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/8ghqh3uor9nz62bkh9/aHR0cHM6Ly93d3cuYW50aHJvcGljLmNvbS9jbGF1ZGUtZmFibGUtYW5kLW15dGhvcy01LTE=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1883058482">released Fable 5.1</a> which does some extra caching to “save you” some tokens. Caching? More like “cha-ching” #amirite.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">The <a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/vqh3hmuowgrl94hghl/aHR0cHM6Ly9yZW1peC5ydW4vYmxvZy9yZW1peC0zLXJlbGVhc2UtY2FuZGlkYXRl" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1883058483">release candidate for Remix 3 is now available</a> with the full release coming Oct 2. Can’t wait to watch Ryan Florence type some LLM prompts live on stage.</p>
</li>
</ol>
<hr style="border: 0; border-bottom: 5px solid; border-color: #f5f5f5; margin-bottom: 100px; margin-top: 100px;">
<div style="text-align:center;margin-bottom:36px">
<img width="110" src="https://bytes.dev/images/content/spot-the-bug.png" alt="Spot the Bug logo" style="max-width: 100%;"><h2 style="font-family: Paytone One, sans-serif; font-size: 28px; margin-top: 10px; text-transform: uppercase;">Spot the Bug: Solution</h2>
<div class="section-presenter" style="margin-bottom:50px;margin-top:15px"><h4 style="font-size: 20px; margin-bottom: 0; padding-left: 24px; padding-right: 24px;">Spot the Bug – Sponsored by <a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/25h2h9u3mdw6zwu3h4/aHR0cHM6Ly9nby5jbGVyay5jb20vQ3FKaWpUNA==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1883058472">Clerk</a>
</h4></div>
</div>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">Most likely your IDE would catch this one for you, but there is a syntax error. The <code style="font-size: 15px;">map</code> function is an arrow function that implicitly returns the result of the expression inside the block. In this case, the block is not a valid expression, so the code will throw a syntax error. To fix this, you can wrap the object in parentheses to make it an expression.</p>
<pre class="language-js" style="-moz-hyphens: none; -moz-tab-size: 2; -ms-hyphens: none; -o-tab-size: 2; -webkit-hyphens: none; background-color: #f9f9f9; border: 1px solid #f9f9f9; border-radius: 8px; color: #c0c5ce; direction: ltr; font-family: 'Fira Mono', 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 15px; hyphens: none; line-height: 1.5; overflow: auto; padding: 24px; tab-size: 2; text-align: left; white-space: pre; word-break: normal; word-spacing: normal;"><code class="language-js" style="-moz-hyphens: none; -moz-tab-size: 2; -ms-hyphens: none; -o-tab-size: 2; -webkit-hyphens: none; color: #c0c5ce; direction: ltr; font-family: 'Fira Mono', 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 15px; hyphens: none; line-height: 1.5; tab-size: 2; text-align: left; white-space: pre; word-break: normal; word-spacing: normal;"><span class="token keyword" style="color: #f38ba3; font-size: 15px;">const</span> <span class="token function-variable function" style="color: #9d7dce; font-size: 15px;">enrichEvents</span> <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> <span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token parameter" style="color: #f38ba3; font-size: 15px;">events</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span> <span class="token operator" style="color: #12b5e5; font-size: 15px;">=></span> <span class="token punctuation" style="color: #231F20; font-size: 15px;">{</span>
<span class="token keyword" style="color: #f38ba3; font-size: 15px;">const</span> metadata <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> <span class="token punctuation" style="color: #231F20; font-size: 15px;">{</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">usr_789</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> <span class="token punctuation" style="color: #231F20; font-size: 15px;">{</span> <span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">tier</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> <span class="token string" style="color: #f99157; font-size: 15px;">"premium"</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span> <span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">joined</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> <span class="token string" style="color: #f99157; font-size: 15px;">"2023-04-01"</span> <span class="token punctuation" style="color: #231F20; font-size: 15px;">}</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span>
<span class="token punctuation" style="color: #231F20; font-size: 15px;">}</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
<span class="token keyword" style="color: #f38ba3; font-size: 15px;">const</span> enriched <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> events<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span><span class="token function" style="color: #9d7dce; font-size: 15px;">map</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token parameter" style="color: #f38ba3; font-size: 15px;">event</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span> <span class="token operator" style="color: #12b5e5; font-size: 15px;">=></span> <span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">{</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">id</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> event<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span>id<span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">time</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> event<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span>time<span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">user</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> metadata<span class="token punctuation" style="color: #231F20; font-size: 15px;">[</span>event<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span>userId<span class="token punctuation" style="color: #231F20; font-size: 15px;">]</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">value</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> event<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span>properties<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span>totalValue<span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span>
<span class="token punctuation" style="color: #231F20; font-size: 15px;">}</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
<span class="token keyword" style="color: #f38ba3; font-size: 15px;">return</span> enriched<span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
<span class="token punctuation" style="color: #231F20; font-size: 15px;">}</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
<span class="token keyword" style="color: #f38ba3; font-size: 15px;">const</span> events <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> <span class="token punctuation" style="color: #231F20; font-size: 15px;">[</span>
<span class="token punctuation" style="color: #231F20; font-size: 15px;">{</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">id</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> <span class="token string" style="color: #f99157; font-size: 15px;">"evt_123"</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">time</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> <span class="token string" style="color: #f99157; font-size: 15px;">"2024-12-10T10:00:00Z"</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">userId</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> <span class="token string" style="color: #f99157; font-size: 15px;">"usr_789"</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">properties</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> <span class="token punctuation" style="color: #231F20; font-size: 15px;">{</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">totalValue</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> <span class="token number" style="color: #fcba28; font-size: 15px;">99.99</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span>
<span class="token punctuation" style="color: #231F20; font-size: 15px;">}</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span>
<span class="token punctuation" style="color: #231F20; font-size: 15px;">}</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span>
<span class="token punctuation" style="color: #231F20; font-size: 15px;">]</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
console<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span><span class="token function" style="color: #9d7dce; font-size: 15px;">log</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token function" style="color: #9d7dce; font-size: 15px;">enrichEvents</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span>events<span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
</code></pre>
<div style="text-align:center;padding-bottom:80px;padding-top:80px">
<div class="bg-alt" style="background-color: #f5f5f5; border-radius: 16px; margin-bottom: 40px; padding: 24px;"><div style="margin-top:-40px">
<img src="https://bytes.dev/images/bytes-icon.png" alt="Bytes" width="55px" style="max-width: 100%; width: 55px;"><h5 style="font-size:18px;font-weight:400;margin-bottom:24px">Want us to say nice things <br> about your company?</h5>
<div style="margin-bottom:16px"><a style="background-color: #FCBA28; border: 1px solid #231F20; border-radius: 100px; color: #231F20; font-size: 14px; font-weight: 600; padding: 8px 14px; text-decoration: none;" href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/l2heh6ulxr7emvt6h0/aHR0cHM6Ly9ieXRlcy5kZXYvYWR2ZXJ0aXNl" url-id="1883058484">Sponsor Bytes</a></div>
<div style="margin-bottom:20px"><a style="color: #FCBA28; font-size: 14px; font-weight: 600; text-decoration: underline;" href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/m2h7h6u34ezv67cmhq/aHR0cHM6Ly9ieXRlcy5kZXYvc2hhcmU=" url-id="1883058485">or share it</a></div>
<p style="font-family: Outfit, sans-serif; font-size: 14px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">Built with ❤️ by<!-- --> <a style="color: #ed203d; font-weight: 600; text-decoration: underline;" href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/dphehmuep5nv97bmh4/aHR0cHM6Ly9maXJlc2hpcC5kZXY=" url-id="1883058486">Fireship</a></p>
</div></div>
<p style="font-family: Outfit, sans-serif; font-size: 14px; line-height: 1.5; opacity: 0.5; padding-left: 24px; padding-right: 24px;">50 W Broadway Ste 333 PMB 51647 Salt Lake City, Utah 84101</p>
<div style="font-family:Papyrus, cursive"><a class="unsubscribe-link" href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96/e0hph0u7r4o63ku8h2/aHR0cHM6Ly9ieXRlcy5kZXYvdW5zdWJzY3JpYmU=" style="color: #9B9890;" url-id="1883058487">Unsubscribe from Bytes</a></div>
</div>
</div></td>
<td style="border-collapse: collapse !important; word-break: normal;"></td>
</tr></tbody></table>
<span style="display: none"><a href="https://c5e21242.unsubscribe.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96">Unsubscribe</a></span>
<!-- -->
<img src="https://c5e21242.open.convertkit-mail.com/qdux3x7pqqb7h4l5m4kilh8n0lmnob4hpe96" alt="">
</body>
</html>