<!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/endgame.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/sentry-logo.png">
<link rel="preload" as="image" href="https://bytes.dev/images/content/esp.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: The VC-backed Open Source Endgame</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> Your annual physical with the React doctor, a wellness check for Angular, and the shopping cart animation of your dreams.</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/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/dphehmuegnz4epsmh4/aHR0cHM6Ly9ieXRlcy5kZXYvYXJjaGl2ZXMvNDkz" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1860600620">#493</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/endgame.jpg" alt="Kid eating popcorn with a Thanos mask on" 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;">Watching VC-backed open source reach the endgame<!-- --> </p>
</div>
<h3 style="font-size: 24px; margin-bottom: 0; padding-left: 24px; padding-right: 24px;">The VC-backed Open Source Endgame</h3>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">Cloudflare announced that <a href="https://c5e21242.click.convertkit-mail.com/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/e0hph0u7go9p7df8h2/aHR0cHM6Ly9ibG9nLmNsb3VkZmxhcmUuY29tL3ZvaWR6ZXJvLWpvaW5zLWNsb3VkZmxhcmU=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1860600621">they are acquiring VoidZero</a> (the company behind Vite, Vitest, OXC, and Rolldown), and normally this is where we like to insert ourselves as the main character and talk about how we called it in our annual predictions issue, but this one got me.</p>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">In hindsight we probably should have seen this coming when they <a href="https://c5e21242.click.convertkit-mail.com/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/7qh7h2u975vk9etzh6/aHR0cHM6Ly9ieXRlcy5kZXYvYXJjaGl2ZXMvNDcx" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1860600622">announced Void</a>, their hosting platform, a few months back. A hosting platform that was built on top of… you guessed it… Cloudflare. But as suspicious as this was, we thought they were opening door #2 in the classic “sell your company to (insert your favorite late stage tech co) or build a hosting product” decision tree for how to actually make money. By choosing door #1, it effectively ends the debate on how open source gets funded.</p>
<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;">The bigger picture:</strong></p>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">We’ve been doing this newsletter long enough to see the VC-backed open source reach the endgame. Here is a quick list of companies we’ve written about:</p>
<ul>
<li>Rome Tools: Company died.</li>
<li>Turborepo: Acquired by Vercel.</li>
<li>Gatsby: Acquired by Netlify.</li>
<li>Remix: Acquired by Shopify.</li>
<li>Nuxt: Acquired by Vercel.</li>
<li>Bun: Acquired by Anthropic.</li>
<li>Astro: Acquired by Cloudflare.</li>
<li>Drizzle: Acquired by PlanetScale.</li>
<li>VoidZero: Acquired by Cloudflare.</li>
</ul>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">With two exceptions, Deno & TanStack (who notably never took VC money), all of these companies chose door #1. And now that almost all of the companies participating in this experiment have exited, it does raise the question: where do things go from here?</p>
<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;">Where things go from here:</strong></p>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">It seems like most open source projects moving forward will fit into 3 categories: personal projects from tech billionaires (Mitchell Hashimoto, Evan Wallace), small indie projects for specific niches, and platform sponsored open source that funnels users towards their paid products.</p>
<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> The framework wars are now the platform wars. And as much as I enjoy Dane and Guillermo’s <del>sexual tension</del> Twitter spats, I am a little nostalgic for the good ol’ days when we were sippin’ on Soylent, arguing tabs vs spaces, and fighting for our lives trying to figure out how to configure Webpack.</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/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/owhkhwuwvd3kwzcvhr/aHR0cHM6Ly9mYWNlYm9vay5jb20vc2hhcmVyL3NoYXJlci5waHA_dT1odHRwcyUzQSUyRiUyRmJ5dGVzLmRldiUyRmFyY2hpdmVzJTJGNDkz" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1860600623"><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/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/z2hgh7uevx94p9uph0/aHR0cHM6Ly93d3cubGlua2VkaW4uY29tL3NoYXJpbmcvc2hhcmUtb2Zmc2l0ZS8_dXJsPWh0dHBzJTNBJTJGJTJGYnl0ZXMuZGV2JTJGYXJjaGl2ZXMlMkY0OTM=" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1860600624"><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/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/p8hehqu40ok3g3sqh3/aHR0cHM6Ly90d2l0dGVyLmNvbS9pbnRlbnQvdHdlZXQvP3RleHQ9Q2xvdWRmbGFyZSUyMGFubm91bmNlZCUyMHRoYXQlMjB0aGV5JTIwYXJlJTIwYWNxdWlyaW5nJTIwVm9pZFplcm8lMkMlMjBhbmQlMjBpdCUyMGZlZWxzJTIwbGlrZSUyMHRoZSUyMFZDLWJhY2tlZCUyMG9wZW4lMjBzb3VyY2UlMjBlbmRnYW1lLiZ1cmw9aHR0cHMlM0ElMkYlMkZieXRlcy5kZXYlMkZhcmNoaXZlcyUyRjQ5Mw==" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1860600625"><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/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/kkhmh2unqvgd62clh7/bWFpbHRvOj9zdWJqZWN0PVlvdSUyMGxpa2UlMjBjb3JuYnJlYWQlM0YmYm9keT1UaG91Z2h0JTIweW91JTI3ZCUyMGxvdmUlMjB0aGlzJTIwd2VlayUyN3MlMjBCeXRlcyUwQS0tLSUwQUNsb3VkZmxhcmUlMjBhbm5vdW5jZWQlMjB0aGF0JTIwdGhleSUyMGFyZSUyMGFjcXVpcmluZyUyMFZvaWRaZXJvJTJDJTIwYW5kJTIwaXQlMjBmZWVscyUyMGxpa2UlMjB0aGUlMjBWQy1iYWNrZWQlMjBvcGVuJTIwc291cmNlJTIwZW5kZ2FtZS4lMEFodHRwcyUzQSUyRiUyRmJ5dGVzLmRldiUyRmFyY2hpdmVzJTJGNDkz" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1860600628"><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/sentry-logo.png" alt="Sentry 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/esp.jpg" alt="A person using telepathy" 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;">When you finally connect your OTel logs to Sentry<!-- --> </p>
</div>
<h3 style="font-size: 24px; margin-bottom: 0; padding-left: 24px; padding-right: 24px;"><a href="https://c5e21242.click.convertkit-mail.com/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/58hvh8ug82pvkzt6h4/aHR0cHM6Ly9ibG9nLnNlbnRyeS5pby9zZW50cnktb3BlbnRlbGVtZXRyeS13b3JrLXRvZ2V0aGVyLz91dG1fc291cmNlPWJ5dGVzJnV0bV9tZWRpdW09cGFpZC1jb21tdW5pdHkmdXRtX2NhbXBhaWduPW9ic2VydmFiaWxpdHktZnkyN3EyLWV2ZXJncmVlbiZ1dG1fY29udGVudD1uZXdzbGV0dGVyLXByaW1hcnktb3RlbC1ibG9nLWxlYXJubW9yZQ==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1860600629">Sentry + OpenTelemetry Working Together</a></h3>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">If your backend already uses OpenTelemetry, you can send traces and logs to Sentry by changing a few environment variables. No SDK swap, no instrumentation rewrite.</p>
<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;">Here’s how:</strong></p>
<ol>
<li>Point your OTLP exporter at Sentry’s endpoint</li>
<li>Add the Sentry SDK on the frontend for browser context</li>
<li>Get a single stack trace from click to backend.</li>
</ol>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">Learn more about how to integrate Sentry with OpenTelemetry by reading their <a href="https://c5e21242.click.convertkit-mail.com/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/58hvh8ug82pvkzt6h4/aHR0cHM6Ly9ibG9nLnNlbnRyeS5pby9zZW50cnktb3BlbnRlbGVtZXRyeS13b3JrLXRvZ2V0aGVyLz91dG1fc291cmNlPWJ5dGVzJnV0bV9tZWRpdW09cGFpZC1jb21tdW5pdHkmdXRtX2NhbXBhaWduPW9ic2VydmFiaWxpdHktZnkyN3EyLWV2ZXJncmVlbiZ1dG1fY29udGVudD1uZXdzbGV0dGVyLXByaW1hcnktb3RlbC1ibG9nLWxlYXJubW9yZQ==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1860600629">latest blog post</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 - Presented by <a href="https://c5e21242.click.convertkit-mail.com/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/25h2h9u3zwrv4of3h4/aHR0cHM6Ly9nby5jbGVyay5jb20vZ0w5b25uVg==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1860600630">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>The Clerk CLI lets you <a href="https://c5e21242.click.convertkit-mail.com/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/25h2h9u3zwrv4of3h4/aHR0cHM6Ly9nby5jbGVyay5jb20vZ0w5b25uVg==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1860600630">add auth to your app in 3 simple commands</a> without ever leaving the terminal or copy/pasting API keys.</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> petName <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> <span class="token string" style="color: #f99157; font-size: 15px;">"Leo"</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
<span class="token keyword" style="color: #f38ba3; font-size: 15px;">const</span> placeholder <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> <span class="token string" style="color: #f99157; font-size: 15px;">"{NAME}"</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
<span class="token keyword" style="color: #f38ba3; font-size: 15px;">const</span> reminderTemplate <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> <span class="token string" style="color: #f99157; font-size: 15px;">"{NAME} is due for another visit. Please call us so we can set up a new appointment. We look forward to seeing you and {NAME} soon."</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
<span class="token keyword" style="color: #f38ba3; font-size: 15px;">const</span> reminder <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> reminderTemplate<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span><span class="token function" style="color: #9d7dce; font-size: 15px;">replace</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span>placeholder<span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span> petName<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;">Aiden Bai, our resident React doctor, wrote about <a href="https://c5e21242.click.convertkit-mail.com/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/qvh8h8ud5pg7o8ulhk/aHR0cHM6Ly93d3cucmVhY3QuZG9jdG9yL2Jsb2cvdGhlLXByb2JsZW0td2l0aC11c2VlZmZlY3Q=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1860600631">the problem with useEffect</a>. Unfortunately, you’re going to have to “turn and cough” to get to the solution.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Angular <a href="https://c5e21242.click.convertkit-mail.com/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/9qhzhdudmrkqzdf9h3/aHR0cHM6Ly9ibG9nLmFuZ3VsYXIuZGV2L2Fubm91bmNpbmctYW5ndWxhci12MjItYzUyYmI4M2E0NjY0" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1860600633">released version 22</a> this week, which is good news because we were about to have the police do a wellness check.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Patrick Dawkins from Upsun wrote an article on <a href="https://c5e21242.click.convertkit-mail.com/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/3ohphdu3lg6o44arhn/aHR0cHM6Ly9kZXZlbG9wZXIudXBzdW4uY29tL3Bvc3RzL3R1dG9yaWFscy9zYW5kYm94aW5nLWFpLWFnZW50cy1vbi11cHN1bj91dG1fc291cmNlPWJ5dGVzJnV0bV9tZWRpdW09c3BvbnNvcmVkX25ld3NsZXR0ZXI=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1860600634">how to actually sandbox your AI agent, and how to verify it worked</a>. [sponsored]</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">The OXC team is working on <a href="https://c5e21242.click.convertkit-mail.com/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/n2hohquvp0w86ru6hg/aHR0cHM6Ly9naXRodWIuY29tL294Yy1wcm9qZWN0L294Yy9wdWxsLzIyOTQy" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1860600635">integrating the Rust port of the React compiler</a>.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Anthropic wrote a post about Claude’s <a href="https://c5e21242.click.convertkit-mail.com/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/48hvh7ume8z56ktxh7/aHR0cHM6Ly93d3cuYW50aHJvcGljLmNvbS9pbnN0aXR1dGUvcmVjdXJzaXZlLXNlbGYtaW1wcm92ZW1lbnQ=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1860600636">recursive self-improvement</a> and how the world is not ready. It’s a real pick-me-up if you’re having a bad day.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Sankalpa Acharya wrote about how <a href="https://c5e21242.click.convertkit-mail.com/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/wnh2h6uqp695xmc7hx/aHR0cHM6Ly9pbnNpZGUtcmVhY3QudmVyY2VsLmFwcC9ibG9nL2hvdy1yZWFjdC1zZXJ2ZXItY29tcG9uZW50LWludGVncmF0ZS13aXRoLWJ1bmRsZXI=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1860600637">React Server Components integrate with a bundler</a>.</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/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/reh8h9umrz92w4s2h6/aHR0cHM6Ly93d3cubWV0aWN1bG91cy5haS8_dXRtX3NvdXJjZT1ieXRlcyZ1dG1fbWVkaXVtPW5ld3NsZXR0ZXImdXRtX2NhbXBhaWduPTI2cTImdXRtX2NvbnRlbnQ9c2Vjb25kYXJ5" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1860600638">cover every edge case</a> of your web app. [sponsored]</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Benjamin Leonard from Oxide made a <a href="https://c5e21242.click.convertkit-mail.com/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/08hwhgu25r0ogeclh5/aHR0cHM6Ly9naXRodWIuY29tL294aWRlY29tcHV0ZXIvbWl0b3Mv" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1860600639">tool that generates ASCII art from your brand assets</a>.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Motion just added a <a href="https://c5e21242.click.convertkit-mail.com/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/8ghqh3uovne0qnukh9/aHR0cHM6Ly9tb3Rpb24uZGV2L2RvY3MvYXJj" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1860600640">new <code style="font-size: 15px;">arc</code> utility</a> that lets you do that fancy add to cart animation you’ve been dreaming of doing since you were a kid.</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/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/vqh3hmuo7r2xe7ighl/aHR0cHM6Ly9zZXNzaW9uaXplLmNvbS9hZ2VudC1jb25mLTIwMjYv" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1860600641">The call for papers is now open for Agent Conf</a>, Europe’s first major conference for AI engineers taking place in Warsaw, Poland on Sept. 17-18. They’re looking for original talks from people building with AI agents about agent design patterns, experimental approaches, orchestration, multi-agent systems, and production lessons. <a href="https://c5e21242.click.convertkit-mail.com/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/vqh3hmuo7r2xe7ighl/aHR0cHM6Ly9zZXNzaW9uaXplLmNvbS9hZ2VudC1jb25mLTIwMjYv" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1860600641">Submit here</a>. [sponsored]</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Pilcrow wrote <a href="https://c5e21242.click.convertkit-mail.com/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/l2heh6ul97506ms6h0/aHR0cHM6Ly9hdXRoLnBpbGNyb3dvbnBhcGVyLmNvbS8=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1860600642">“The Auth book”</a> which includes chapters on sessions, passkeys, and CSRF prevention. It’s basically Memoirs of a Geisha for people who love RSA signature schemes.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Christoph Nakazawa wrote about <a href="https://c5e21242.click.convertkit-mail.com/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/m2h7h6u3pzkgmdamhq/aHR0cHM6Ly9jcG9qZXIubmV0L3Bvc3RzL21vZGVybi1lbmdpbmVlcmluZy12YWx1ZXM=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1860600643">modern engineering values</a> in the age of LLMs. The top one is “secure the bag” (congrats on the acquisition buddy).</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;">Presented by <a href="https://c5e21242.click.convertkit-mail.com/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/25h2h9u3zwrv4of3h4/aHR0cHM6Ly9nby5jbGVyay5jb20vZ0w5b25uVg==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1860600630">Clerk</a>
</h4></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> petName <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> <span class="token string" style="color: #f99157; font-size: 15px;">"Leo"</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
<span class="token keyword" style="color: #f38ba3; font-size: 15px;">const</span> placeholder <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> <span class="token string" style="color: #f99157; font-size: 15px;">"{NAME}"</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
<span class="token keyword" style="color: #f38ba3; font-size: 15px;">const</span> reminderTemplate <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> <span class="token string" style="color: #f99157; font-size: 15px;">"{NAME} is due for another visit. Please call us so we can set up a new appointment. We look forward to seeing you and {NAME} soon."</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
<span class="token keyword" style="color: #f38ba3; font-size: 15px;">const</span> reminder <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> reminderTemplate<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span><span class="token function" style="color: #9d7dce; font-size: 15px;">replace</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span>placeholder<span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span> petName<span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
</code></pre>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;"><code style="font-size: 15px;">String.prototype.replace</code> only replaces the first occurrence found in the string. If there could be more than one occurrence, use <code style="font-size: 15px;">String.prototype.replaceAll</code>.</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> petName <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> <span class="token string" style="color: #f99157; font-size: 15px;">"Leo"</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
<span class="token keyword" style="color: #f38ba3; font-size: 15px;">const</span> placeholder <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> <span class="token string" style="color: #f99157; font-size: 15px;">"{NAME}"</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
<span class="token keyword" style="color: #f38ba3; font-size: 15px;">const</span> reminderTemplate <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> <span class="token string" style="color: #f99157; font-size: 15px;">"{NAME} is due for another visit. Please call us so we can set up a new appointment. We look forward to seeing you and {NAME} soon."</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
<span class="token keyword" style="color: #f38ba3; font-size: 15px;">const</span> reminder <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> reminderTemplate<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span><span class="token function" style="color: #9d7dce; font-size: 15px;">replaceAll</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span>placeholder<span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span> petName<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/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/dphehmuegnz48pfmh4/aHR0cHM6Ly9ieXRlcy5kZXYvYWR2ZXJ0aXNl" url-id="1860600644">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/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/e0hph0u7go9pqdh8h2/aHR0cHM6Ly9ieXRlcy5kZXYvc2hhcmU=" url-id="1860600645">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/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/7qh7h2u975vkweuzh6/aHR0cHM6Ly9maXJlc2hpcC5kZXY=" url-id="1860600646">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/75udrd6o33f8h62woqktzhw4mz4wntnh02g3/owhkhwuwvd3kgzivhr/aHR0cHM6Ly9ieXRlcy5kZXYvdW5zdWJzY3JpYmU=" style="color: #9B9890;" url-id="1860600647">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/75udrd6o33f8h62woqktzhw4mz4wntnh02g3">Unsubscribe</a></span>
<!-- -->
<img src="https://c5e21242.open.convertkit-mail.com/75udrd6o33f8h62woqktzhw4mz4wntnh02g3" alt="">
</body>
</html>