<!DOCTYPE html>
<html>
<head>
<title>Bytes: My hot takes on a new React release</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<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: 16px; 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: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;"><strong style="font-weight: 600;">Today’s issue:</strong> Why the React haters hate, wellness tips for newsletter writers, and what the mid-’90s era of indie funk can teach us about web development.</p>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">Welcome to <a href="https://click.kit-mail6.com/v8u5q54200irhvo63r7ighv2xemlls9hq32o/08hwhgu229ee59hl/aHR0cHM6Ly9ieXRlcy5kZXYvYXJjaGl2ZXMvNDI5" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1792470362">#429</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/pied-piper.jpg" alt="A guy playing a fake flute to a bunch of paper mice" width="600" style="border-radius: 5px; max-width: 100%;"><p style="font-family: Outfit, sans-serif; font-size: 15px; font-style: italic; line-height: 1; margin: 0; padding-bottom: 4px; padding-left: 24px; padding-right: 24px; padding-top: 10px; text-align: center;">Dan Abramov calling all the influencers to give their hot takes on a new React release<!-- --> </p>
</div>
<h3 style="font-size: 24px; margin-bottom: 0; padding-left: 24px; padding-right: 24px;">My hot takes on a new React release</h3>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;"><a href="https://click.kit-mail6.com/v8u5q54200irhvo63r7ighv2xemlls9hq32o/8ghqh3uoo2ddv3hk/aHR0cHM6Ly9yZWFjdC5kZXYvYmxvZy8yMDI1LzEwLzAxL3JlYWN0LTE5LTI=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1792470363">React 19.2</a> was released to the unwashed masses on Wednesday, and it feels like the community’s reaction has been pretty muted so far.</p>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">That might be because everyone’s brains turned into oatmeal from consuming too much Sora slop – or maybe it’s just that this was a pretty chill release overall. Instead of a bunch of splashy new APIs, React 19.2 stitches together a set of primitives that lay the groundwork for faster navigation and better DX.</p>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">The star here is the new <code style="font-size: 14px;"><Activity /></code> component, which is basically tabbed browsing for your component tree. Instead of conditionally mounting/unmounting UI, you can mark sections as <code style="font-size: 14px;">hidden</code> and React will:</p>
<ul>
<li>Hide them from view</li>
<li>Unmount their effects</li>
<li>Defer updates until nothing else is happening</li>
</ul>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">But crucially, it keeps the component tree alive in memory while this is happening. That means React can pre-render the screens a user is likely to navigate to next, or restore the state of a screen they just left — with no lost form inputs, no re-fetching, and much snappier transitions.</p>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">Here are a few more highlights:</p>
<ul>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><strong style="font-weight: 600;"><code style="font-size: 14px;">useEffectEvent</code></strong> — Cleanly handle “event-like” code inside Effects without breaking your dependency arrays or silencing ESLint (yes, the name is confusing).</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><strong style="font-weight: 600;"><code style="font-size: 14px;">cacheSignal</code> (RSC-only)</strong> — Lets you abort or clean up work when cached results won’t be used anymore.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><strong style="font-weight: 600;">Performance Tracks in DevTools</strong> — New Chrome profiler views showing priorities, scheduling, and component timings.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><strong style="font-weight: 600;">Partial Pre-rendering</strong> — Pre-render static shells to a CDN, then resume rendering with dynamic content later.</p>
</li>
</ul>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;"><strong style="font-weight: 600;">Bottom Line:</strong> This is the least amount of hype we’ve seen around a React release for a while, but considering this is its third one in the past 10 months, that’s probably a healthy thing (unlike your aunt’s addiction to AI videos of Bobby Flay making backyard BBQ as an anime cat).</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://click.kit-mail6.com/v8u5q54200irhvo63r7ighv2xemlls9hq32o/vqh3hmuoov0073ug/aHR0cHM6Ly9mYWNlYm9vay5jb20vc2hhcmVyL3NoYXJlci5waHA_dT1odHRwcyUzQSUyRiUyRmJ5dGVzLmRldiUyRmFyY2hpdmVzJTJGNDI5" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1792470364"><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://click.kit-mail6.com/v8u5q54200irhvo63r7ighv2xemlls9hq32o/l2heh6ulln229zi6/aHR0cHM6Ly93d3cubGlua2VkaW4uY29tL3NoYXJpbmcvc2hhcmUtb2Zmc2l0ZS8_dXJsPWh0dHBzJTNBJTJGJTJGYnl0ZXMuZGV2JTJGYXJjaGl2ZXMlMkY0Mjk=" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1792470365"><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://click.kit-mail6.com/v8u5q54200irhvo63r7ighv2xemlls9hq32o/m2h7h6u33q55pnhm/aHR0cHM6Ly90d2l0dGVyLmNvbS9pbnRlbnQvdHdlZXQvP3RleHQ9QnJlYWtpbmclMjBkb3duJTIwZXZlcnl0aGluZyUyMGludGVyZXN0aW5nJTIwZnJvbSUyMHRoZSUyMFJlYWN0JTIwMTkuMiUyMHJlbGVhc2UmdXJsPWh0dHBzJTNBJTJGJTJGYnl0ZXMuZGV2JTJGYXJjaGl2ZXMlMkY0Mjk=" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1792470366"><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://click.kit-mail6.com/v8u5q54200irhvo63r7ighv2xemlls9hq32o/dphehmueeo66gqtm/bWFpbHRvOj9ib2R5PVRob3VnaHQlMjB5b3UlMjdkJTIwbG92ZSUyMHRoaXMlMjB3ZWVrJTI3cyUyMEJ5dGVzJTBBLS0tJTBBQnJlYWtpbmclMjBkb3duJTIwZXZlcnl0aGluZyUyMGludGVyZXN0aW5nJTIwZnJvbSUyMHRoZSUyMFJlYWN0JTIwMTkuMiUyMHJlbGVhc2UlMEFodHRwcyUzQSUyRiUyRmJ5dGVzLmRldiUyRmFyY2hpdmVzJTJGNDI5JnN1YmplY3Q9WW91JTIwbGlrZSUyMGNvcm5icmVhZCUzRg==" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1792470367"><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/auth0-logo.png" alt="Auth0 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/mike-dead.jpg" alt="Mike from Breaking Bad looking defeated" width="600" style="border-radius: 5px; max-width: 100%;"><p style="font-family: Outfit, sans-serif; font-size: 15px; font-style: italic; line-height: 1; margin: 0; padding-bottom: 4px; padding-left: 24px; padding-right: 24px; padding-top: 10px; text-align: center;">Realizing my AI agent side project just emailed the entire company<!-- --> </p>
</div>
<h3 style="font-size: 24px; margin-bottom: 0; padding-left: 24px; padding-right: 24px;"><a href="https://click.kit-mail6.com/v8u5q54200irhvo63r7ighv2xemlls9hq32o/e0hph0u77lvvg0f8/aHR0cHM6Ly9hdXRoMC5jb20vYWk_b2NpZD03MDE0ejAwMDAwMU55b3hBQUMtYVBBNHowMDAwMDA4T1plR0FNJTNGdXRtX3NvdXJjZSUzRGJ5dGVzJm9uYm9hcmRfYXBwPWdlbmFpJnV0bV9jYW1wYWlnbj1nbG9iYWxfbXVsdF9tdWx0X2FsbF9jaWFtLWRldl9kZy1wbGdfYXV0aF9uYXRpdmVfYnl0ZXNfbmV3c2xldHRlcl9hdWRfQnl0ZXMtUHJpbWFyeS1HZW5BSS1QR0FfdXRtMiZ1dG1faWQ9YU5LS1owMDAwMDAwNFg0NEFJJnV0bV9tZWRpdW09Y3Bj" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1792470368">Auth0 for AI Agents just launched their developer preview <span role="img" aria-label="eyes">👀</span></a></h3>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">So now you can use their <a href="https://click.kit-mail6.com/v8u5q54200irhvo63r7ighv2xemlls9hq32o/7qh7h2u996ll79hz/aHR0cHM6Ly9hdXRoMC5jb20vYWkvZG9jcy9pbnRyby9vdmVydmlldz9vY2lkPTcwMTR6MDAwMDAxTnlveEFBQy1hUEE0ejAwMDAwMDhPWmVHQU0lM0Z1dG1fc291cmNlJTNEYnl0ZXMmb25ib2FyZF9hcHA9Z2VuYWkmdXRtX2NhbXBhaWduPWdsb2JhbF9tdWx0X211bHRfYWxsX2NpYW0tZGV2X2RnLXBsZ19hdXRoX25hdGl2ZV9ieXRlc19uZXdzbGV0dGVyX2F1ZF9CeXRlcy1QcmltYXJ5LUdlbkFJLVBHQV91dG0yJnV0bV9pZD1hTktLWjAwMDAwMDA0WDQ0QUkmdXRtX21lZGl1bT1jcGM=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1792470369">smooth SDK</a> to ship AI agents with built-in auth and security that just works.</p>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">Here are a few of the hairy problems it handles for you:</p>
<ul>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><strong style="font-weight: 600;">Real user login</strong> – Agents can securely identify who they’re talking to, remember past history, and access the right data without shortcuts.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><strong style="font-weight: 600;">Token Vault</strong> – Store and refresh API tokens safely, so agents don’t end up with over-broad access or creds in logs (<a href="https://click.kit-mail6.com/v8u5q54200irhvo63r7ighv2xemlls9hq32o/owhkhwuww699vguv/aHR0cHM6Ly9hdXRoMC5jb20vcmVzb3VyY2VzL3dlYmluYXJzL3NlY3VyaW5nLXlvdXItYWktYWdlbnRzLWEtdGVjaG5pY2FsLWRlbW8_dXRtX2NhbXBhaWduPWdsb2JhbF9tdWx0X211bHRfYWxsX2NpYW0tZGV2X2RnLXBsZ19hdXRoX25hdGl2ZV9ieXRlc19uZXdzbGV0dGVyX2F1ZF9CeXRlcy1QcmltYXJ5LUdlbkFJLVBHQV91dG0yJnV0bV9pZD1hTktLWjAwMDAwMDA0V3U0QUkmdXRtX21lZGl1bT1jcGMmdXRtX3NvdXJjZT1ieXRlcw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1792470370">this technical demo</a> shows how it works).</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><strong style="font-weight: 600;">Human-in-the-loop</strong> – Add async approvals for sensitive AI agent actions, with audit trails baked in.</p>
</li>
</ul>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;"><a href="https://click.kit-mail6.com/v8u5q54200irhvo63r7ighv2xemlls9hq32o/z2hgh7ueek66vwfp/aHR0cHM6Ly9hdXRoMC5jb20vc2lnbnVwP29jaWQ9NzAxNHowMDAwMDFOeW94QUFDLWFQQTR6MDAwMDAwOE9aZUdBTSUzRnV0bV9zb3VyY2UlM0RieXRlcyZvbmJvYXJkX2FwcD1nZW5haSZ1dG1fY2FtcGFpZ249Z2xvYmFsX211bHRfbXVsdF9hbGxfY2lhbS1kZXZfZGctcGxnX2F1dGhfbmF0aXZlX2J5dGVzX25ld3NsZXR0ZXJfYXVkX0J5dGVzLVByaW1hcnktR2VuQUktUEdBX3V0bTImdXRtX2lkPWFOS0taMDAwMDAwMDRYNDRBSSZ1dG1fbWVkaXVtPWNwYw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1792470371">Try out Auth0 for AI Agents free now</a> – and ship new agents faster, safer, and without ever duct-taping OAuth again <span role="img" aria-label="folded hands">🙏</span>.</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/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: 17px; line-height: 1.5;">Dan Abramov wrote an article called <a href="https://click.kit-mail6.com/v8u5q54200irhvo63r7ighv2xemlls9hq32o/p8hehqu4426608tq/aHR0cHM6Ly9vdmVycmVhY3RlZC5pby93aGVyZS1pdHMtYXQv" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1792470372">Where It’s at://</a> – and how he’s still got <em>two turntables and a microphone.</em></p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><a href="https://click.kit-mail6.com/v8u5q54200irhvo63r7ighv2xemlls9hq32o/x0hph3ueep226kc5/aHR0cHM6Ly93d3cuZzJpLmNvL3doeS1nMmk_dXRtX2NhbXBhaWduPUZpcmVzaGlwJTIwTmV3c2xldHRlciZ1dG1fbWVkaXVtPUFEJnV0bV9zb3VyY2U9TmV3c2xldHRlcg==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1792470373">G2i connects your team with pre-vetted senior developers</a> (contract and full-time). They’ve helped teams at Meta, Microsoft, and more hire faster and with full transparency – so you don’t have to waste time digging through more AI-slop resumes <span role="img" aria-label="folded hands">🙏</span>. [sponsored]</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">Chad Nauseam wrote about how <a href="https://click.kit-mail6.com/v8u5q54200irhvo63r7ighv2xemlls9hq32o/6qhehoull5rrgzio/aHR0cHM6Ly9jaGFkbmF1c2VhbS5jb20vY29kaW5nL3BsdGQvcmVhY3QtaXMtZ29vZC1qYXZhc2NyaXB0LWlzLXRoZS1wcm9ibGVt" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1792470374">everything people hate about React, is really just stuff they hate about JavaScript</a> – or stuff they hate about themselves, I’d argue.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><a href="https://click.kit-mail6.com/v8u5q54200irhvo63r7ighv2xemlls9hq32o/e0hph0u77lvvgvu8/aHR0cHM6Ly94LmNvbS9kZXZvbmdvdmV0dC9zdGF0dXMvMTk3Mzg0MjkwOTY2NjY4NTExMQ==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1792470375">A new React Aria update</a> just dropped with Multi Select, enhanced animation support across components, a new <code style="font-size: 14px;">SelectionIndicator</code> component, and more.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><a href="https://click.kit-mail6.com/v8u5q54200irhvo63r7ighv2xemlls9hq32o/7qh7h2u996ll75az/aHR0cHM6Ly9naXRodWIuY29tL3J5YW5udGFubm4venVzdGFuZC1zeW5j" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1792470376">zustand-sync</a> is a barebones middleware to sync zustand stores across multiple clients.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">Datadog created this <a href="https://click.kit-mail6.com/v8u5q54200irhvo63r7ighv2xemlls9hq32o/owhkhwuww699vvbv/aHR0cHM6Ly93d3cuZGF0YWRvZ2hxLmNvbS9yZXNvdXJjZXMvZnJvbnRlbmQtbW9uaXRvcmluZy1iZXN0LXByYWN0aWNlcy8_dXRtX2NhbXBhaWduPWRnLWluZnJhLXd3LWZyb250LWVuZC1tb25pdG9yaW5nLWd1aWRlLWJ5dGVzJnV0bV9tZWRpdW09bmV3c2xldHRlciZ1dG1fc291cmNlPWJ5dGVzZGV2" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1792470377">frontend monitoring best practices guide</a> that shows you how to monitor three key aspects of your single-page apps to optimize your performance and UX. [sponsored]</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">Mateusz Krzeszowiak wrote about <a href="https://click.kit-mail6.com/v8u5q54200irhvo63r7ighv2xemlls9hq32o/z2hgh7ueek66v2up/aHR0cHM6Ly9wZXJmb3JtYW5jZS5zaG9waWZ5LmNvbS9ibG9ncy9ibG9nL3NwZWN1bGF0aW9uLXJ1bGVzLWF0LXNob3BpZnk=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1792470378">speculation rules on Shopify</a> – and unfortunately, it didn’t include any helpful tips on how to resell the hundreds of Labubus I <del>impulse bought</del> <em>invested in</em> a couple months back.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><a href="https://click.kit-mail6.com/v8u5q54200irhvo63r7ighv2xemlls9hq32o/p8hehqu442660niq/aHR0cHM6Ly9naXRodWIuY29tL3BvbXBlbG1pL3BvbXBlbG1p" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1792470379">pompelmi</a> is a Node.js file-upload security toolkit (CLI + middleware) that scans files before ingestion using YARA rules, MIME/content sniffing, and ZIP-bomb detection.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">Sergio Xalambrí wrote about <a href="https://click.kit-mail6.com/v8u5q54200irhvo63r7ighv2xemlls9hq32o/x0hph3ueep226qf5/aHR0cHM6Ly9zZXJnaW9keGEuY29tL3R1dG9yaWFscy9sZXZlcmFnZS1yZWFjdC1yb3V0ZXItcy1idWlsdC1pbi1kYXRhLWRlZHVwbGljYXRpb24=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1792470380">how to leverage React Router’s built-in data deduplication</a>.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">Christian Ekrem wrote an article called <a href="https://click.kit-mail6.com/v8u5q54200irhvo63r7ighv2xemlls9hq32o/6qhehoull5rrg3ho/aHR0cHM6Ly9jZWtyZW0uZ2l0aHViLmlvL3Bvc3RzL3RoZS1kaXNjaXBsaW5lLW9mLWNvbnN0cmFpbnRzLWVsbS11c2VyZWR1Y2VyLWxlc3NvbnMv" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1792470381">The Discipline of Constraints</a> about what Elm taught him about React’s <code style="font-size: 14px;">useReducer</code>. It’s similar logic to why I constrain myself to only writing this newsletter in a hot sauna between the hours of 2-4 am with nothing in my system but <em>Thai Green Curry</em> flavored Pringles. Healthy body, healthy mind <span role="img" aria-label="yin yang">☯️</span>.</p>
</li>
</ol>
<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://click.kit-mail6.com/v8u5q54200irhvo63r7ighv2xemlls9hq32o/kkhmh2unn5wwqptl/aHR0cHM6Ly9ieXRlcy5kZXYvYWR2ZXJ0aXNl" url-id="1792470382">Sponsor Bytes</a></div>
<div style="margin-bottom:20px"><a style="color: #FCBA28; font-size: 14px; font-weight: 600; text-decoration: underline;" href="https://click.kit-mail6.com/v8u5q54200irhvo63r7ighv2xemlls9hq32o/58hvh8uggnxx8ei6/aHR0cHM6Ly9ieXRlcy5kZXYvc2hhcmU=" url-id="1792470383">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://click.kit-mail6.com/v8u5q54200irhvo63r7ighv2xemlls9hq32o/25h2h9u33899prh3/aHR0cHM6Ly91aS5kZXY=" url-id="1792470384">ui.dev</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://click.kit-mail6.com/v8u5q54200irhvo63r7ighv2xemlls9hq32o/qvh8h8udd4wwm7ul/aHR0cHM6Ly9ieXRlcy5kZXYvdW5zdWJzY3JpYmU=" style="color: #9B9890;" url-id="1792470385">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://unsubscribe.kit-mail6.com/v8u5q54200irhvo63r7ighv2xemlls9hq32o">Unsubscribe</a></span>
<!-- -->
<img src="https://open.kit-mail6.com/v8u5q54200irhvo63r7ighv2xemlls9hq32o" alt="">
</body>
</html>