<!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/drake-hair.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/qa-wolf-logo.png">
<link rel="preload" as="image" href="https://bytes.dev/images/content/wonka-ew.jpg">
<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: Another Prettier killer has entered the villa</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: 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> The campaign promises of import maps, the meaning of <del>life</del> <em>React Fiber</em>, and the resurrection of Flash.</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://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4w2m2rslh8dz7ewqh4hpe96/owhkhwuwpqq89mav/aHR0cHM6Ly9ieXRlcy5kZXYvYXJjaGl2ZXMvNDY4" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1838319354">#468</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/drake-hair.jpg" alt="Drake with a green suit and wig on" 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;">Convincing your team to migrate formatters for the third time this year<!-- --> </p>
</div>
<h3 style="font-size: 24px; margin-bottom: 0; padding-left: 24px; padding-right: 24px;">Another Prettier killer has entered the villa</h3>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">Oxfmt just shipped its first <a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4w2m2rslh8dz7ewqh4hpe96/z2hgh7uenlld6qtp/aHR0cHM6Ly9veGMucnMvYmxvZy8yMDI2LTAyLTI0LW94Zm10LWJldGE=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1838319355">beta</a>, and it could become the one true Prettier replacement that’s long been prophesied.</p>
<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;">Quick review:</strong> As you might’ve guessed from the name, Oxfmt is the formatter arm of the Oxc toolchain that’s behind Oxlint and a few other Rust-based JS tools. And it’s not the first attempt to create “Prettier but fast” – Biome is another Rust-based formatter that’s seen its weekly downloads jump by 3.5x in the past year to over 6 mil.</p>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">The children clearly yearn for the Rust, but Oxfmt takes things to the next level. It’s 30x faster than Prettier and 3x faster than Biome on a cold run. And while Biome claims ~97% Prettier compatibility, Oxfmt now passes 100% of Prettier’s JS/TS conformance tests – which means you can migrate a large codebase without getting thousands of diffs.</p>
<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;">Other highlights:</strong></p>
<ul>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><strong style="font-weight: 600;">One formatter for your entire project</strong> – Oxfmt handles JS, TS, JSX, TSX, JSON, YAML, TOML, HTML, CSS, SCSS, Markdown, MDX, and more. No more duct-taping Prettier plus four plugins to cover all the file types in your monorepo.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><strong style="font-weight: 600;">Tailwind and import sorting are built in</strong> – No more needing <code style="font-size: 14px;">prettier-plugin-tailwindcss</code>, because Oxfmt handles Tailwind class sorting natively for both JS/TS and non-JS files. Import sorting also ships out of the box with full config options for groups, side effects, and newlines between sections.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><strong style="font-weight: 600;">Migration is a one-liner</strong> – <code style="font-size: 14px;">pnpm add -D oxfmt && pnpm oxfmt --migrate prettier && pnpm oxfmt</code> lets you install, migrate your config, and reformat your files. It’s already being used in production by projects like Vue, OpenClaw, and Turborepo.</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> Prettier’s biggest competitive moat is that nobody wants to spend time migrating their formatter. But a one-line install with zero formatting diffs and 30x faster runs makes Oxfmt a pretty easy yes.</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/qdux3x7pqqb7h4w2m2rslh8dz7ewqh4hpe96/p8hehqu4mqq76qaq/aHR0cHM6Ly9mYWNlYm9vay5jb20vc2hhcmVyL3NoYXJlci5waHA_dT1odHRwcyUzQSUyRiUyRmJ5dGVzLmRldiUyRmFyY2hpdmVzJTJGNDY4" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1838319356"><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/qdux3x7pqqb7h4w2m2rslh8dz7ewqh4hpe96/x0hph3ueoqq724s5/aHR0cHM6Ly93d3cubGlua2VkaW4uY29tL3NoYXJpbmcvc2hhcmUtb2Zmc2l0ZS8_dXJsPWh0dHBzJTNBJTJGJTJGYnl0ZXMuZGV2JTJGYXJjaGl2ZXMlMkY0Njg=" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1838319357"><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/qdux3x7pqqb7h4w2m2rslh8dz7ewqh4hpe96/6qhehoulz992r4uo/aHR0cHM6Ly90d2l0dGVyLmNvbS9pbnRlbnQvdHdlZXQvP3RleHQ9V2h5JTIwT3hmbXQlMjBtaWdodCUyMGFjdHVhbGx5JTIwcmVwbGFjZSUyMFByZXR0aWVyJnVybD1odHRwcyUzQSUyRiUyRmJ5dGVzLmRldiUyRmFyY2hpdmVzJTJGNDY4" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1838319358"><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/qdux3x7pqqb7h4w2m2rslh8dz7ewqh4hpe96/kkhmh2unrxx9w7tl/bWFpbHRvOj9ib2R5PVRob3VnaHQlMjB5b3UlMjdkJTIwbG92ZSUyMHRoaXMlMjB3ZWVrJTI3cyUyMEJ5dGVzJTBBLS0tJTBBV2h5JTIwT3hmbXQlMjBtaWdodCUyMGFjdHVhbGx5JTIwcmVwbGFjZSUyMFByZXR0aWVyJTBBaHR0cHMlM0ElMkYlMkZieXRlcy5kZXYlMkZhcmNoaXZlcyUyRjQ2OCZzdWJqZWN0PVlvdSUyMGxpa2UlMjBjb3JuYnJlYWQlM0Y=" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1838319359"><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/qa-wolf-logo.png" alt="QA Wolf 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/wonka-ew.jpg" alt="Willy Wonka saying ew" 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;">When QA'ing the code takes longer than writing the code<!-- --> </p>
</div>
<h3 style="font-size: 24px; margin-bottom: 0; padding-left: 24px; padding-right: 24px;"><a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4w2m2rslh8dz7ewqh4hpe96/58hvh8ugq6692pc6/aHR0cHM6Ly9hdHRlbmQucWF3b2xmLmNvbS9zZWUtaXQtaW4tYWN0aW9uLXFhLXdvbGZzLWFpLXBvd2VyZWQtYWktcG93ZXJlZC1xYS1wbGF0Zm9ybS9yZWdpc3RyYXRpb24_dXRtX2NhbXBhaWduPUFDUV9BbGxfRGVtb19Db252ZXJzaW9uc19fTmV3c2xldHRlckF1ZGllbmNlXy1fTmV3c2xldHRlcl9EZW1pbmFyXzIwMjYwMzA1LU5vbmVfRXhwZXJpbWVudC1GQUxTRSZ1dG1fY29udGVudD1EZW1pbmFyX1JTVlBIZXJlRm9yVGhlV29ya3Nob3BfTm9uZV9IZWFkbGluZSUzQUhvd1RvU2V0VXBBSVBvd2VyZWRRQUZvckRhaWx5UmVsZWFzZXNGcmVlV2ViaW5hcl9fX19OZXdzbGV0dGVyLVByaW1hcnlQbGFjZW1lbnRfMjAyNjAzMDVfdjFfJnV0bV9tZWRpdW09bmV3c2xldHRlciZ1dG1fc291cmNlPWJ5dGVzJnV0bV90ZXJtPWhlYWRsaW5lLUhvd1RvU2V0VXBBSVBvd2VyZWRRQUZvckRhaWx5UmVsZWFzZXNGcmVlV2ViaW5hcg==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1838319360">How to set up AI-powered QA for daily releases - free webinar</a></h3>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">AI fundamentally changes how software gets built. Faster developers are building more features and opening more PRs than ever before… but QA is still the bottleneck.</p>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">Join QA Wolf co-founder & CEO Jon Perl for a <a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4w2m2rslh8dz7ewqh4hpe96/25h2h9u36mmowva3/aHR0cHM6Ly9hdHRlbmQucWF3b2xmLmNvbS9zZWUtaXQtaW4tYWN0aW9uLXFhLXdvbGZzLWFpLXBvd2VyZWQtYWktcG93ZXJlZC1xYS1wbGF0Zm9ybS9yZWdpc3RyYXRpb24_dXRtX2NhbXBhaWduPUFDUV9BbGxfRGVtb19Db252ZXJzaW9uc19fTmV3c2xldHRlckF1ZGllbmNlXy1fTmV3c2xldHRlcl9EZW1pbmFyXzIwMjYwMzA1LU5vbmVfRXhwZXJpbWVudC1GQUxTRSZ1dG1fY29udGVudD1EZW1pbmFyX1JTVlBIZXJlRm9yVGhlV29ya3Nob3BfTm9uZV9IZWFkbGluZSUzQUhvd1RvU2V0VXBBSVBvd2VyZWRRQUZvckRhaWx5UmVsZWFzZXNGcmVlV2ViaW5hcl9fX19OZXdzbGV0dGVyLVByaW1hcnlQbGFjZW1lbnRfMjAyNjAzMDVfdjFfJnV0bV9tZWRpdW09bmV3c2xldHRlciZ1dG1fc291cmNlPWJ5dGVzJnV0bV90ZXJtPWJvZHktTGl2ZVdlYmluYXI=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1838319361">live webinar</a> to see how QA Wolf’s AI-powered testing platform equips teams for an AI-native SDLC.</p>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">You’ll see:</p>
<ul>
<li>
<strong style="font-weight: 600;">Mapping AI</strong> that autonomously maps app workflows</li>
<li>
<strong style="font-weight: 600;">Automation AI</strong> that generates deterministic, code-based tests</li>
<li>
<strong style="font-weight: 600;">Parallel runs</strong> that return results in minutes</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://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4w2m2rslh8dz7ewqh4hpe96/qvh8h8udzkk6p4ul/aHR0cHM6Ly9hdHRlbmQucWF3b2xmLmNvbS9zZWUtaXQtaW4tYWN0aW9uLXFhLXdvbGZzLWFpLXBvd2VyZWQtYWktcG93ZXJlZC1xYS1wbGF0Zm9ybS9yZWdpc3RyYXRpb24_dXRtX2NhbXBhaWduPUFDUV9BbGxfRGVtb19Db252ZXJzaW9uc19fTmV3c2xldHRlckF1ZGllbmNlXy1fTmV3c2xldHRlcl9EZW1pbmFyXzIwMjYwMzA1LU5vbmVfRXhwZXJpbWVudC1GQUxTRSZ1dG1fY29udGVudD1EZW1pbmFyX1JTVlBIZXJlRm9yVGhlV29ya3Nob3BfTm9uZV9IZWFkbGluZSUzQUhvd1RvU2V0VXBBSVBvd2VyZWRRQUZvckRhaWx5UmVsZWFzZXNGcmVlV2ViaW5hcl9fX19OZXdzbGV0dGVyLVByaW1hcnlQbGFjZW1lbnRfMjAyNjAzMDVfdjFfJnV0bV9tZWRpdW09bmV3c2xldHRlciZ1dG1fc291cmNlPWJ5dGVzJnV0bV90ZXJtPWN0YS1SU1ZQSGVyZUZvclRoZVdvcmtzaG9w" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1838319362">RSVP here for the workshop</a>. It’s worth your time.</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;"><a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4w2m2rslh8dz7ewqh4hpe96/g3hnhwumrqqzwnir/aHR0cHM6Ly94LmNvbS9zaGFkY24vc3RhdHVzLzIwMjk5NzQxNTE0Mjc5ODk1Njc=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1838319363">shadcn/cli v4</a> comes with shadcn/skills, presets, dry-run, and lots more. shadcn supremacy shows no signs of slowing.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">Sanku wrote a deep dive on <a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4w2m2rslh8dz7ewqh4hpe96/9qhzhdud0552r3f9/aHR0cHM6Ly9pbnNpZGUtcmVhY3QudmVyY2VsLmFwcC9ibG9nL3VuZGVyc3RhbmRpbmctd2h5LXJlYWN0LWZpYmVyLWV4aXN0cw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1838319364">understanding why React Fiber exists</a>. Still waiting for Sanku’s deep dive on why <em>I</em> exist, outside of my intrinsic longing to write newsletters and try out new flavors of Monster.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4w2m2rslh8dz7ewqh4hpe96/3ohphdu30ppdgnir/aHR0cHM6Ly93d3cuZGF0YWRvZ2hxLmNvbS9yZXNvdXJjZXMvZnJvbnRlbmQtdGVzdGluZy1iZXN0LXByYWN0aWNlcy8_dXRtX2NhbXBhaWduPWRnLXN5bnRoZXRpY3Mtd3ctZnJvbnRlbmQtdGVzdGluZy1raXQtYnl0ZXMmdXRtX21lZGl1bT1uZXdzbGV0dGVyJnV0bV9zb3VyY2U9Ynl0ZXNkZXY=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1838319365">Frontend Testing Best Practices Guide</a> is a free resource that shows you how to efficiently create and maintain reliable frontend tests using Datadog. [sponsored]</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">Lea Verou wrote an optimistic post called <a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4w2m2rslh8dz7ewqh4hpe96/n2hohquvm77o0ot6/aHR0cHM6Ly9sZWEudmVyb3UubWUvYmxvZy8yMDI2L2V4dGVybmFsLWltcG9ydC1tYXBzLXRvZGF5Lw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1838319366">External import maps, today!</a>. Yes <span role="img" aria-label="clapping hands">👏</span> we <span role="img" aria-label="clapping hands">👏</span> can <span role="img" aria-label="clapping hands">👏</span>.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">Firefox 148 comes with a new <a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4w2m2rslh8dz7ewqh4hpe96/48hvh7umvxx280sx/aHR0cHM6Ly9oYWNrcy5tb3ppbGxhLm9yZy8yMDI2LzAyL2dvb2RieWUtaW5uZXJodG1sLWhlbGxvLXNldGh0bWwtc3Ryb25nZXIteHNzLXByb3RlY3Rpb24taW4tZmlyZWZveC0xNDgv" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1838319367">Sanitizer API for untrusted HTML</a> to prevent XSS vulnerabilities.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">Sergiy Dybskiy wrote on the Sentry blog about how <a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4w2m2rslh8dz7ewqh4hpe96/wnh2h6uqn00o6wa7/aHR0cHM6Ly9ibG9nLnNlbnRyeS5pby9ub3QtZXZlcnl0aGluZy10aGF0LWJyZWFrcy1pcy1hbi1lcnJvci1hLWxvZ3MtYW5kLW5leHQtanMtc3RvcnkvP3V0bV9jYW1wYWlnbj1sb2dzLWZ5MjdxMS1uZXh0anMmdXRtX2NvbnRlbnQ9bmV3c2xldHRlci1wcmVzZW50aW5nLWxlYXJubW9yZSZ1dG1fbWVkaXVtPXBhaWQtY29tbXVuaXR5JnV0bV9zb3VyY2U9Ynl0ZXM=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1838319368">one well-placed log saved him hours of debugging a nasty production issue</a> in his Next.js application. Can you please place a bunch of logs in my Next.js application, Sergiy? I can pay you in Diet Coke. [sponsored]</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">gws creator, Justin Poehnelt wrote about <a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4w2m2rslh8dz7ewqh4hpe96/reh8h9um4665zmb2/aHR0cHM6Ly9qdXN0aW4ucG9laG5lbHQuY29tL3Bvc3RzL3Jld3JpdGUteW91ci1jbGktZm9yLWFpLWFnZW50cy8=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1838319369">why you need to rewrite your CLI for AI agents</a>.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">Bill Premo is <a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4w2m2rslh8dz7ewqh4hpe96/08hwhgu2vll7rgal/aHR0cHM6Ly9iaWxsLm5ld2dyb3VuZHMuY29tL25ld3MvcG9zdC8xNjA3MTE4" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1838319370">rebuilding Flash with 2026 tech</a>. I just hope he can rebuild all of our childhoods in the process.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">Ryan Toronto wrote a deep dive on <a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4w2m2rslh8dz7ewqh4hpe96/8ghqh3uozrr5n9ck/aHR0cHM6Ly90d29mb2xkZnJhbWV3b3JrLmNvbS9ibG9nL2Vycm9yLXJlbmRlcmluZy13aXRoLXJzYw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1838319371">error rendering with RSC</a>.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><a href="https://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4w2m2rslh8dz7ewqh4hpe96/vqh3hmuolwwkr8sg/aHR0cHM6Ly90YW5zdGFjay5jb20vYmxvZy9mcm9tLWRvY3MtdG8tYWdlbnRz" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1838319372">TanStack Intent</a> is a CLI for shipping Agent Skills with your npm packages. That probably means we’re about 10 days away from that part of the cycle where people start tweeting about how “agent skills are dead and all the smart, beautiful people are <em>actually</em> using _______” - but let’s enjoy it while it lasts.</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://c5e21242.click.convertkit-mail.com/qdux3x7pqqb7h4w2m2rslh8dz7ewqh4hpe96/l2heh6ulexxk7qa6/aHR0cHM6Ly9ieXRlcy5kZXYvYWR2ZXJ0aXNl" url-id="1838319373">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/qdux3x7pqqb7h4w2m2rslh8dz7ewqh4hpe96/m2h7h6u3v44nzvim/aHR0cHM6Ly9ieXRlcy5kZXYvc2hhcmU=" url-id="1838319374">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/qdux3x7pqqb7h4w2m2rslh8dz7ewqh4hpe96/dphehmuevpp7n6sm/aHR0cHM6Ly9maXJlc2hpcC5kZXY=" url-id="1838319375">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/qdux3x7pqqb7h4w2m2rslh8dz7ewqh4hpe96/e0hph0u76rrnooi8/aHR0cHM6Ly9ieXRlcy5kZXYvdW5zdWJzY3JpYmU=" style="color: #9B9890;" url-id="1838319376">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/qdux3x7pqqb7h4w2m2rslh8dz7ewqh4hpe96">Unsubscribe</a></span>
<!-- -->
<img src="https://c5e21242.open.convertkit-mail.com/qdux3x7pqqb7h4w2m2rslh8dz7ewqh4hpe96" alt="">
</body>
</html>