<!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/jared-wide-eyes.png">
<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/sonar-logo.png">
<link rel="preload" as="image" href="https://bytes.dev/images/content/moose-guitar.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: Bun’s all in (one)</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> A githook psyop, what happens when CEOs get bored and a language that is “basically really very good”.</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/68uxdxk733b8h53om82sohpznmdqva9hlqvo/3ohphdu3pdn2d7brhn/aHR0cHM6Ly9ieXRlcy5kZXYvYXJjaGl2ZXMvNTE1" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1881240344">#515</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/jared-wide-eyes.png" alt="Jarred Sumner with a wide-eyed smile" 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 your new boss’s wife starts pitching you her startup idea<!-- --> </p>
</div>
<h3 style="font-size: 24px; margin-bottom: 0; padding-left: 24px; padding-right: 24px;">Bun’s all in (one)</h3>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">Bun is officially a Rust project as of <a href="https://c5e21242.click.convertkit-mail.com/68uxdxk733b8h53om82sohpznmdqva9hlqvo/n2hohquv7okxovs6hg/aHR0cHM6Ly9idW4uY29tL2Jsb2cvYnVuLXYxLjQ=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1881240345">Bun 1.4</a>, which fixed over 2,900 issues, made a major jump in Node.js compatibility, and improved memory usage. But now that the Rust migration side quest is over and Jared is sleeping again, this release is getting back to Bun’s original vision: being an all-in-one toolchain for JS/TS.</p>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">Even though they advertised it as their “smallest release ever”, the Bun team shipped a bunch of new features that further collapse the tools you need to be productive by providing them directly in the runtime.</p>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">Here’s a quick look at your new <del>toys</del> tools:</p>
<ul>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;"><strong style="font-weight: 600;">Bun.Image:</strong> Bun now provides <a href="https://c5e21242.click.convertkit-mail.com/68uxdxk733b8h53om82sohpznmdqva9hlqvo/48hvh7umx2np26hxh7/aHR0cHM6Ly9idW4uY29tL2Jsb2cvYnVuLXYxLjQjYnVuLWltYWdl" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1881240346">a built-in image manipulation tool</a> that’s 1.38× faster than Sharp.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;"><strong style="font-weight: 600;">Bun.WebView:</strong> Instead of reaching for Puppeteer or Playwright, Bun now has <a href="https://c5e21242.click.convertkit-mail.com/68uxdxk733b8h53om82sohpznmdqva9hlqvo/wnh2h6uq0o3kogc7hx/aHR0cHM6Ly9idW4uY29tL2Jsb2cvYnVuLXYxLjQjYnVuLXdlYnZpZXc=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1881240347">a built-in headless browser implementation</a>. On macOS it uses the system’s WebKit with nothing to install, but it can also drive an installed Chromium / Chrome / Edge browser.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;"><strong style="font-weight: 600;">Bun.markdown:</strong> There is now <a href="https://c5e21242.click.convertkit-mail.com/68uxdxk733b8h53om82sohpznmdqva9hlqvo/reh8h9um65e35ni2h6/aHR0cHM6Ly9idW4uY29tL2Jsb2cvYnVuLXYxLjQjYnVuLW1hcmtkb3du" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1881240348">a Markdown parser built into Bun</a> that supports GFM extensions, custom rendering callbacks, and a new method that converts Markdown to React.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;"><strong style="font-weight: 600;">Bun.cron():</strong> Bun’s <a href="https://c5e21242.click.convertkit-mail.com/68uxdxk733b8h53om82sohpznmdqva9hlqvo/08hwhgu2l7k97ntlh5/aHR0cHM6Ly9idW4uY29tL2Jsb2cvYnVuLXYxLjQjYnVuLWNyb24=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1881240349">cron implementation</a> can run a callback on a schedule, or register OS-level jobs that can survive restarts.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;"><strong style="font-weight: 600;">Bun.Terminal:</strong> Now you can create interactive terminal applications with <a href="https://c5e21242.click.convertkit-mail.com/68uxdxk733b8h53om82sohpznmdqva9hlqvo/vqh3hmuowkdvk0fghl/aHR0cHM6Ly9idW4uY29tL2Jsb2cvYnVuLXYxLjQjYnVuLXRlcm1pbmFs" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1881240351">Bun’s built-in PTY support</a>, which makes subprocesses behave as though they’re running in a real terminal.</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 this continues, npm’s biggest threat isn’t supply-chain attacks; it’s Jarred Sumner and his army of Claude bots building every package directly into the runtime.</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/68uxdxk733b8h53om82sohpznmdqva9hlqvo/l2heh6ulxkznk7t6h0/aHR0cHM6Ly9mYWNlYm9vay5jb20vc2hhcmVyL3NoYXJlci5waHA_dT1odHRwcyUzQSUyRiUyRmJ5dGVzLmRldiUyRmFyY2hpdmVzJTJGNTE1" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1881240352"><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/68uxdxk733b8h53om82sohpznmdqva9hlqvo/m2h7h6u34n7qnpbmhq/aHR0cHM6Ly93d3cubGlua2VkaW4uY29tL3NoYXJpbmcvc2hhcmUtb2Zmc2l0ZS8_dXJsPWh0dHBzJTNBJTJGJTJGYnl0ZXMuZGV2JTJGYXJjaGl2ZXMlMkY1MTU=" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1881240353"><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/68uxdxk733b8h53om82sohpznmdqva9hlqvo/dphehmuep7mo79tmh4/aHR0cHM6Ly90d2l0dGVyLmNvbS9pbnRlbnQvdHdlZXQvP3RleHQ9QSUyMGdpdGhvb2slMjBwc3lvcCUyQyUyMHdoYXQlMjBoYXBwZW5zJTIwd2hlbiUyMENFT3MlMjBnZXQlMjBib3JlZCUyMGFuZCUyMGElMjBsYW5ndWFnZSUyMHRoYXQlMjBpcyUyMCVFMiU4MCU5Q2Jhc2ljYWxseSUyMHJlYWxseSUyMHZlcnklMjBnb29kJUUyJTgwJTlELiZ1cmw9aHR0cHMlM0ElMkYlMkZieXRlcy5kZXYlMkZhcmNoaXZlcyUyRjUxNQ==" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1881240354"><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/68uxdxk733b8h53om82sohpznmdqva9hlqvo/e0hph0u7rn2ln8t8h2/bWFpbHRvOj9zdWJqZWN0PVlvdSUyMGxpa2UlMjBjb3JuYnJlYWQlM0YmYm9keT1UaG91Z2h0JTIweW91JTI3ZCUyMGxvdmUlMjB0aGlzJTIwd2VlayUyN3MlMjBCeXRlcyUwQS0tLSUwQUElMjBnaXRob29rJTIwcHN5b3AlMkMlMjB3aGF0JTIwaGFwcGVucyUyMHdoZW4lMjBDRU9zJTIwZ2V0JTIwYm9yZWQlMjBhbmQlMjBhJTIwbGFuZ3VhZ2UlMjB0aGF0JTIwaXMlMjAlRTIlODAlOUNiYXNpY2FsbHklMjByZWFsbHklMjB2ZXJ5JTIwZ29vZCVFMiU4MCU5RC4lMEFodHRwcyUzQSUyRiUyRmJ5dGVzLmRldiUyRmFyY2hpdmVzJTJGNTE1" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1881240355"><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/sonar-logo.png" alt="Sonar 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/moose-guitar.jpg" alt="An older man holding a guitar made from a moose antler in a parking lot" 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 combine Gitar and SonarQube and find out it’s the best of both worlds<!-- --> </p>
</div>
<h3 style="font-size: 24px; margin-bottom: 0; padding-left: 24px; padding-right: 24px;"><a href="https://c5e21242.click.convertkit-mail.com/68uxdxk733b8h53om82sohpznmdqva9hlqvo/7qh7h2u9n4m64nizh6/aHR0cHM6Ly9mYW5kZi5jby80NXVVdEo0" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1881240356">AI code review that fixes your code</a></h3>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">Code review tools that only use an LLM to find bugs are mostly just guessing. Fortunately, Sonar combines agentic code review with formal verification. Best of all, when it’s done, it fixes your code.</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 it works:</strong></p>
<ul>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">When you create a PR, <a href="https://c5e21242.click.convertkit-mail.com/68uxdxk733b8h53om82sohpznmdqva9hlqvo/7qh7h2u9n4m64nizh6/aHR0cHM6Ly9mYW5kZi5jby80NXVVdEo0" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1881240356">SonarQube</a> (formal code verification) and Gitar (AI-native) both review your code.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">When it finds an issue, it doesn’t just flag it - it generates the fix and pushes it straight to the branch.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">It also debugs your CI and makes sure everything stays green.</p>
</li>
</ul>
<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/68uxdxk733b8h53om82sohpznmdqva9hlqvo/7qh7h2u9n4m64nizh6/aHR0cHM6Ly9mYW5kZi5jby80NXVVdEo0" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1881240356">Try Gitar for free today</a> and don’t just guess and check - get the best of <em>both worlds.</em></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/68uxdxk733b8h53om82sohpznmdqva9hlqvo/owhkhwuwq87680cvhr/aHR0cHM6Ly9hZ2lsaXR5Y21zLmNvbS93ZWJtY3AtZm9yLWRldmVsb3BlcnM_dXRtX3NvdXJjZT1ieXRlcy5kZXYmdXRtX21lZGl1bT1lbWFpbCZ1dG1fY2FtcGFpZ249Ynl0ZXMtbmV3c2xldHRlci1hdWctMjU=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1881240357">Agility CMS</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>Want AI agents to interact with your website through WebMCP? Take Agility CMS’s <strong style="font-weight: 600;"><a href="https://c5e21242.click.convertkit-mail.com/68uxdxk733b8h53om82sohpznmdqva9hlqvo/owhkhwuwq87680cvhr/aHR0cHM6Ly9hZ2lsaXR5Y21zLmNvbS93ZWJtY3AtZm9yLWRldmVsb3BlcnM_dXRtX3NvdXJjZT1ieXRlcy5kZXYmdXRtX21lZGl1bT1lbWFpbCZ1dG1fY2FtcGFpZ249Ynl0ZXMtbmV3c2xldHRlci1hdWctMjU=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1881240357">2-minute readiness assessment</a></strong> before you start building.</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;">function</span> <span class="token function" style="color: #9d7dce; font-size: 15px;">makeCamelCase</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token parameter" style="color: #f38ba3; font-size: 15px;">text</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> changeCase <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> <span class="token keyword" style="color: #f38ba3; font-size: 15px;">import</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token string" style="color: #f99157; font-size: 15px;">'https://cdn.skypack.dev/change-case'</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span>
<span class="token keyword" style="color: #f38ba3; font-size: 15px;">return</span> changeCase<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span><span class="token function" style="color: #9d7dce; font-size: 15px;">camelCase</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span>text<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;">Alistair Smith wrote about <a href="https://c5e21242.click.convertkit-mail.com/68uxdxk733b8h53om82sohpznmdqva9hlqvo/z2hgh7ueld8kdzbph0/aHR0cHM6Ly9hbGlzdGFpci5zaC9nbGVhbS1idW4tYXBwcw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1881240358">compiling Gleam applications using Bun</a>. Why? “Basically Gleam is really very good”.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Yagiz Nizipli wrote about <a href="https://c5e21242.click.convertkit-mail.com/68uxdxk733b8h53om82sohpznmdqva9hlqvo/p8hehqu4q7l27vhqh3/aHR0cHM6Ly93d3cueWFnaXouY28vZWxpbWluYXRpbmctYnJhbmNoZXMtaW4tY3BwLWxvb3Bz" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1881240359">how to eliminate branches in C++ loops</a>. If you want to parse URLs yourself, read this, otherwise, go thank our boy for making X.com faster.</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/68uxdxk733b8h53om82sohpznmdqva9hlqvo/x0hph3ueq7lpn8u5hl/aHR0cHM6Ly9hYnN0cmFjdC5jb252ZXguZGV2Lz91dG1fc291cmNlPW5ld3NsZXR0ZXImdXRtX2NhbXBhaWduPUJ5dGVzX1NlY29uZGFyeQ==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1881240360">Abstract Conf</a> is happening in San Francisco on September 2. Speakers like Theo Browne, David Cramer, and more will teach about core engineering principles that matter more than ever in the age of AI. <a href="https://c5e21242.click.convertkit-mail.com/68uxdxk733b8h53om82sohpznmdqva9hlqvo/x0hph3ueq7lpn8u5hl/aHR0cHM6Ly9hYnN0cmFjdC5jb252ZXguZGV2Lz91dG1fc291cmNlPW5ld3NsZXR0ZXImdXRtX2NhbXBhaWduPUJ5dGVzX1NlY29uZGFyeQ==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1881240360">Register before this Friday</a>. [sponsored]</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Tobi read “Git at any scale” and decided to vibe-code his own Rust-based <a href="https://c5e21242.click.convertkit-mail.com/68uxdxk733b8h53om82sohpznmdqva9hlqvo/kkhmh2unx93585hlh7/aHR0cHM6Ly9naXRodWIuY29tL3RvYmkvd2FsZ2l0" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1881240362">distributed system for Git called walgit</a>. This is going to make me miss when bored CEOs bought race cars, isn’t it?</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Jake Archibald wrote about <a href="https://c5e21242.click.convertkit-mail.com/68uxdxk733b8h53om82sohpznmdqva9hlqvo/58hvh8ug69zn50h6h4/aHR0cHM6Ly9qYWtlYXJjaGliYWxkLmNvbS8yMDI2L2Nzcy1jdXN0b20tcHJvcGVydHktY29tcHV0ZS10aW1lLw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1881240363">controlling when custom properties are computed in CSS</a>.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Ryan Carniato wrote about <a href="https://c5e21242.click.convertkit-mail.com/68uxdxk733b8h53om82sohpznmdqva9hlqvo/25h2h9u3moe870u3h4/aHR0cHM6Ly93d3cuc29saWRqcy5jb20vYmxvZy9hc3luYy1zb2xpZC13cml0ZS1zeW5jLXJ1bi1hc3luYw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1881240364">how async works in Solid 2.0</a>. Some are saying he’s “solved async”.</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/68uxdxk733b8h53om82sohpznmdqva9hlqvo/qvh8h8udk60480tlhk/aHR0cHM6Ly90cmlnZ2VyLmRldi8=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1881240365">Trigger.dev</a>’s chat.agent gives every conversation its own durable machine, so the API route you’d normally maintain just disappears. Build with the AI SDK you already use; turns run without serverless timeouts, survive tab closes, and pause at zero idle cost. <a href="https://c5e21242.click.convertkit-mail.com/68uxdxk733b8h53om82sohpznmdqva9hlqvo/9qhzhdud52l6ggs9h3/aHR0cHM6Ly9mYW5kZi5jby80aEFKN2RM" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1881240367">Try chat.agent now</a>. [sponsored]</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Almog Gavra wrote another article about object storage and <a href="https://c5e21242.click.convertkit-mail.com/68uxdxk733b8h53om82sohpznmdqva9hlqvo/3ohphdu3pdn2q7crhn/aHR0cHM6Ly93d3cuYml0c3hwYWdlcy5jb20vcC9wcm90b2NvbHMtZm9yLXRyYW5zYWN0aW9uYWwtdXNhZ2U=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1881240368">how to build “correct” applications</a> without external coordination.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">José Valim went in depth on <a href="https://c5e21242.click.convertkit-mail.com/68uxdxk733b8h53om82sohpznmdqva9hlqvo/n2hohquv7okxnvb6hg/aHR0cHM6Ly9kYXNoYml0LmNvL2Jsb2cvd2Vic29ja2V0cy12cy1zc2U=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1881240369">WebSockets vs. Server-Sent Events</a>.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Jeff Dickey created <a href="https://c5e21242.click.convertkit-mail.com/68uxdxk733b8h53om82sohpznmdqva9hlqvo/48hvh7umx2np06ixh7/aHR0cHM6Ly9oay5qZHguZGV2Lw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1881240370"><code style="font-size: 15px;">hk</code>, a githook manager built in Rust</a>. As someone who feels like Husky is a psyop, this is good news.</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 - Presented by <a href="https://c5e21242.click.convertkit-mail.com/68uxdxk733b8h53om82sohpznmdqva9hlqvo/owhkhwuwq87680cvhr/aHR0cHM6Ly9hZ2lsaXR5Y21zLmNvbS93ZWJtY3AtZm9yLWRldmVsb3BlcnM_dXRtX3NvdXJjZT1ieXRlcy5kZXYmdXRtX21lZGl1bT1lbWFpbCZ1dG1fY2FtcGFpZ249Ynl0ZXMtbmV3c2xldHRlci1hdWctMjU=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1881240357">Agility CMS</a>
</h4></div>
</div>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">This <code style="font-size: 15px;">import</code> statement is actually a <a href="https://c5e21242.click.convertkit-mail.com/68uxdxk733b8h53om82sohpznmdqva9hlqvo/wnh2h6uq0o3krgi7hx/aHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvU3RhdGVtZW50cy9pbXBvcnQjZHluYW1pY19pbXBvcnRz" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1881240371">dynamic import</a>. When it is first called, it fetches and parses the module asynchronously, which means <code style="font-size: 15px;">import()</code> returns a promise. Use <code style="font-size: 15px;">await</code> to access the module.</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;">async</span> <span class="token keyword" style="color: #f38ba3; font-size: 15px;">function</span> <span class="token function" style="color: #9d7dce; font-size: 15px;">makeCamelCase</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token parameter" style="color: #f38ba3; font-size: 15px;">text</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> changeCase <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> <span class="token keyword" style="color: #f38ba3; font-size: 15px;">await</span> <span class="token keyword" style="color: #f38ba3; font-size: 15px;">import</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token string" style="color: #f99157; font-size: 15px;">'https://cdn.skypack.dev/change-case'</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span>
<span class="token keyword" style="color: #f38ba3; font-size: 15px;">return</span> changeCase<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span><span class="token function" style="color: #9d7dce; font-size: 15px;">camelCase</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span>text<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/68uxdxk733b8h53om82sohpznmdqva9hlqvo/08hwhgu2l7k9mnilh5/aHR0cHM6Ly9ieXRlcy5kZXYvYWR2ZXJ0aXNl" url-id="1881240373">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/68uxdxk733b8h53om82sohpznmdqva9hlqvo/8ghqh3uor5x2gzbkh9/aHR0cHM6Ly9ieXRlcy5kZXYvc2hhcmU=" url-id="1881240374">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/68uxdxk733b8h53om82sohpznmdqva9hlqvo/vqh3hmuowkdvn0hghl/aHR0cHM6Ly9maXJlc2hpcC5kZXY=" url-id="1881240375">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/68uxdxk733b8h53om82sohpznmdqva9hlqvo/l2heh6ulxkzno7u6h0/aHR0cHM6Ly9ieXRlcy5kZXYvdW5zdWJzY3JpYmU=" style="color: #9B9890;" url-id="1881240376">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/68uxdxk733b8h53om82sohpznmdqva9hlqvo">Unsubscribe</a></span>
<!-- -->
<img src="https://c5e21242.open.convertkit-mail.com/68uxdxk733b8h53om82sohpznmdqva9hlqvo" alt="">
</body>
</html>