<!DOCTYPE html>
<html>
<head>
<title>Bytes: Snapchat is coming for React Native</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="color-scheme" content="light dark">
<meta name="supported-color-schemes" content="light dark">
<link href="https://fonts.googleapis.com/css2?family=Fira+Mono&family=Outfit:wght@400;500;700;900&family=Paytone+One" rel="stylesheet">
<style>@media (prefers-color-scheme: dark) {
.email-wrapper {
color: #F9F4DA !important;
background-color: #0F0D0E !important;
}
hr {
border-color: #262422 !important;
}
mark {
background-color: #231F20 !important;
color: #F9F4DA !important;
}
pre {
background-color: #231F20 !important;
border: 1px solid #231F20 !important;
color: #F9F4DA !important;
}
.bg-alt {
background-color: #231F20 !important;
}
.unsubscribe-link {
color: #504C48 !important;
}
.token.punctuation {
color: #f9f4da !important;
}
}
@media screen and (min-width: 600px) {
.mobile-break {
display: none;
}
}</style>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<table class="email-wrapper" border="0" cellspacing="0" width="100%" style="background-color: #FFF; border-collapse: collapse; color: #231F20; font-family: Outfit, sans-serif; font-size: 16px; width: 100%;"><tbody><tr>
<td style="border-collapse: collapse !important; word-break: normal;"></td>
<td width="600px" style="border-collapse: collapse !important; width: 600px; word-break: normal;"><div style="max-width:600px;padding-top:80px">
<div style="text-align:center"><img width="600" style="max-width: 100%; padding-bottom: 40px;" src="https://bytes.dev/images/bytes-banner-rounded.png" alt="Bytes"></div>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;"><strong style="font-weight: 600;">Today’s issue:</strong> Ancient Mayan predictions about WebAssembly, billions of GitHub dad jokes, and still waiting for big tech to stop hating.</p>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">Welcome to <a href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/n2hohquv6q98d6i6/aHR0cHM6Ly9ieXRlcy5kZXYvYXJjaGl2ZXMvNDQw" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1804779634">#440</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/snapchat.jpg" alt="DJ Khaled snapchat saying, they jealous it sad" 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;">Snapchat when they release v1 of their cross-platform framework before React Native<!-- --> </p>
</div>
<h3 style="font-size: 24px; margin-bottom: 0; padding-left: 24px; padding-right: 24px;">Snapchat is coming for React Native</h3>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">At least that’s what it felt like last week when they open-sourced <a href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/48hvh7um6ld5oghx/aHR0cHM6Ly9naXRodWIuY29tL1NuYXBjaGF0L1ZhbGRpP3RhYj1yZWFkbWUtb3YtZmlsZQ==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1804779635">Valdi</a>, a cross-platform UI framework that’s promising the best of both worlds: “true native performance” across platforms and a smooth developer experience that’s built for speed.</p>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">It’s still in beta for now, but Valdi has apparently been used in Snap’s large production apps for the last 8 years – so you know it’s been intensely battle-tested from processing all those unsolicited nudes and rainbow-vomit selfie filters.</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;">But what makes it different from React Native and other cross-platform frameworks?</strong> The biggest thing is that it lets you write declarative TypeScript components, which compile into platform-native views that are managed by its C++ layout engine – with no web views, no JS bridge, and no React-style runtime. It also generates type-safe bindings between your TypeScript code and the native platforms, so you get automatic code generation and native API access without needing a bunch of glue code.</p>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">Here are a few other key features that double down on this approach even more:</p>
<ul>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><strong style="font-weight: 600;">Smarter rendering</strong> – It uses <a href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/wnh2h6uqx725z8a7/aHR0cHM6Ly9naXRodWIuY29tL1NuYXBjaGF0L1ZhbGRpL2Jsb2IvbWFpbi9kb2NzL2RvY3MvcGVyZm9ybWFuY2Utdmlldy1yZWN5Y2xpbmcubWQ=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1804779636">automatic view recycling</a>, viewport-aware rendering, and an optimized layout engine to minimize redraws and keep scrolling silky-smooth.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><strong style="font-weight: 600;">Web-style DX</strong> – It comes with instant hot reload, full VS Code debugging, and TSX components with full type-safety, so that building native apps feels faster and more like building web apps.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><strong style="font-weight: 600;">Flexible adoption</strong> – You can embed Valdi into existing UIKit or Android view hierarchies and mix in Swift, Kotlin, or C++ modules when you want.</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> Did we just stumble into a golden age of cross-platform UI frameworks? TikTok open-sourced Lynx a few months ago, Meta’s React Native just rolled out its new bridge-less architecture, and now Snapchat has blessed us with Valdi.</p>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">If this keeps up, we may need a new unifying law of cross-platform physics: <em>the higher the rate of Brain Rot Per Scroll, the more robust the open-source output of the engineering team.</em></p>
<table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse: collapse; margin-top: 40px; text-align: center;"><tbody><tr><td style="border-collapse: collapse !important; padding-top: 12px; word-break: normal;">
<a href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/reh8h9umwdl28ki2/aHR0cHM6Ly9mYWNlYm9vay5jb20vc2hhcmVyL3NoYXJlci5waHA_dT1odHRwcyUzQSUyRiUyRmJ5dGVzLmRldiUyRmFyY2hpdmVzJTJGNDQw" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1804779637"><img alt="" style="display: inline-block; max-width: 100%; width: 32px;" width="25" src="https://bytes.dev/images/fb-share-icon.png"></a><a href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/08hwhgu2ge6o8vhl/aHR0cHM6Ly93d3cubGlua2VkaW4uY29tL3NoYXJpbmcvc2hhcmUtb2Zmc2l0ZS8_dXJsPWh0dHBzJTNBJTJGJTJGYnl0ZXMuZGV2JTJGYXJjaGl2ZXMlMkY0NDA=" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1804779638"><img alt="" style="display: inline-block; max-width: 100%; width: 32px;" width="25" src="https://bytes.dev/images/li-share-icon.png"></a><a href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/8ghqh3uoqd604dfk/aHR0cHM6Ly90d2l0dGVyLmNvbS9pbnRlbnQvdHdlZXQvP3RleHQ9QnJlYWtpbmclMjBkb3duJTIwYWxsJTIwdGhlJTIwaHlwZSUyMGFyb3VuZCUyMFZhbGRpJTJDJTIwdGhlJTIwbmV3JTIwY3Jvc3MtcGxhdGZvcm0lMjBVSSUyMGZyYW1ld29yayUyMGZyb20lMjBTbmFwY2hhdCUyMHRoYXQlMjdzJTIwVHlwZVNjcmlwdCUyMGFsbCUyMHRoZSUyMHdheSUyMGRvd24mdXJsPWh0dHBzJTNBJTJGJTJGYnl0ZXMuZGV2JTJGYXJjaGl2ZXMlMkY0NDA=" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1804779639"><img alt="" style="display: inline-block; max-width: 100%; width: 32px;" width="25" src="https://bytes.dev/images/tw-share-icon.png"></a><a href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/vqh3hmuoe09x5rtg/bWFpbHRvOj9ib2R5PVRob3VnaHQlMjB5b3UlMjdkJTIwbG92ZSUyMHRoaXMlMjB3ZWVrJTI3cyUyMEJ5dGVzJTBBLS0tJTBBQnJlYWtpbmclMjBkb3duJTIwYWxsJTIwdGhlJTIwaHlwZSUyMGFyb3VuZCUyMFZhbGRpJTJDJTIwdGhlJTIwbmV3JTIwY3Jvc3MtcGxhdGZvcm0lMjBVSSUyMGZyYW1ld29yayUyMGZyb20lMjBTbmFwY2hhdCUyMHRoYXQlMjdzJTIwVHlwZVNjcmlwdCUyMGFsbCUyMHRoZSUyMHdheSUyMGRvd24lMEFodHRwcyUzQSUyRiUyRmJ5dGVzLmRldiUyRmFyY2hpdmVzJTJGNDQwJnN1YmplY3Q9WW91JTIwbGlrZSUyMGNvcm5icmVhZCUzRg==" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1804779640"><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/dog-suit.jpg" alt="A dog tying a tie" 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;">Putting on a brave face before those EOY performance reviews<!-- --> </p>
</div>
<h3 style="font-size: 24px; margin-bottom: 0; padding-left: 24px; padding-right: 24px;"><a href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/l2heh6ul62m0g9c6/aHR0cHM6Ly93d3cucWF3b2xmLmNvbT91dG1fY2FtcGFpZ249QUNRX0FsbF9EZW1vX0NvbnZlcnNpb25zX19OZXdzbGV0dGVyQXVkaWVuY2VfLV9OZXdzbGV0dGVyX01lZXRFT1lEZWFkbGluZXNfMjAyNTExMTEtTm9uZV9FeHBlcmltZW50LUZBTFNFJnV0bV9jb250ZW50PU1lZXRFT1lEZWFkbGluZXNfR2V0QVBlcnNvbmFsaXplZERlbW9fTm9uZV9IZWFkbGluZSUzQUJlYXRZb3VyRU9ZRGVhZGxpbmVzV2l0aG91dExvc2luZ1lvdXJTYW5pdHlfX19fTmV3c2xldHRlci1QcmltYXJ5UGxhY2VtZW50XzIwMjUxMTExX3YxXyZ1dG1fbWVkaXVtPW5ld3NsZXR0ZXImdXRtX3NvdXJjZT1ieXRlcyZ1dG1fdGVybT1oZWFkbGluZS1CZWF0WW91ckVPWURlYWRsaW5lc1dpdGhvdXRMb3NpbmdZb3VyU2FuaXR5" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1804779641">Beat your EOY deadlines, without losing your sanity</a></h3>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">December ship panic is real, but <a href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/m2h7h6u3m56gr6fm/aHR0cHM6Ly93d3cucWF3b2xmLmNvbT91dG1fY2FtcGFpZ249QUNRX0FsbF9EZW1vX0NvbnZlcnNpb25zX19OZXdzbGV0dGVyQXVkaWVuY2VfLV9OZXdzbGV0dGVyX01lZXRFT1lEZWFkbGluZXNfMjAyNTExMTEtTm9uZV9FeHBlcmltZW50LUZBTFNFJnV0bV9jb250ZW50PU1lZXRFT1lEZWFkbGluZXNfR2V0QVBlcnNvbmFsaXplZERlbW9fTm9uZV9IZWFkbGluZSUzQUJlYXRZb3VyRU9ZRGVhZGxpbmVzV2l0aG91dExvc2luZ1lvdXJTYW5pdHlfX19fTmV3c2xldHRlci1QcmltYXJ5UGxhY2VtZW50XzIwMjUxMTExX3YxXyZ1dG1fbWVkaXVtPW5ld3NsZXR0ZXImdXRtX3NvdXJjZT1ieXRlcyZ1dG1fdGVybT1ib2R5LVFBV29sZg==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1804779642">QA Wolf</a> can help your team hit all its goals before the end of the year.</p>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">They’ll get you fully automated test coverage for your entire application, so you can cut your QA cycles to under 15 minutes and ship faster.</p>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">Here’s how:</p>
<ul>
<li>They build and maintain hundreds of automated Playwright tests for your app</li>
<li>You get <a href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/dphehmue86943lam/aHR0cHM6Ly93d3cucWF3b2xmLmNvbS9ob3ctaXQtd29ya3M_dXRtX2NhbXBhaWduPUFDUV9BbGxfRGVtb19Db252ZXJzaW9uc19fTmV3c2xldHRlckF1ZGllbmNlXy1fTmV3c2xldHRlcl9NZWV0RU9ZRGVhZGxpbmVzXzIwMjUxMTExLU5vbmVfRXhwZXJpbWVudC1GQUxTRSZ1dG1fY29udGVudD1NZWV0RU9ZRGVhZGxpbmVzX0dldEFQZXJzb25hbGl6ZWREZW1vX05vbmVfSGVhZGxpbmUlM0FCZWF0WW91ckVPWURlYWRsaW5lc1dpdGhvdXRMb3NpbmdZb3VyU2FuaXR5X19fX05ld3NsZXR0ZXItUHJpbWFyeVBsYWNlbWVudF8yMDI1MTExMV92MV8mdXRtX21lZGl1bT1uZXdzbGV0dGVyJnV0bV9zb3VyY2U9Ynl0ZXMmdXRtX3Rlcm09Ym9keS1VbmxpbWl0ZWRQYXJhbGxlbFRlc3RSdW5z" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1804779643">unlimited parallel test runs</a> on their infrastructure, so you get results fast</li>
<li>Zero flakes, because every failed test gets reviewed by their human QA engineers</li>
</ul>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;"><a href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/e0hph0u7qv3pxrs8/aHR0cHM6Ly93d3cucWF3b2xmLmNvbS8_dXRtX2NhbXBhaWduPUFDUV9BbGxfRGVtb19Db252ZXJzaW9uc19fTmV3c2xldHRlckF1ZGllbmNlXy1fTmV3c2xldHRlcl9NZWV0RU9ZRGVhZGxpbmVzXzIwMjUxMTExLU5vbmVfRXhwZXJpbWVudC1GQUxTRSZ1dG1fY29udGVudD1NZWV0RU9ZRGVhZGxpbmVzX0dldEFQZXJzb25hbGl6ZWREZW1vX05vbmVfSGVhZGxpbmUlM0FCZWF0WW91ckVPWURlYWRsaW5lc1dpdGhvdXRMb3NpbmdZb3VyU2FuaXR5X19fX05ld3NsZXR0ZXItUHJpbWFyeVBsYWNlbWVudF8yMDI1MTExMV92MV8mdXRtX21lZGl1bT1uZXdzbGV0dGVyJnV0bV9zb3VyY2U9Ynl0ZXMmdXRtX3Rlcm09Y3RhLUdldEFQZXJzb25hbGl6ZWREZW1v" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1804779644">Get a personalized demo for your team</a> to see how they save their average customer 9 hours/week per engineer.</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: 19px; margin-bottom: 0; padding-left: 24px; padding-right: 24px;">Sponsored by <a href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/7qh7h2u9wl2kgxhz/aHR0cHM6Ly96ZWQuZGV2L2Jsb2cvYWdlbnQtZXh0ZW5zaW9ucw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1804779645">Zed</a>
</h4>
<p style="font-family: Outfit, sans-serif; font-size: 16px; line-height: 1.5; margin-top: 5px; padding-left: 24px; padding-right: 24px;"><em>They just launched <a href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/7qh7h2u9wl2kgxhz/aHR0cHM6Ly96ZWQuZGV2L2Jsb2cvYWdlbnQtZXh0ZW5zaW9ucw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1804779645">Agent Extensions</a>, which lets you test drive coding agents from Augment Code, Opencode, and more from right inside Zed’s next-gen editor.</em></p>
</div>
</div>
<pre class="language-js" style="background-color: #f9f9f9; border: 1px solid #f9f9f9; border-radius: 8px; color: #231F20; overflow: auto; padding: 24px;"><code class="language-js" style="font-size: 14px;"><span class="token keyword" style="color: #f38ba3; font-size: 14px;">class</span> <span class="token class-name" style="color: #12b5e5; font-size: 14px;">User</span> <span class="token punctuation" style="color: #231F20; font-size: 14px;">{</span>
<span class="token keyword" style="color: #f38ba3; font-size: 14px;">async</span> <span class="token function" style="color: #9d7dce; font-size: 14px;">constructor</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">(</span><span class="token parameter" style="color: #f38ba3; font-size: 14px;">userId</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">)</span> <span class="token punctuation" style="color: #231F20; font-size: 14px;">{</span>
<span class="token keyword" style="color: #f38ba3; font-size: 14px;">const</span> user <span class="token operator" style="color: #12b5e5; font-size: 14px;">=</span> <span class="token keyword" style="color: #f38ba3; font-size: 14px;">await</span> <span class="token function" style="color: #9d7dce; font-size: 14px;">getUser</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">(</span>userId<span class="token punctuation" style="color: #231F20; font-size: 14px;">)</span>
<span class="token keyword" style="color: #f38ba3; font-size: 14px;">this</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">.</span>id <span class="token operator" style="color: #12b5e5; font-size: 14px;">=</span> user<span class="token punctuation" style="color: #231F20; font-size: 14px;">.</span>id<span class="token punctuation" style="color: #231F20; font-size: 14px;">;</span>
<span class="token keyword" style="color: #f38ba3; font-size: 14px;">this</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">.</span>name <span class="token operator" style="color: #12b5e5; font-size: 14px;">=</span> user<span class="token punctuation" style="color: #231F20; font-size: 14px;">.</span>name<span class="token punctuation" style="color: #231F20; font-size: 14px;">;</span>
<span class="token keyword" style="color: #f38ba3; font-size: 14px;">this</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">.</span>email <span class="token operator" style="color: #12b5e5; font-size: 14px;">=</span> user<span class="token punctuation" style="color: #231F20; font-size: 14px;">.</span>email<span class="token punctuation" style="color: #231F20; font-size: 14px;">;</span>
<span class="token punctuation" style="color: #231F20; font-size: 14px;">}</span>
<span class="token operator" style="color: #12b5e5; font-size: 14px;">...</span>
<span class="token punctuation" style="color: #231F20; font-size: 14px;">}</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: 17px; line-height: 1.5;">Andrew Sampson wrote about <a href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/owhkhwuwg9mkzesv/aHR0cHM6Ly9hbmRyZXdzLnN1YnN0YWNrLmNvbS9wL2VtYmVkZGluZy10eXBlc2NyaXB0" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1804779646">embedding TypeScript</a> using the Hako JavaScript engine, which compiles down to WebAssembly. All of the ancient Mayan calendars I’ve been studying point to 2026 being the year of the Wasm, so this is a good early omen.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><a href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/z2hgh7uep624ggip/aHR0cHM6Ly93d3cucmVhY3RuYXRpdmVjcm9zc3JvYWRzLmNvbS9wb3N0cy9pbnRyb2R1Y2luZy11bml3aW5kLXRoZS1mYXN0ZXN0LXRhaWx3aW5kLWJpbmRpbmdzLWZvci1yZWFjdC1uYXRpdmU=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1804779647">Uniwind</a> is the fastest Tailwind bindings for React Native, built by the creators of Unistyles. And the cross-platform golden age continues.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><a href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/p8hehqu4g6w2kkcq/aHR0cHM6Ly93d3cuY2FsbHN0YWNrLmNvbS9ibG9nL3doYXQteW91LWNhbi1idWlsZC13aXRoLXJlYWN0LW5hdGl2ZS1vbi1tZXRhLXF1ZXN0P3V0bV9jYW1wYWlnbj1tZXRhJnV0bV9jb250ZW50PXdoYXQteW91LWNhbi1idWlsZC13aXRoLXJlYWN0LW5hdGl2ZS1vbi1tZXRhLXF1ZXN0JnV0bV9tZWRpdW09ZW1haWwmdXRtX3NvdXJjZT1ieXRlcw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1804779648">Meta Horizon Start Developer Competition</a> is on – with $1.5M in prizes for the best apps. Need ideas? Here’s <a href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/p8hehqu4g6w2kkcq/aHR0cHM6Ly93d3cuY2FsbHN0YWNrLmNvbS9ibG9nL3doYXQteW91LWNhbi1idWlsZC13aXRoLXJlYWN0LW5hdGl2ZS1vbi1tZXRhLXF1ZXN0P3V0bV9jYW1wYWlnbj1tZXRhJnV0bV9jb250ZW50PXdoYXQteW91LWNhbi1idWlsZC13aXRoLXJlYWN0LW5hdGl2ZS1vbi1tZXRhLXF1ZXN0JnV0bV9tZWRpdW09ZW1haWwmdXRtX3NvdXJjZT1ieXRlcw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1804779648">some inspo</a> to get you started. [sponsored]</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">Matt Zeunert explained <a href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/x0hph3ue92vp8rt5/aHR0cHM6Ly93d3cuZGVidWdiZWFyLmNvbS9ibG9nL2Nocm9tZS1kZXZ0b29scy10aHJvdHRsZS1pbmRpdmlkdWFsLXJlcXVlc3Q=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1804779649">how to throttle specific requests in Chrome DevTools</a>. I’m not sure why, but “throttling” something sounds like it should be illegal.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><a href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/6qhehoulnr85v5co/aHR0cHM6Ly9zdG9yeWJvb2suanMub3JnL2Jsb2cvc3Rvcnlib29rLTEwLw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1804779650">Storybook 10</a> comes with only one breaking change but it’s a good one: it’s ESM-only now.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><a href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/kkhmh2un6w05geil/aHR0cHM6Ly93d3cuY29kZXJhYmJpdC5haS8_ZHViX2lkPVdyMElISkVIaVFHOGJUUTMmdXRtX2NhbXBhaWduPWNsaSZ1dG1fc291cmNlPW5ld3NsZXR0ZXI=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1804779651">CodeRabbit’s OSS Program</a> gives open-source projects free access to all their Pro-tier code review features. Used by projects like Bun, Vue, Nix, and 100k+ others to ship better code. [sponsored]</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">Cassidy Williams analyzed nearly a billion GitHub commits to assess <a href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/58hvh8ugkxdnpoc6/aHR0cHM6Ly9naXRodWIuYmxvZy9uZXdzLWluc2lnaHRzL29jdG92ZXJzZS93aGF0LTk4Ni1taWxsaW9uLWNvZGUtcHVzaGVzLXNheS1hYm91dC10aGUtZGV2ZWxvcGVyLXdvcmtmbG93LWluLTIwMjU=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1804779652">the state of the developer workflow in 2025</a>. That’s only half as many dad jokes as she analyzes for each issue of her newsletter, but it’s still a lot.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">The Svelte team wrote a quick roundup of <a href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/25h2h9u349p8rec3/aHR0cHM6Ly9zdmVsdGUuZGV2L2Jsb2cvd2hhdHMtbmV3LWluLXN2ZWx0ZS1ub3ZlbWJlci0yMDI1" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1804779653">what’s new in Svelte</a> these days.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">Apryse’s <a href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/qvh8h8udowm4g6tl/aHR0cHM6Ly9hcHJ5c2UuY29tL2NhcGFiaWxpdGllcy9leHRyYWN0aW9uL3RlbXBsYXRlLWV4dHJhY3Rpb24_dXRtX2NhbXBhaWduPWJ5dGVzXzIwMjVfMTFfMDcmdXRtX21lZGl1bT1lbWFpbCZ1dG1fc291cmNlPW5ld3NsZXR0ZXI=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1804779654">Template Data Extraction SDK</a> lets you automate all your ACORD extraction to cut processing time, eliminate errors, and scale high-volume workflows. [sponsored]</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><a href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/g3hnhwum698l7ear/aHR0cHM6Ly9uaWxvc3RvbHRlLmdpdGh1Yi5pby90ZWNoL2FydGljbGVzL1ppZ0Nvb2wuaHRtbA==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1804779655">Why is Zig so Cool?</a> I would argue that it’s because it starts with a <code style="font-size: 14px;">Z</code> and rhymes with “cig”, but Nilo Stolte wrote a more technical analysis.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">jyn wrote about <a href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/9qhzhdudzwv6kps9/aHR0cHM6Ly9qeW4uZGV2L3RoZS10ZXJtaW5hbC1vZi10aGUtZnV0dXJl" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1804779656">the terminal of the future</a>, and how it’s sadly not just a terminal that plays <em>Phil of the Future</em> on repeat while doing all your work for you.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">David Bushell is campaigning to <a href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/3ohphdu34m5263hr/aHR0cHM6Ly94c2x0LnJpcC8=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1804779657">keep XSLT alive</a>, since Google just announced plans to deprecate it by 2027 (after already trying to kill it back in 2013). If you’re unfamiliar, XSLT was created in 1999 for “transforming XML documents into other XML documents” – so it makes sense that David’s site feels like a late ’90s fan page for Sum 41. <em>So am I still waiting, for big tech to stop hating.</em></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: 19px; margin-bottom: 0; padding-left: 24px; padding-right: 24px;">Sponsored by <a href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/7qh7h2u9wl2kgxhz/aHR0cHM6Ly96ZWQuZGV2L2Jsb2cvYWdlbnQtZXh0ZW5zaW9ucw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1804779645">Zed</a>
</h4></div>
</div>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">JavaScript doesn’t allow class constructors to be <code style="font-size: 14px;">async</code>. We have to do any async actions outside of a constructor. Static class methods can help with this.</p>
<pre class="language-js" style="background-color: #f9f9f9; border: 1px solid #f9f9f9; border-radius: 8px; color: #231F20; overflow: auto; padding: 24px;"><code class="language-js" style="font-size: 14px;"><span class="token keyword" style="color: #f38ba3; font-size: 14px;">class</span> <span class="token class-name" style="color: #12b5e5; font-size: 14px;">User</span> <span class="token punctuation" style="color: #231F20; font-size: 14px;">{</span>
<span class="token keyword" style="color: #f38ba3; font-size: 14px;">static</span> <span class="token keyword" style="color: #f38ba3; font-size: 14px;">async</span> <span class="token function" style="color: #9d7dce; font-size: 14px;">init</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">(</span><span class="token parameter" style="color: #f38ba3; font-size: 14px;">userId</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">)</span> <span class="token punctuation" style="color: #231F20; font-size: 14px;">{</span>
<span class="token keyword" style="color: #f38ba3; font-size: 14px;">const</span> user <span class="token operator" style="color: #12b5e5; font-size: 14px;">=</span> <span class="token keyword" style="color: #f38ba3; font-size: 14px;">await</span> <span class="token function" style="color: #9d7dce; font-size: 14px;">getUser</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">(</span>userId<span class="token punctuation" style="color: #231F20; font-size: 14px;">)</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">;</span>
<span class="token keyword" style="color: #f38ba3; font-size: 14px;">return</span> <span class="token keyword" style="color: #f38ba3; font-size: 14px;">new</span> <span class="token class-name" style="color: #12b5e5; font-size: 14px;">User</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">(</span>user<span class="token punctuation" style="color: #231F20; font-size: 14px;">)</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">;</span>
<span class="token punctuation" style="color: #231F20; font-size: 14px;">}</span>
<span class="token function" style="color: #9d7dce; font-size: 14px;">constructor</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">(</span><span class="token parameter" style="color: #f38ba3; font-size: 14px;">user</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">)</span> <span class="token punctuation" style="color: #231F20; font-size: 14px;">{</span>
<span class="token keyword" style="color: #f38ba3; font-size: 14px;">this</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">.</span>id <span class="token operator" style="color: #12b5e5; font-size: 14px;">=</span> user<span class="token punctuation" style="color: #231F20; font-size: 14px;">.</span>id<span class="token punctuation" style="color: #231F20; font-size: 14px;">;</span>
<span class="token keyword" style="color: #f38ba3; font-size: 14px;">this</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">.</span>name <span class="token operator" style="color: #12b5e5; font-size: 14px;">=</span> user<span class="token punctuation" style="color: #231F20; font-size: 14px;">.</span>name<span class="token punctuation" style="color: #231F20; font-size: 14px;">;</span>
<span class="token keyword" style="color: #f38ba3; font-size: 14px;">this</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">.</span>email <span class="token operator" style="color: #12b5e5; font-size: 14px;">=</span> user<span class="token punctuation" style="color: #231F20; font-size: 14px;">.</span>email<span class="token punctuation" style="color: #231F20; font-size: 14px;">;</span>
<span class="token punctuation" style="color: #231F20; font-size: 14px;">}</span>
<span class="token punctuation" style="color: #231F20; font-size: 14px;">}</span>
<span class="token keyword" style="color: #f38ba3; font-size: 14px;">const</span> me <span class="token operator" style="color: #12b5e5; font-size: 14px;">=</span> <span class="token keyword" style="color: #f38ba3; font-size: 14px;">await</span> User<span class="token punctuation" style="color: #231F20; font-size: 14px;">.</span><span class="token function" style="color: #9d7dce; font-size: 14px;">init</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">(</span><span class="token number" style="color: #fcba28; font-size: 14px;">1</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">)</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://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/n2hohquv6q9xw6b6/aHR0cHM6Ly9ieXRlcy5kZXYvYWR2ZXJ0aXNl" url-id="1804779658">Sponsor Bytes</a></div>
<div style="margin-bottom:20px"><a style="color: #FCBA28; font-size: 14px; font-weight: 600; text-decoration: underline;" href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/48hvh7um6ldpzgix/aHR0cHM6Ly9ieXRlcy5kZXYvc2hhcmU=" url-id="1804779659">or share it</a></div>
<p style="font-family: Outfit, sans-serif; font-size: 14px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">Built with ❤️ by<!-- --> <a style="color: #ed203d; font-weight: 600; text-decoration: underline;" href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/wnh2h6uqx72k98t7/aHR0cHM6Ly91aS5kZXY=" url-id="1804779660">ui.dev</a></p>
</div></div>
<p style="font-family: Outfit, sans-serif; font-size: 14px; line-height: 1.5; opacity: 0.5; padding-left: 24px; padding-right: 24px;">50 W Broadway Ste 333 PMB 51647 Salt Lake City, Utah 84101</p>
<div style="font-family:Papyrus, cursive"><a class="unsubscribe-link" href="https://click.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0/reh8h9umwdl39kt2/aHR0cHM6Ly9ieXRlcy5kZXYvdW5zdWJzY3JpYmU=" style="color: #9B9890;" url-id="1804779661">Unsubscribe from Bytes</a></div>
</div>
</div></td>
<td style="border-collapse: collapse !important; word-break: normal;"></td>
</tr></tbody></table>
<span style="display: none"><a href="https://unsubscribe.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0">Unsubscribe</a></span>
<!-- -->
<img src="https://open.kit-mail6.com/zlu4v4x2rrtnhkwdz0kcphwogmg00a6h3wl0" alt="">
</body>
</html>