<!DOCTYPE html>
<html>
<head>
<title>Bytes: Stuffing 8 Safari releases into one</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> Thousands of grainy JPEGs, shadcn/ui creator reveal, and Cloudflare developers keeping their eyes on the prize.</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.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/z2hgh7uer2n5l9up/aHR0cHM6Ly9ieXRlcy5kZXYvYXJjaGl2ZXMvNDAz" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1757950752">#403</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/praying-patrick.jpg" alt="Patrick Starr praying" 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;">Me asking Steve Jobs when they'll release the U2 (RED) version of Safari<!-- --> </p>
</div>
<h3 style="font-size: 24px; margin-bottom: 0; padding-left: 24px; padding-right: 24px;">Stuffing 8 Safari releases into one</h3>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">Naming things is always hard for big companies, but <em>numbering</em> things hasn’t been much easier for Apple.</p>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">So it was nice to see them officially declare <strong style="font-weight: 600;">Version Number Bankruptcy<span role="img" aria-label="trade mark">™️</span></strong> at this month’s WWDC – and choose to unify macOS 15, iOS 18, visionOS 2, watchOS 11, and Safari 18 on <code style="font-size: 14px;">v26</code> (to match the year 2026). They’ll each get upgraded to v26 sometime this fall and will get annual version bumps to stay in sync going forward.</p>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">But after reading the <em>7,000</em>-word announcement post for the new <a href="https://click.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/p8hehqu45wmrq3bq/aHR0cHM6Ly93ZWJraXQub3JnL2Jsb2cvMTY5OTMvbmV3cy1mcm9tLXd3ZGMyNS13ZWItdGVjaG5vbG9neS1jb21pbmctdGhpcy1mYWxsLWluLXNhZmFyaS0yNi1iZXRhLw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1757950753">Safari 26 beta</a>, I’m pretty sure that the Safari team of overachievers saw this as a chance to ship eight versions’ worth of features all at once. And I’m not complaining!</p>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">This mega-update comes with 67 new features and 107 additional improvements. Here are five we’re most excited about:</p>
<ol>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><strong style="font-weight: 600;">SVG favicons</strong> - This <em>long</em>-awaited feature lets you harness the power of infinite vector scaling to get cleaner icons, smaller file sizes, and better support for different UI placements.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><strong style="font-weight: 600;">Big CSS upgrades</strong> – New anchor positioning makes popovers and tooltips easier than ever, scroll-driven animations bring timeline control to CSS, and the <code style="font-size: 14px;">contrast-color()</code> function allows the browser to <a href="https://click.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/x0hph3uedvokqpf5/aHR0cHM6Ly93ZWJraXQub3JnL2Jsb2cvMTY5MjkvY29udHJhc3QtY29sb3Iv" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1757950754">pick a contrasting color for you</a></p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><strong style="font-weight: 600;">HDR image support</strong> – You can now embed HDR images directly into webpages, with CSS controls to balance them against SDR content</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><strong style="font-weight: 600;">WebGPU support</strong> – This JavaScript API provides faster, more modern GPU access for 3D rendering and compute-heavy tasks, allowing you to more efficiently leverage 3D frameworks like Babylon.js, Three.js, and Unity</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><strong style="font-weight: 600;">Trusted Types and JS cleanup</strong> – The new Trusted Types API blocks XSS by default, and new JavaScript methods like <code style="font-size: 14px;">@@dispose</code> let you safely clean up resources</p>
</li>
</ol>
<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> Martha Stewart once said that “software that gets versioned together, works together.” We’ll see if that’s true when I try to anchor-position a modal inside a popover inside a scroll-tied animation inside a WebGPU-powered canvas on my mom’s 2013 iPad Mini.</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.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/6qhehoul68zx9wfo/aHR0cHM6Ly9mYWNlYm9vay5jb20vc2hhcmVyL3NoYXJlci5waHA_dT1odHRwcyUzQSUyRiUyRmJ5dGVzLmRldiUyRmFyY2hpdmVzJTJGNDAz" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1757950755"><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.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/kkhmh2un20rzx2il/aHR0cHM6Ly93d3cubGlua2VkaW4uY29tL3NoYXJpbmcvc2hhcmUtb2Zmc2l0ZS8_dXJsPWh0dHBzJTNBJTJGJTJGYnl0ZXMuZGV2JTJGYXJjaGl2ZXMlMkY0MDM=" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1757950756"><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.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/58hvh8ugodq36zi6/aHR0cHM6Ly90d2l0dGVyLmNvbS9pbnRlbnQvdHdlZXQvP3RleHQ9QnJlYWtpbmclMjBkb3duJTIwdGhlJTIwYmlnZ2VzdCUyMFNhZmFyaSUyMHVwZGF0ZSUyMGluJTIweWVhcnMmdXJsPWh0dHBzJTNBJTJGJTJGYnl0ZXMuZGV2JTJGYXJjaGl2ZXMlMkY0MDM=" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1757950757"><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.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/25h2h9u30p6lmoh3/bWFpbHRvOj9ib2R5PVRob3VnaHQlMjB5b3UlMjdkJTIwbG92ZSUyMHRoaXMlMjB3ZWVrJTI3cyUyMEJ5dGVzJTBBLS0tJTBBQnJlYWtpbmclMjBkb3duJTIwdGhlJTIwYmlnZ2VzdCUyMFNhZmFyaSUyMHVwZGF0ZSUyMGluJTIweWVhcnMlMEFodHRwcyUzQSUyRiUyRmJ5dGVzLmRldiUyRmFyY2hpdmVzJTJGNDAzJnN1YmplY3Q9WW91JTIwbGlrZSUyMGNvcm5icmVhZCUzRg==" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1757950758"><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/bobby-hank.jpg" alt="Bobby Hill with Hank Hill's face photoshopped 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;">Finding out that your team’s entire QA process is just one guy named Greg clicking around in staging<!-- --> </p>
</div>
<h3 style="font-size: 24px; margin-bottom: 0; padding-left: 24px; padding-right: 24px;"><a href="https://click.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/qvh8h8ud2mzek8ul/aHR0cHM6Ly93d3cucWF3b2xmLmNvbT91dG1fY2FtcGFpZ249QUNRX0FsbF9EZW1vX0NvbnZlcnNpb25zX19OZXdzbGV0dGVyQXVkaWVuY2VfLV9OZXdzbGV0dGVyX0N1dFFBQ3ljbGVzXzIwMjUwNjIzLU5vbmVfRXhwZXJpbWVudC1GQUxTRSZ1dG1fY29udGVudD1DdXRRQUN5Y2xlc19HZXRBUGVyc29uYWxpemVkRGVtb19Ob25lX0hlYWRsaW5lJTNBU3BlZWRVcFlvdXJUZWFtc1JlbGVhc2VDeWNsZXNUaGVFYXN5V2F5X19fX05ld3NsZXR0ZXItUHJpbWFyeVBsYWNlbWVudF8yMDI1MDYyM192MV8mdXRtX21lZGl1bT1uZXdzbGV0dGVyJnV0bV9zb3VyY2U9Ynl0ZXMmdXRtX3Rlcm09aGVhZGxpbmUtU3BlZWRVcFlvdXJUZWFtc1JlbGVhc2VDeWNsZXNUaGVFYXN5V2F5" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1757950759">Speed up your team’s release cycles – the easy way</a></h3>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">What if you could press a button to help your team start shipping twice as fast?</p>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">That’s exactly what <a href="https://click.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/g3hnhwumo8rgq3cr/aHR0cHM6Ly93d3cucWF3b2xmLmNvbT91dG1fY2FtcGFpZ249QUNRX0FsbF9EZW1vX0NvbnZlcnNpb25zX19OZXdzbGV0dGVyQXVkaWVuY2VfLV9OZXdzbGV0dGVyX0N1dFFBQ3ljbGVzXzIwMjUwNjIzLU5vbmVfRXhwZXJpbWVudC1GQUxTRSZ1dG1fY29udGVudD1DdXRRQUN5Y2xlc19HZXRBUGVyc29uYWxpemVkRGVtb19Ob25lX0hlYWRsaW5lJTNBU3BlZWRVcFlvdXJUZWFtc1JlbGVhc2VDeWNsZXNUaGVFYXN5V2F5X19fX05ld3NsZXR0ZXItUHJpbWFyeVBsYWNlbWVudF8yMDI1MDYyM192MV8mdXRtX21lZGl1bT1uZXdzbGV0dGVyJnV0bV9zb3VyY2U9Ynl0ZXMmdXRtX3Rlcm09Ym9keS1RQVdvbGY=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1757950760">QA Wolf</a> did for Drata, who now has 86% faster QA cycles with 4x more test cases (<a href="https://click.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/9qhzhdud3v045df9/aHR0cHM6Ly93d3cucWF3b2xmLmNvbS9jYXNlLXN0dWRpZXMvZHJhdGE_dXRtX2NhbXBhaWduPUFDUV9BbGxfRGVtb19Db252ZXJzaW9uc19fTmV3c2xldHRlckF1ZGllbmNlXy1fTmV3c2xldHRlcl9DdXRRQUN5Y2xlc18yMDI1MDYyMy1Ob25lX0V4cGVyaW1lbnQtRkFMU0UmdXRtX2NvbnRlbnQ9Q3V0UUFDeWNsZXNfR2V0QVBlcnNvbmFsaXplZERlbW9fTm9uZV9IZWFkbGluZSUzQVNwZWVkVXBZb3VyVGVhbXNSZWxlYXNlQ3ljbGVzVGhlRWFzeVdheV9fX19OZXdzbGV0dGVyLVByaW1hcnlQbGFjZW1lbnRfMjAyNTA2MjNfdjFfJnV0bV9tZWRpdW09bmV3c2xldHRlciZ1dG1fc291cmNlPWJ5dGVzJnV0bV90ZXJtPWJvZHktU2VlVGhlQ2FzZVN0dWR5" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1757950761">see the case study</a>) – and they’ve done it for hundreds of other teams too.</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;">Here’s how it works:</strong></p>
<ul>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">Their <a href="https://click.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/3ohphdu3950xp4tr/aHR0cHM6Ly93d3cucWF3b2xmLmNvbS9haT91dG1fY2FtcGFpZ249QUNRX0FsbF9EZW1vX0NvbnZlcnNpb25zX19OZXdzbGV0dGVyQXVkaWVuY2VfLV9OZXdzbGV0dGVyX0N1dFFBQ3ljbGVzXzIwMjUwNjIzLU5vbmVfRXhwZXJpbWVudC1GQUxTRSZ1dG1fY29udGVudD1DdXRRQUN5Y2xlc19HZXRBUGVyc29uYWxpemVkRGVtb19Ob25lX0hlYWRsaW5lJTNBU3BlZWRVcFlvdXJUZWFtc1JlbGVhc2VDeWNsZXNUaGVFYXN5V2F5X19fX05ld3NsZXR0ZXItUHJpbWFyeVBsYWNlbWVudF8yMDI1MDYyM192MV8mdXRtX21lZGl1bT1uZXdzbGV0dGVyJnV0bV9zb3VyY2U9Ynl0ZXMmdXRtX3Rlcm09Ym9keS1NdWx0aUFnZW50QUlTeXN0ZW1z" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1757950762">multi-agent AI systems</a> create, maintain, and run Playwright tests for you</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">They provide unlimited parallel test runs on their infrastructure, so you get pass/fail results <a href="https://click.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/n2hohquv59m27rt6/aHR0cHM6Ly93d3cucWF3b2xmLmNvbS9ob3ctaXQtd29ya3M_dXRtX2NhbXBhaWduPUFDUV9BbGxfRGVtb19Db252ZXJzaW9uc19fTmV3c2xldHRlckF1ZGllbmNlXy1fTmV3c2xldHRlcl9DdXRRQUN5Y2xlc18yMDI1MDYyMy1Ob25lX0V4cGVyaW1lbnQtRkFMU0UmdXRtX2NvbnRlbnQ9Q3V0UUFDeWNsZXNfR2V0QVBlcnNvbmFsaXplZERlbW9fTm9uZV9IZWFkbGluZSUzQVNwZWVkVXBZb3VyVGVhbXNSZWxlYXNlQ3ljbGVzVGhlRWFzeVdheV9fX19OZXdzbGV0dGVyLVByaW1hcnlQbGFjZW1lbnRfMjAyNTA2MjNfdjFfJnV0bV9tZWRpdW09bmV3c2xldHRlciZ1dG1fc291cmNlPWJ5dGVzJnV0bV90ZXJtPWJvZHktV2l0aGluM01pbg==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1757950763">within 3 min</a></p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">You get zero flakes, because every failed test is reviewed by one of their human QA engineers</p>
</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.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/48hvh7umqdvwxkhx/aHR0cHM6Ly93d3cucWF3b2xmLmNvbT91dG1fY2FtcGFpZ249QUNRX0FsbF9EZW1vX0NvbnZlcnNpb25zX19OZXdzbGV0dGVyQXVkaWVuY2VfLV9OZXdzbGV0dGVyX0N1dFFBQ3ljbGVzXzIwMjUwNjIzLU5vbmVfRXhwZXJpbWVudC1GQUxTRSZ1dG1fY29udGVudD1DdXRRQUN5Y2xlc19HZXRBUGVyc29uYWxpemVkRGVtb19Ob25lX0hlYWRsaW5lJTNBU3BlZWRVcFlvdXJUZWFtc1JlbGVhc2VDeWNsZXNUaGVFYXN5V2F5X19fX05ld3NsZXR0ZXItUHJpbWFyeVBsYWNlbWVudF8yMDI1MDYyM192MV8mdXRtX21lZGl1bT1uZXdzbGV0dGVyJnV0bV9zb3VyY2U9Ynl0ZXMmdXRtX3Rlcm09Y3RhLUdldEFQZXJzb25hbGl6ZWREZW1v" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1757950764">Get a personalized demo</a> – and see how their average customer increases their team’s release cadence by over 5x.</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.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/wnh2h6uqv2nm0mc7/aHR0cHM6Ly9zZW50cnkuaW8vcmVzb3VyY2VzL3NlbnRyeS1idWlsZC8_dXRtX2NhbXBhaWduPWFpLWZ5MjZxMi1haXdvcmtzaG9wJnV0bV9jb250ZW50PW5ld3NsZXR0ZXItSnVseS13b3Jrc2hvcC1yc3ZwJnV0bV9tZWRpdW09cGFpZC1jb21tdW5pdHkmdXRtX3NvdXJjZT1ieXRlcw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1757950765">Sentry</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’re hosting this free <a href="https://click.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/wnh2h6uqv2nm0mc7/aHR0cHM6Ly9zZW50cnkuaW8vcmVzb3VyY2VzL3NlbnRyeS1idWlsZC8_dXRtX2NhbXBhaWduPWFpLWZ5MjZxMi1haXdvcmtzaG9wJnV0bV9jb250ZW50PW5ld3NsZXR0ZXItSnVseS13b3Jrc2hvcC1yc3ZwJnV0bV9tZWRpdW09cGFpZC1jb21tdW5pdHkmdXRtX3NvdXJjZT1ieXRlcw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1757950765">AI in Production workshop</a> on July 9th to give you hands-on experience at debugging AI-integrated applications and agents with full-stack visibility.</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;">const</span> <span class="token function-variable function" style="color: #9d7dce; font-size: 14px;">enrichEvents</span> <span class="token operator" style="color: #12b5e5; font-size: 14px;">=</span> <span class="token punctuation" style="color: #231F20; font-size: 14px;">(</span><span class="token parameter" style="color: #f38ba3; font-size: 14px;">events</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>
<span class="token keyword" style="color: #f38ba3; font-size: 14px;">const</span> metadata <span class="token operator" style="color: #12b5e5; font-size: 14px;">=</span> <span class="token punctuation" style="color: #231F20; font-size: 14px;">{</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 14px;">usr_789</span><span class="token operator" style="color: #12b5e5; font-size: 14px;">:</span> <span class="token punctuation" style="color: #231F20; font-size: 14px;">{</span> <span class="token literal-property property" style="color: #12b5e5; font-size: 14px;">tier</span><span class="token operator" style="color: #12b5e5; font-size: 14px;">:</span> <span class="token string" style="color: #f99157; font-size: 14px;">"premium"</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">,</span> <span class="token literal-property property" style="color: #12b5e5; font-size: 14px;">joined</span><span class="token operator" style="color: #12b5e5; font-size: 14px;">:</span> <span class="token string" style="color: #f99157; font-size: 14px;">"2023-04-01"</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 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> enriched <span class="token operator" style="color: #12b5e5; font-size: 14px;">=</span> events<span class="token punctuation" style="color: #231F20; font-size: 14px;">.</span><span class="token function" style="color: #9d7dce; font-size: 14px;">map</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">(</span><span class="token parameter" style="color: #f38ba3; font-size: 14px;">event</span> <span class="token operator" style="color: #12b5e5; font-size: 14px;">=></span>
<span class="token punctuation" style="color: #231F20; font-size: 14px;">{</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 14px;">id</span><span class="token operator" style="color: #12b5e5; font-size: 14px;">:</span> event<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 literal-property property" style="color: #12b5e5; font-size: 14px;">time</span><span class="token operator" style="color: #12b5e5; font-size: 14px;">:</span> event<span class="token punctuation" style="color: #231F20; font-size: 14px;">.</span>time<span class="token punctuation" style="color: #231F20; font-size: 14px;">,</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 14px;">user</span><span class="token operator" style="color: #12b5e5; font-size: 14px;">:</span> metadata<span class="token punctuation" style="color: #231F20; font-size: 14px;">[</span>event<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 literal-property property" style="color: #12b5e5; font-size: 14px;">value</span><span class="token operator" style="color: #12b5e5; font-size: 14px;">:</span> event<span class="token punctuation" style="color: #231F20; font-size: 14px;">.</span>properties<span class="token punctuation" style="color: #231F20; font-size: 14px;">.</span>totalValue
<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;">return</span> enriched<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> events <span class="token operator" style="color: #12b5e5; 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 literal-property property" style="color: #12b5e5; font-size: 14px;">id</span><span class="token operator" style="color: #12b5e5; font-size: 14px;">:</span> <span class="token string" style="color: #f99157; font-size: 14px;">"evt_123"</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">,</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 14px;">time</span><span class="token operator" style="color: #12b5e5; font-size: 14px;">:</span> <span class="token string" style="color: #f99157; font-size: 14px;">"2024-12-10T10:00:00Z"</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">,</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 14px;">userId</span><span class="token operator" style="color: #12b5e5; font-size: 14px;">:</span> <span class="token string" style="color: #f99157; font-size: 14px;">"usr_789"</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">,</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 14px;">properties</span><span class="token operator" style="color: #12b5e5; font-size: 14px;">:</span> <span class="token punctuation" style="color: #231F20; font-size: 14px;">{</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 14px;">totalValue</span><span class="token operator" style="color: #12b5e5; font-size: 14px;">:</span> <span class="token number" style="color: #fcba28; font-size: 14px;">99.99</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 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 punctuation" style="color: #231F20; font-size: 14px;">]</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">;</span>
console<span class="token punctuation" style="color: #231F20; font-size: 14px;">.</span><span class="token function" style="color: #9d7dce; font-size: 14px;">log</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">(</span><span class="token function" style="color: #9d7dce; font-size: 14px;">enrichEvents</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">(</span>events<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>
</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;">Sunil Pai and the Cloudflare crew wrote about <a href="https://click.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/reh8h9umvl4k64i2/aHR0cHM6Ly9ibG9nLmNsb3VkZmxhcmUuY29tL2Nvbm5lY3QtYW55LXJlYWN0LWFwcGxpY2F0aW9uLXRvLWFuLW1jcC1zZXJ2ZXItaW4tdGhyZWUtbGluZXMtb2YtY29kZS8=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1757950766">how you can connect any React app to an MCP server in three lines of code</a> with the <a href="https://click.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/08hwhgu2w6vnlefl/aHR0cHM6Ly9naXRodWIuY29tL21vZGVsY29udGV4dHByb3RvY29sL3VzZS1tY3A=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1757950767">use-mcp</a> hook. Props to them for staying productive, even though their personal net worth basically doubled in the past 60 days. <em>(In $NET we trust.)</em></p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">Redis built <a href="https://click.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/8ghqh3uop6zwrnak/aHR0cHM6Ly9yZWRpcy5pby9scC9nZXQtc3RhcnRlZDEvP3V0bV9jYW1wYWlnbj0yMDI1LTA2LWFwcF9wZXJmb3JtYW5jZS1uZXdzbGV0dGVyLWFkcy1ieXRlcy0zJnV0bV9jb250ZW50PWdldC1zdGFydGVkJnV0bV9tZWRpdW09Y3BhJnV0bV9zb3VyY2U9Ynl0ZXM=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1757950768">the world’s fastest data platform</a> so your AI agents don’t have to sit around waiting for data like it’s 2008. Agent memory, semantic caches, real-time data delivery — all at sub-millisecond speed. [sponsored]</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">Ernie Smith wrote a cool and historical post on <a href="https://click.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/vqh3hmuo39lmw7bg/aHR0cHM6Ly9zcGVjdHJ1bS5pZWVlLm9yZy9qcGVnLWltYWdlLWZvcm1hdC1oaXN0b3J5" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1757950769">Why JPEGs still rule the web</a> after 30 years. It gave me new appreciation for the thousands of grainy JPEGs I dig through on cursed forums to find memes for this newsletter.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><a href="https://click.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/m2h7h6u306v24dtm/aHR0cHM6Ly9hc3Ryby5idWlsZC9ibG9nL2FzdHJvLTUxMDAv" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1757950771">Astro 5.10</a> comes with experimental live content collections that allow you to fetch content at runtime instead of build time.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">The creator of <code style="font-size: 14px;">shadcn/ui</code> (whose given Christian name is shadcn) wrote some interesting and nuanced thoughts on <a href="https://click.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/dphehmuew9vdppfm/aHR0cHM6Ly94LmNvbS9zaGFkY24vc3RhdHVzLzE5MzYwODI3MjM5MDQ1NjU0MzU=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1757950772">Radix, component libraries, and <code style="font-size: 14px;">shadcn/ui</code></a>.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">William Candillon wrote about <a href="https://click.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/e0hph0u7w36mrdc8/aHR0cHM6Ly9zaG9waWZ5LmVuZ2luZWVyaW5nL3dlYmdwdS1za2lhLXdlYi1ncmFwaGljcw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1757950773">the future of React Native graphics</a> and how WebGPU is changing the game.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">Matt Smith wrote about <a href="https://click.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/7qh7h2u9p2qdneaz/aHR0cHM6Ly9hbGx0aGluZ3NzbWl0dHkuY29tLzIwMjUvMDYvMTYvdXNpbmctYXdhaXQtYXQtdGhlLXRvcC1sZXZlbC1pbi1lcy1tb2R1bGVzLw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1757950774">using <code style="font-size: 14px;">await</code> at the top level in ES Modules</a></p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><a href="https://click.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/owhkhwuwlmpxqzbv/aHR0cHM6Ly9naXRodWIuY29tL09yYW5nZS1PcGVuU291cmNlL2h1cmw=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1757950775">Hurl</a> is a command line tool that lets you define and run HTTP requests in plain text, which is great for testing and automation. I’d also like to announce that I’ve raised $100 million to build a Hurl-based <del>wrapper</del> <em>platform</em> and hired T-Pain to perform at our first conference.</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.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/wnh2h6uqv2nm0mc7/aHR0cHM6Ly9zZW50cnkuaW8vcmVzb3VyY2VzL3NlbnRyeS1idWlsZC8_dXRtX2NhbXBhaWduPWFpLWZ5MjZxMi1haXdvcmtzaG9wJnV0bV9jb250ZW50PW5ld3NsZXR0ZXItSnVseS13b3Jrc2hvcC1yc3ZwJnV0bV9tZWRpdW09cGFpZC1jb21tdW5pdHkmdXRtX3NvdXJjZT1ieXRlcw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1757950765">Sentry</a>
</h4></div>
</div>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">Most likely your IDE would catch this one for you, but there is a syntax error. The <code style="font-size: 14px;">map</code> function is an arrow function that implicitly returns the result of the expression inside the block. In this case, the block is not a valid expression, so the code will throw a syntax error. To fix this, you can wrap the object in parentheses to make it an expression.</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;">const</span> <span class="token function-variable function" style="color: #9d7dce; font-size: 14px;">enrichEvents</span> <span class="token operator" style="color: #12b5e5; font-size: 14px;">=</span> <span class="token punctuation" style="color: #231F20; font-size: 14px;">(</span><span class="token parameter" style="color: #f38ba3; font-size: 14px;">events</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>
<span class="token keyword" style="color: #f38ba3; font-size: 14px;">const</span> metadata <span class="token operator" style="color: #12b5e5; font-size: 14px;">=</span> <span class="token punctuation" style="color: #231F20; font-size: 14px;">{</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 14px;">usr_789</span><span class="token operator" style="color: #12b5e5; font-size: 14px;">:</span> <span class="token punctuation" style="color: #231F20; font-size: 14px;">{</span> <span class="token literal-property property" style="color: #12b5e5; font-size: 14px;">tier</span><span class="token operator" style="color: #12b5e5; font-size: 14px;">:</span> <span class="token string" style="color: #f99157; font-size: 14px;">"premium"</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">,</span> <span class="token literal-property property" style="color: #12b5e5; font-size: 14px;">joined</span><span class="token operator" style="color: #12b5e5; font-size: 14px;">:</span> <span class="token string" style="color: #f99157; font-size: 14px;">"2023-04-01"</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 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> enriched <span class="token operator" style="color: #12b5e5; font-size: 14px;">=</span> events<span class="token punctuation" style="color: #231F20; font-size: 14px;">.</span><span class="token function" style="color: #9d7dce; font-size: 14px;">map</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 parameter" style="color: #f38ba3; font-size: 14px;">event</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><span class="token punctuation" style="color: #231F20; font-size: 14px;">{</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 14px;">id</span><span class="token operator" style="color: #12b5e5; font-size: 14px;">:</span> event<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 literal-property property" style="color: #12b5e5; font-size: 14px;">time</span><span class="token operator" style="color: #12b5e5; font-size: 14px;">:</span> event<span class="token punctuation" style="color: #231F20; font-size: 14px;">.</span>time<span class="token punctuation" style="color: #231F20; font-size: 14px;">,</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 14px;">user</span><span class="token operator" style="color: #12b5e5; font-size: 14px;">:</span> metadata<span class="token punctuation" style="color: #231F20; font-size: 14px;">[</span>event<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 literal-property property" style="color: #12b5e5; font-size: 14px;">value</span><span class="token operator" style="color: #12b5e5; font-size: 14px;">:</span> event<span class="token punctuation" style="color: #231F20; font-size: 14px;">.</span>properties<span class="token punctuation" style="color: #231F20; font-size: 14px;">.</span>totalValue<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 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> enriched<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> events <span class="token operator" style="color: #12b5e5; 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 literal-property property" style="color: #12b5e5; font-size: 14px;">id</span><span class="token operator" style="color: #12b5e5; font-size: 14px;">:</span> <span class="token string" style="color: #f99157; font-size: 14px;">"evt_123"</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">,</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 14px;">time</span><span class="token operator" style="color: #12b5e5; font-size: 14px;">:</span> <span class="token string" style="color: #f99157; font-size: 14px;">"2024-12-10T10:00:00Z"</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">,</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 14px;">userId</span><span class="token operator" style="color: #12b5e5; font-size: 14px;">:</span> <span class="token string" style="color: #f99157; font-size: 14px;">"usr_789"</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">,</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 14px;">properties</span><span class="token operator" style="color: #12b5e5; font-size: 14px;">:</span> <span class="token punctuation" style="color: #231F20; font-size: 14px;">{</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 14px;">totalValue</span><span class="token operator" style="color: #12b5e5; font-size: 14px;">:</span> <span class="token number" style="color: #fcba28; font-size: 14px;">99.99</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 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 punctuation" style="color: #231F20; font-size: 14px;">]</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">;</span>
console<span class="token punctuation" style="color: #231F20; font-size: 14px;">.</span><span class="token function" style="color: #9d7dce; font-size: 14px;">log</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">(</span><span class="token function" style="color: #9d7dce; font-size: 14px;">enrichEvents</span><span class="token punctuation" style="color: #231F20; font-size: 14px;">(</span>events<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>
</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.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/z2hgh7uer2n5m9ap/aHR0cHM6Ly9ieXRlcy5kZXYvYWR2ZXJ0aXNl" url-id="1757950776">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.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/p8hehqu45wmrp3tq/aHR0cHM6Ly9ieXRlcy5kZXYvc2hhcmU=" url-id="1757950777">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.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/x0hph3uedvok4ph5/aHR0cHM6Ly91aS5kZXY=" url-id="1757950778">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.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w/6qhehoul68zx3who/aHR0cHM6Ly9ieXRlcy5kZXYvdW5zdWJzY3JpYmU=" style="color: #9B9890;" url-id="1757950779">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.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w">Unsubscribe</a></span>
<!-- -->
<img src="https://open.convertkit-mail4.com/n4ugqg6788hvhxo6gd5u6h6pxmgggtlho53w" alt="">
</body>
</html>