<!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/goblin-guy.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/microsoft-logo.png">
<link rel="preload" as="image" href="https://bytes.dev/images/content/github-copilot.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 TypeScript 7.0 prophecy is fulfilled</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> Linux and Windows playing nicely, another unhinged Web Components take, and the single best headline we’ve ever seen.</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/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/reh8h9umzqzgvzf2/aHR0cHM6Ly9ieXRlcy5kZXYvYXJjaGl2ZXMvNDgw" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1849883440">#480</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/goblin-guy.jpg" alt="Pale goblin guy posing" 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 TypeScript build is 10x faster than your coworker's<!-- --> </p>
</div>
<h3 style="font-size: 24px; margin-bottom: 0; padding-left: 24px; padding-right: 24px;">The TypeScript 7.0 prophecy is fulfilled</h3>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">For the past 13 years, TypeScript has been built on a steady foundation of… more TypeScript. Or more specifically, a compiler that’s written in TypeScript, which compiles to JavaScript, and runs on Node.</p>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">That slightly convoluted approach has worked well enough to make TypeScript the most popular programming language in the world, but it also created super long build times for large codebases. And because Daniel Rosenwasser loves you, he and the TypeScript team spent the last year porting the entire TypeScript codebase to Go, culminating in yesterday’s <a href="https://c5e21242.click.convertkit-mail.com/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/08hwhgu2rmr3w5bl/aHR0cHM6Ly9kZXZibG9ncy5taWNyb3NvZnQuY29tL3R5cGVzY3JpcHQvYW5ub3VuY2luZy10eXBlc2NyaXB0LTctMC1iZXRhLw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1849883441">TypeScript 7.0 beta</a>.</p>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">The new Go port is roughly 10x faster than TypeScript 6.0, while still keeping all the type-checking logic structurally identical to TypeScript 6.0. That means you don’t need to worry about getting new errors or doing a big migration yourself, you’ll just get faster builds. A few more key things worth knowing:</p>
<ul>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;"><strong style="font-weight: 600;">New package, new binary:</strong> install via <code style="font-size: 15px;">npm install -D @typescript/native-preview@beta</code> and run <code style="font-size: 15px;">tsgo</code> instead of <code style="font-size: 15px;">tsc</code>. It’s all the same flags and same behavior.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;"><strong style="font-weight: 600;">Parallel everything:</strong> parsing, type-checking, and emitting now run in parallel. New <code style="font-size: 15px;">--checkers</code> and <code style="font-size: 15px;">--builders</code> flags let you tune thread count for your machine or CI runner.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;"><strong style="font-weight: 600;">Hard errors on 6.0 deprecations:</strong> they already warned us about this in TypeScript 6.0, but <code style="font-size: 15px;">target: es5</code>, <code style="font-size: 15px;">moduleResolution: node</code>, AMD/UMD/SystemJS, and <code style="font-size: 15px;">baseUrl</code> are all gone.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;"><strong style="font-weight: 600;">JS support reworked:</strong> <code style="font-size: 15px;">@enum</code>, <code style="font-size: 15px;">@class</code>, and some Closure-style JSDoc patterns are no longer recognized. More consistent with <code style="font-size: 15px;">.ts</code> analysis now.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;"><strong style="font-weight: 600;">Programmatic API coming in 7.1:</strong> so if your tooling depends on the TS compiler API, hold tight.</p>
</li>
</ul>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">They’re targeting a stable release within the next two months, but the TS team says you can probably use it in your daily workflow right now, especially since Bloomberg, Vercel, VoidZero, and more are already using it in production.</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> Nice work, TypeScript team, but I’ve been told that an intern at Cloudflare has already slop-forked their own version called FlareScript that’s 10x faster on all internal benchmarks.</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/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/8ghqh3uongnmp6fk/aHR0cHM6Ly9mYWNlYm9vay5jb20vc2hhcmVyL3NoYXJlci5waHA_dT1odHRwcyUzQSUyRiUyRmJ5dGVzLmRldiUyRmFyY2hpdmVzJTJGNDgw" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1849883442"><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/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/vqh3hmuornrz3ztg/aHR0cHM6Ly93d3cubGlua2VkaW4uY29tL3NoYXJpbmcvc2hhcmUtb2Zmc2l0ZS8_dXJsPWh0dHBzJTNBJTJGJTJGYnl0ZXMuZGV2JTJGYXJjaGl2ZXMlMkY0ODA=" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1849883443"><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/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/l2heh6ul7o78vxc6/aHR0cHM6Ly90d2l0dGVyLmNvbS9pbnRlbnQvdHdlZXQvP3RleHQ9QnJlYWtpbmclMjBkb3duJTIwVHlwZVNjcmlwdCUyMDcuMCUyMGFuZCUyMHRoZSUyMDEweCUyMGZhc3RlciUyMHRzZ28lMjBjb21waWxlciZ1cmw9aHR0cHMlM0ElMkYlMkZieXRlcy5kZXYlMkZhcmNoaXZlcyUyRjQ4MA==" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1849883444"><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/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/m2h7h6u3zozd0lhm/bWFpbHRvOj9zdWJqZWN0PVlvdSUyMGxpa2UlMjBjb3JuYnJlYWQlM0YmYm9keT1UaG91Z2h0JTIweW91JTI3ZCUyMGxvdmUlMjB0aGlzJTIwd2VlayUyN3MlMjBCeXRlcyUwQS0tLSUwQUJyZWFraW5nJTIwZG93biUyMFR5cGVTY3JpcHQlMjA3LjAlMjBhbmQlMjB0aGUlMjAxMHglMjBmYXN0ZXIlMjB0c2dvJTIwY29tcGlsZXIlMEFodHRwcyUzQSUyRiUyRmJ5dGVzLmRldiUyRmFyY2hpdmVzJTJGNDgw" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1849883445"><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/microsoft-logo.png" alt="Microsoft 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/github-copilot.jpg" alt="Copilot CLI" 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;"> </p>
</div>
<h3 style="font-size: 24px; margin-bottom: 0; padding-left: 24px; padding-right: 24px;"><a href="https://c5e21242.click.convertkit-mail.com/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/dphehmuenqnlwxcm/aHR0cHM6Ly9mYW5kZi5jby80bTJaVDV4" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1849883446">Microsoft Build 2026 is coming to San Francisco June 2-3</a></h3>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">Learn how modern AI systems and cloud platforms are actually built. At <a href="https://c5e21242.click.convertkit-mail.com/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/dphehmuenqnlwxcm/aHR0cHM6Ly9mYW5kZi5jby80bTJaVDV4" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1849883446">Microsoft Build</a>, engineering leaders and builders will share how they design, train, and ship real production systems.</p>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">From June 2-3, join hands-on workshops, dive into technical sessions, and debug alongside developers who are solving real-world challenges across modern cloud and AI developer platforms.</p>
<ul>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;"><a href="https://c5e21242.click.convertkit-mail.com/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/dphehmuenqnlwxcm/aHR0cHM6Ly9mYW5kZi5jby80bTJaVDV4" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1849883446">Keynotes</a> take place at San Francisco’s Palace of Fine Arts, followed by deeper technical sessions, labs, and community events at Fort Mason.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Every workshop and talk is designed for people who build and ship software.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Explore new tools, experiment with code, and connect with developers working on similar problems.</p>
</li>
</ul>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">If you’re looking to ship smarter and experience what’s next in AI, this is the place to do it.</p>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;"><a href="https://c5e21242.click.convertkit-mail.com/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/dphehmuenqnlwxcm/aHR0cHM6Ly9mYW5kZi5jby80bTJaVDV4" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1849883446">Learn more and register for Microsoft Build</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;">Sponsored by <a href="https://c5e21242.click.convertkit-mail.com/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/e0hph0u7oko8wxi8/aHR0cHM6Ly93d3cuZGF0YWRvZ2hxLmNvbS9yZXNvdXJjZXMvcnVtLWJyb3dzZXItbW9iaWxlLXByb2R1Y3QtYnJpZWYtcmV0YWlsZXJzLz91dG1fc291cmNlPWJ5dGVzZGV2JnV0bV9tZWRpdW09bmV3c2xldHRlciZ1dG1fY2FtcGFpZ249ZGctcnVtLXd3LXJ1bS1yZXRhaWwtYnl0ZXM=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1849883447">Datadog</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>Get this free brief on <a href="https://c5e21242.click.convertkit-mail.com/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/e0hph0u7oko8wxi8/aHR0cHM6Ly93d3cuZGF0YWRvZ2hxLmNvbS9yZXNvdXJjZXMvcnVtLWJyb3dzZXItbW9iaWxlLXByb2R1Y3QtYnJpZWYtcmV0YWlsZXJzLz91dG1fc291cmNlPWJ5dGVzZGV2JnV0bV9tZWRpdW09bmV3c2xldHRlciZ1dG1fY2FtcGFpZ249ZGctcnVtLXd3LXJ1bS1yZXRhaWwtYnl0ZXM=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1849883447">Real User Monitoring</a> to learn the specific techniques engineering teams are using to identify, reproduce, and resolve issues to boost conversions on their site.</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> car <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> <span class="token punctuation" style="color: #231F20; font-size: 15px;">{</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">name</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> <span class="token string" style="color: #f99157; font-size: 15px;">'Tesla'</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span>
<span class="token function" style="color: #9d7dce; font-size: 15px;">startEngine</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span> <span class="token punctuation" style="color: #231F20; font-size: 15px;">{</span>
console<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span><span class="token function" style="color: #9d7dce; font-size: 15px;">log</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token template-string" style="font-size: 15px;"><span class="token template-punctuation string" style="color: #f99157; font-size: 15px;">`</span><span class="token string" style="color: #f99157; font-size: 15px;">The </span><span class="token interpolation" style="color: #12b5e5; font-size: 15px;"><span class="token interpolation-punctuation punctuation" style="color: #231F20; font-size: 15px;">${</span><span class="token keyword" style="color: #f38ba3; font-size: 15px;">this</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span>name<span class="token interpolation-punctuation punctuation" style="color: #231F20; font-size: 15px;">}</span></span><span class="token string" style="color: #f99157; font-size: 15px;"> engine is starting...</span><span class="token template-punctuation string" style="color: #f99157; font-size: 15px;">`</span></span><span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
<span class="token punctuation" style="color: #231F20; font-size: 15px;">}</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span>
<span class="token function" style="color: #9d7dce; font-size: 15px;">delayedStart</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span> <span class="token punctuation" style="color: #231F20; font-size: 15px;">{</span>
<span class="token function" style="color: #9d7dce; font-size: 15px;">setTimeout</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token keyword" style="color: #f38ba3; font-size: 15px;">this</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span>startEngine<span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span> <span class="token number" style="color: #fcba28; font-size: 15px;">1000</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
<span class="token punctuation" style="color: #231F20; font-size: 15px;">}</span>
<span class="token punctuation" style="color: #231F20; font-size: 15px;">}</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
car<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span><span class="token function" style="color: #9d7dce; font-size: 15px;">delayedStart</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
</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;">techwizardrino wrote about <a href="https://c5e21242.click.convertkit-mail.com/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/7qh7h2u9505rmvfz/aHR0cHM6Ly93ZWJtYXRyaWNlcy5jb20vcG9zdC9ob3ctYS1yb2Jsb3gtY2hlYXQtYW5kLW9uZS1haS10b29sLWJyb3VnaHQtZG93bi12ZXJjZWwtcy1lbnRpcmUtcGxhdGZvcm0=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1849883448">how a roblox cheat and one AI tool brought down Vercel’s entire platform</a>. Six years writing this newsletter, and that might be the best headline I’ve ever seen.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Jamie Turner made a video about <a href="https://c5e21242.click.convertkit-mail.com/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/owhkhwuwd4d27kiv/aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g_dj1GNmdzaUlaek5JSQ==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1849883449">why AI agents are so good at Convex</a>. [sponsored]</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Dominic Gannaway created <a href="https://c5e21242.click.convertkit-mail.com/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/z2hgh7uexoxq8khp/aHR0cHM6Ly90c3J4LmRldi8=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1849883450">TSRX</a>, a TypeScript language extension that he describes as “the spiritual successor to JSX.” My high school classmates described me that way once, before I threw my life away betting on the ponies.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Elena Marchetti wrote about <a href="https://c5e21242.click.convertkit-mail.com/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/p8hehqu4o9onldtq/aHR0cHM6Ly9hd2Vzb21lYWdlbnRzLmFpL25ld3MvZ2l0aHViLWZha2Utc3RhcnMtaW52ZXN0aWdhdGlvbi8=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1849883451">GitHub’s fake star economy</a>. But they’re not fake if <em>you</em> believe in them.</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/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/x0hph3ue0n05ldi5/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvaGFpbHMvd3NsOXg=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1849883452">WSL9x</a> runs a modern Linux kernel cooperatively inside the Windows 9x kernel. This was supposed to be impossible, so that’s neat.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Two Sentry engineers are hosting <a href="https://c5e21242.click.convertkit-mail.com/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/6qhehoulepemddco/aHR0cHM6Ly9zZW50cnkuaW8vcmVzb3VyY2VzL3NlbnRyeS1zdXBhYmFzZS13b3Jrc2hvcC8_dXRtX3NvdXJjZT1ieXRlcyZ1dG1fbWVkaXVtPXBhaWQtY29tbXVuaXR5JnV0bV9jYW1wYWlnbj1haS1meTI3cTEtc3VwYWJhc2V3b3Jrc2hvcCZ1dG1fY29udGVudD1uZXdzbGV0dGVyLXNlY29uZGFyeS1yZWdpc3Rlcg==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1849883453">a live session debugging your full Supabase stack</a> on April 30th. They’ll walk through the most common break points for AI-generated backends, and give you a clear approach to make any Supabase app observable and production-ready. [sponsored]</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Microsoft Engineer, Stefan Haas wrote a great deep dive on <a href="https://c5e21242.click.convertkit-mail.com/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/kkhmh2unv8vk39tl/aHR0cHM6Ly9zdGVmYW5oYWFzLnh5ei9hcnRpY2xlLzE1ay1jaXJjdWxhci1kZXBlbmRlbmNpZXMv" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1849883454">how he resolved 15k circular dependencies</a> in a large Nx monorepo and lived to tell the tale.</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/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/58hvh8ug252rz5f6/aHR0cHM6Ly9ibG9nLm1hcmdlbG8uY29tL3doYXRzLW5ldy1pbi12aXNpb25jYW1lcmEtdjU=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1849883455">VisionCamera v5</a> just shipped with new Nitro Modules and a new Constraints API.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Your OpenClaw needs <a href="https://c5e21242.click.convertkit-mail.com/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/25h2h9u3w7wke2i3/aHR0cHM6Ly9hcGlmeS5jb20vaW50ZWdyYXRpb25zL29wZW5jbGF3" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1849883456">Apify Actors</a>. 25,000+ tools for real-time web data. One CLI install: <code style="font-size: 15px;">openclaw plugins install @apify/apify-openclaw-plugin</code> [sponsored]</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Sylwia Laskowska wrote about <a href="https://c5e21242.click.convertkit-mail.com/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/qvh8h8udp8p90dtl/aHR0cHM6Ly9kZXYudG8vc3lsd2lhLWxhc2svbW9zdC1hcHBzLWFyZS1zbG93ZXItdGhhbi10aGV5LW5lZWQtdG8tYmUtaGVyZXMtd2h5LWxpdmUtZGVtby0yaGg4" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1849883457">why most apps are slower than they need to be</a>. And if this is another Web Components unabomber-style manifesto, I’m going to be very upset.</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/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/g3hnhwumwew4k6fr/aHR0cHM6Ly9yc3BhY2sucnMvYmxvZy9hbm5vdW5jaW5nLTItMA==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1849883458">Rspack 2.0</a> is much faster, has better ESM support, and is growing very fast.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Evan You gave his <a href="https://c5e21242.click.convertkit-mail.com/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/9qhzhdudrgrol9s9/aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g_dj1hOV9VZDVNRlRqVQ==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1849883459">State of Vue 2026</a> talk last month. It was a great speech, but I thought it was rude when the delegates from Iowa kept standing up to chant “FOUR MORE YEARS.”</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;">Sponsored by <a href="https://c5e21242.click.convertkit-mail.com/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/e0hph0u7oko8wxi8/aHR0cHM6Ly93d3cuZGF0YWRvZ2hxLmNvbS9yZXNvdXJjZXMvcnVtLWJyb3dzZXItbW9iaWxlLXByb2R1Y3QtYnJpZWYtcmV0YWlsZXJzLz91dG1fc291cmNlPWJ5dGVzZGV2JnV0bV9tZWRpdW09bmV3c2xldHRlciZ1dG1fY2FtcGFpZ249ZGctcnVtLXd3LXJ1bS1yZXRhaWwtYnl0ZXM=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1849883447">Datadog</a>
</h4></div>
</div>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">The bug has to do with our invocation of <code style="font-size: 15px;">startEngine</code>. Because we’re passing <code style="font-size: 15px;">this.startEngine</code> as an argument to <code style="font-size: 15px;">setTimeout</code>, we’re not the ones invoking it. That means it’s not going to get invoked with the correct context (<code style="font-size: 15px;">this</code>). We can fix this in two ways – either using <code style="font-size: 15px;">.bind</code> (<span role="img" aria-label="upside-down face">🙃</span>) or invoking the function ourselves like this.</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> car <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> <span class="token punctuation" style="color: #231F20; font-size: 15px;">{</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">name</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> <span class="token string" style="color: #f99157; font-size: 15px;">'Tesla'</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span>
<span class="token function" style="color: #9d7dce; font-size: 15px;">startEngine</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span> <span class="token punctuation" style="color: #231F20; font-size: 15px;">{</span>
console<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span><span class="token function" style="color: #9d7dce; font-size: 15px;">log</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token template-string" style="font-size: 15px;"><span class="token template-punctuation string" style="color: #f99157; font-size: 15px;">`</span><span class="token string" style="color: #f99157; font-size: 15px;">The </span><span class="token interpolation" style="color: #12b5e5; font-size: 15px;"><span class="token interpolation-punctuation punctuation" style="color: #231F20; font-size: 15px;">${</span><span class="token keyword" style="color: #f38ba3; font-size: 15px;">this</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span>name<span class="token interpolation-punctuation punctuation" style="color: #231F20; font-size: 15px;">}</span></span><span class="token string" style="color: #f99157; font-size: 15px;"> engine is starting...</span><span class="token template-punctuation string" style="color: #f99157; font-size: 15px;">`</span></span><span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
<span class="token punctuation" style="color: #231F20; font-size: 15px;">}</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span>
<span class="token function" style="color: #9d7dce; font-size: 15px;">delayedStart</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span> <span class="token punctuation" style="color: #231F20; font-size: 15px;">{</span>
<span class="token function" style="color: #9d7dce; font-size: 15px;">setTimeout</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span> <span class="token operator" style="color: #12b5e5; font-size: 15px;">=></span> <span class="token keyword" style="color: #f38ba3; font-size: 15px;">this</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span><span class="token function" style="color: #9d7dce; font-size: 15px;">startEngine</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span> <span class="token number" style="color: #fcba28; font-size: 15px;">1000</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
<span class="token punctuation" style="color: #231F20; font-size: 15px;">}</span>
<span class="token punctuation" style="color: #231F20; font-size: 15px;">}</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
</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/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/3ohphdu3gqgenvsr/aHR0cHM6Ly9ieXRlcy5kZXYvYWR2ZXJ0aXNl" url-id="1849883460">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/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/n2hohquv0n0zk2b6/aHR0cHM6Ly9ieXRlcy5kZXYvc2hhcmU=" url-id="1849883461">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/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/48hvh7um8084nvax/aHR0cHM6Ly9maXJlc2hpcC5kZXY=" url-id="1849883462">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/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl/wnh2h6uq6r6e37h7/aHR0cHM6Ly9ieXRlcy5kZXYvdW5zdWJzY3JpYmU=" style="color: #9B9890;" url-id="1849883463">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/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl">Unsubscribe</a></span>
<!-- -->
<img src="https://c5e21242.open.convertkit-mail.com/0vu0e0g2zzb9h9r6ep4tlhv7mqwpptnhnvdl" alt="">
</body>
</html>