<!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/confused-paper-reader.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/coderabbit-logo.png">
<link rel="preload" as="image" href="https://bytes.dev/images/content/skeptical-glance.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: Something worse than semver</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> The cure for male pattern baldness, compiling away React’s bad parts, and going ring shopping at gunpoint.</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/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/owhkhwuw2496npivhr/aHR0cHM6Ly9ieXRlcy5kZXYvYXJjaGl2ZXMvNTA3" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1873747670">#507</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/confused-paper-reader.jpg" alt="A confused man reading a sheet of paper" 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;">GPT 5.6 Sol Ultra Fast<!-- --> </p>
</div>
<h3 style="font-size: 24px; margin-bottom: 0; padding-left: 24px; padding-right: 24px;">Something worse than semver</h3>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">I am a little ashamed to admit that, for a long time, semver, my arch-nemesis, has been a helpful tool for deciding what to write about. But this week, when <a href="https://c5e21242.click.convertkit-mail.com/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/z2hgh7ueqo6k76uph0/aHR0cHM6Ly93d3cuYW50aHJvcGljLmNvbS9uZXdzL2NsYXVkZS1vcHVzLTU=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1873747671">Anthropic released Opus 5</a> and Elon said <a href="https://c5e21242.click.convertkit-mail.com/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/p8hehqu4n962dohqh3/aHR0cHM6Ly94LmNvbS9lbG9ubXVzay9zdGF0dXMvMjA4MDcyNDA4NzU5MzIyNjMxMT9zPTIw" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1873747672">Grok will release 4.6 and 4.7 in the next month</a>, I realized that AI naming conventions are basically just vibes.</p>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">The way semver is supposed to work is that it follows the convention of MAJOR.MINOR.PATCH, where patches are backward-compatible bug fixes, minors are backward-compatible feature additions, and majors are reserved for breaking changes. But in the world of AI, none of this is particularly helpful. So I have decided to do an insane thing and try to make this all make sense. Wish me luck.</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;">Version Number:</strong> Major versions usually represent significant changes to a model’s architecture, training data, and training strategies, with the goal of adding new capabilities. Minor versions represent optimizations to the base model, usually via post-training, that make the model perform better on benchmarks or improve its efficiency.</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;">Product Name:</strong> Both Anthropic and OpenAI have product names (<code style="font-size: 15px;">Fable | Opus | Sonnet | Haiku</code> vs. <code style="font-size: 15px;">Sol | Terra | Luna</code>) within each version of a model. These products essentially represent a “tier” of model that relates roughly to how large and precise the model is. Roughly speaking, the larger and more precise the model, the slower and more expensive it will be. If you’ve noticed companies talking more and more about routers, it’s because they are trying to smooth over this nonsense by using an LLM to assess a query and send it to the most relevant model.</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;">Effort Level:</strong> If this current set of conventions wasn’t dumb enough, there is also an effort level option that model providers offer. The effort level is an indication of how many reasoning steps a model should take before returning an answer. How do you know how much the model is going to reason? Lol you don’t. In my experience, it’s a great way to light tokens on fire, burn through all your credits, and never get a result.</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> AI companies creating a system that is worse than semver is truly an accomplishment, but hopefully the next time you feel the urge to fire up Fable 5 on max reasoning for your CRUD app, you’ll think of this and reconsider your life choices.</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/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/x0hph3ue5n2pz6f5hl/aHR0cHM6Ly9mYWNlYm9vay5jb20vc2hhcmVyL3NoYXJlci5waHA_dT1odHRwcyUzQSUyRiUyRmJ5dGVzLmRldiUyRmFyY2hpdmVzJTJGNTA3" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1873747673"><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/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/6qhehoulmpr5w8fohk/aHR0cHM6Ly93d3cubGlua2VkaW4uY29tL3NoYXJpbmcvc2hhcmUtb2Zmc2l0ZS8_dXJsPWh0dHBzJTNBJTJGJTJGYnl0ZXMuZGV2JTJGYXJjaGl2ZXMlMkY1MDc=" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1873747674"><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/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/7qh7h2u9r0l68nizh6/aHR0cHM6Ly90d2l0dGVyLmNvbS9pbnRlbnQvdHdlZXQvP3RleHQ9QUklMjBuYW1pbmclMjBjb252ZW50aW9ucyUyMGhhdmUlMjBzb21laG93JTIwYmVjb21lJTIwd29yc2UlMjB0aGFuJTIwc2VtdmVyLiZ1cmw9aHR0cHMlM0ElMkYlMkZieXRlcy5kZXYlMkZhcmNoaXZlcyUyRjUwNw==" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1873747676"><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/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/owhkhwuw2496n0hvhr/bWFpbHRvOj9zdWJqZWN0PVlvdSUyMGxpa2UlMjBjb3JuYnJlYWQlM0YmYm9keT1UaG91Z2h0JTIweW91JTI3ZCUyMGxvdmUlMjB0aGlzJTIwd2VlayUyN3MlMjBCeXRlcyUwQS0tLSUwQUFJJTIwbmFtaW5nJTIwY29udmVudGlvbnMlMjBoYXZlJTIwc29tZWhvdyUyMGJlY29tZSUyMHdvcnNlJTIwdGhhbiUyMHNlbXZlci4lMEFodHRwcyUzQSUyRiUyRmJ5dGVzLmRldiUyRmFyY2hpdmVzJTJGNTA3" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1873747677"><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/coderabbit-logo.png" alt="CodeRabbit 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/skeptical-glance.jpg" alt="A man giving a skeptical sideways glance" 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;">Reviewing AI-generated code before we had CodeRabbit<!-- --> </p>
</div>
<h3 style="font-size: 24px; margin-bottom: 0; padding-left: 24px; padding-right: 24px;"><a href="https://c5e21242.click.convertkit-mail.com/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/z2hgh7ueqo6k7zbph0/aHR0cHM6Ly9jb2RlcmFiYml0LmxpbmsvYnl0ZXM=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1873747678">Understand the real change behind your code</a></h3>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">Reviewing AI-generated code shouldn’t mean just going through files in alphabetical order.</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/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/z2hgh7ueqo6k7zbph0/aHR0cHM6Ly9jb2RlcmFiYml0LmxpbmsvYnl0ZXM=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1873747678">CodeRabbit Change Stack</a> reorganizes any pull request from a flat file list into a structured, layer-by-layer walkthrough. And you can try it out for free right now during early access.</p>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">Here’s a sneak peek:</p>
<ul>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;"><strong style="font-weight: 600;">PR Overviews:</strong> Get a PR summary, walkthrough, actionable blockers with one-click fixes, and all PR reviews and comments in one place.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;"><strong style="font-weight: 600;">Timeline View:</strong> See a full history and explanation of how the PR got where it is. Semantic Diff shows you the real changes behind your code, and you can ask the agent questions about your implementation, right where you’re working.</p>
</li>
</ul>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;"><a href="https://c5e21242.click.convertkit-mail.com/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/z2hgh7ueqo6k7zbph0/aHR0cHM6Ly9jb2RlcmFiYml0LmxpbmsvYnl0ZXM=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1873747678">Review your next PR with CodeRabbit Change Stack</a> – try it free today.</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/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/p8hehqu4n962dvaqh3/aHR0cHM6Ly9nby5jbGVyay5jb20vRVdXclVXZg==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1873747679">Clerk</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>Clerk now supports <a href="https://c5e21242.click.convertkit-mail.com/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/p8hehqu4n962dvaqh3/aHR0cHM6Ly9nby5jbGVyay5jb20vRVdXclVXZg==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1873747679">self-serve SSO</a>. Now your customers’ IT admins can configure and manage their own enterprise SSO connections from a new Security tab in <code style="font-size: 15px;"><OrganizationProfile /></code>.</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> items <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 punctuation" style="color: #231F20; font-size: 15px;">{</span> <span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">id</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> <span class="token number" style="color: #fcba28; font-size: 15px;">1</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;">'Apple'</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span> <span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">price</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> <span class="token number" style="color: #fcba28; font-size: 15px;">0.5</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 literal-property property" style="color: #12b5e5; font-size: 15px;">id</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> <span class="token number" style="color: #fcba28; font-size: 15px;">2</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;">'Banana'</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span> <span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">price</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> <span class="token number" style="color: #fcba28; font-size: 15px;">0.3</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 literal-property property" style="color: #12b5e5; font-size: 15px;">id</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> <span class="token number" style="color: #fcba28; font-size: 15px;">3</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;">'Orange'</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span> <span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">price</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> <span class="token number" style="color: #fcba28; font-size: 15px;">0.6</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 keyword" style="color: #f38ba3; font-size: 15px;">function</span> <span class="token function" style="color: #9d7dce; font-size: 15px;">applyDiscount</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token parameter" style="color: #f38ba3; font-size: 15px;">items<span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span> discount</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span> <span class="token punctuation" style="color: #231F20; font-size: 15px;">{</span>
<span class="token keyword" style="color: #f38ba3; font-size: 15px;">for</span> <span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token keyword" style="color: #f38ba3; font-size: 15px;">let</span> i <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> <span class="token number" style="color: #fcba28; font-size: 15px;">0</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span> i <span class="token operator" style="color: #12b5e5; font-size: 15px;"><</span> items<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span>length<span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span> i<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 punctuation" style="color: #231F20; font-size: 15px;">{</span>
items<span class="token punctuation" style="color: #231F20; font-size: 15px;">[</span>i<span class="token punctuation" style="color: #231F20; font-size: 15px;">]</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span>price <span class="token operator" style="color: #12b5e5; font-size: 15px;">-=</span> items<span class="token punctuation" style="color: #231F20; font-size: 15px;">[</span>i<span class="token punctuation" style="color: #231F20; font-size: 15px;">]</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span>price <span class="token operator" style="color: #12b5e5; font-size: 15px;">*</span> discount<span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
items<span class="token punctuation" style="color: #231F20; font-size: 15px;">[</span>i<span class="token punctuation" style="color: #231F20; font-size: 15px;">]</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span>price <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> items<span class="token punctuation" style="color: #231F20; font-size: 15px;">[</span>i<span class="token punctuation" style="color: #231F20; font-size: 15px;">]</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span>price<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span><span class="token function" style="color: #9d7dce; font-size: 15px;">toFixed</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token number" style="color: #fcba28; font-size: 15px;">2</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 keyword" style="color: #f38ba3; font-size: 15px;">return</span> items<span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
<span class="token punctuation" style="color: #231F20; font-size: 15px;">}</span>
<span class="token keyword" style="color: #f38ba3; font-size: 15px;">const</span> discountedItems <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> <span class="token function" style="color: #9d7dce; font-size: 15px;">applyDiscount</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span>items<span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span> <span class="token number" style="color: #fcba28; font-size: 15px;">0.1</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">;</span>
<span class="token keyword" style="color: #f38ba3; font-size: 15px;">const</span> totalPrice <span class="token operator" style="color: #12b5e5; font-size: 15px;">=</span> discountedItems<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span><span class="token function" style="color: #9d7dce; font-size: 15px;">reduce</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 parameter" style="color: #f38ba3; font-size: 15px;">sum<span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span> item</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span> <span class="token operator" style="color: #12b5e5; font-size: 15px;">=></span> sum <span class="token operator" style="color: #12b5e5; font-size: 15px;">+</span> item<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span>price<span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span> <span class="token number" style="color: #fcba28; font-size: 15px;">0</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;">Claude has a new <a href="https://c5e21242.click.convertkit-mail.com/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/x0hph3ue5n2pd8u5hl/aHR0cHM6Ly9jbGF1ZGUuY29tL2Jsb2cvdGhlLW5ldy1ydWxlcy1vZi1jb250ZXh0LWVuZ2luZWVyaW5nLWZvci1jbGF1ZGUtNS1nZW5lcmF0aW9uLW1vZGVscw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1873747680">guide for context engineering</a> for its version 5 models.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">I’m not saying it was personal, but <a href="https://c5e21242.click.convertkit-mail.com/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/kkhmh2unk8w525ilh7/aHR0cHM6Ly90YW5zdGFjay5jb20vYmxvZy9pbnRyb2R1Y2luZy10YW5zdGFjay1tYXJrZG93bi1hbmQtaGlnaGxpZ2h0" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1873747682">Tanner wrote two new libraries</a> — <code style="font-size: 15px;">@tanstack/markdown</code> and <code style="font-size: 15px;">@tanstack/highlight</code> — just to get rid of RSC on tanstack.com.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Archestra built <a href="https://c5e21242.click.convertkit-mail.com/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/58hvh8ugr5xno0h6h4/aHR0cHM6Ly9naXQubmV3L2J5dGVz" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1873747683">an open-source AI platform</a> that bundles a private MCP registry, orchestrator, cost controls, and observability into a secure environment that won’t leak private data to the internet. [sponsored]</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">The <code style="font-size: 15px;">Promise.allKeyed</code> proposal, which lets you return a dictionary of promises, <a href="https://c5e21242.click.convertkit-mail.com/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/25h2h9u3k79800u3h4/aHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtYXdhaXQtZGljdGlvbmFyeQ==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1873747684">reached Stage 3</a>. “Dictionary of promises” and “proposal” are things your girlfriend says when you’re being escorted to Tiffany’s at gunpoint.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Vercel Labs <a href="https://c5e21242.click.convertkit-mail.com/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/qvh8h8ud98w420ulhk/aHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC1sYWJzL3NjcmlwdGM=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1873747685">released <code style="font-size: 15px;">scriptc</code></a>, a compiler that turns TypeScript into native code. Why? Faster cold starts, I guess.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Ethan Smith wrote about <a href="https://c5e21242.click.convertkit-mail.com/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/g3hnhwum4e9lozsrh9/aHR0cHM6Ly93d3cuZXRoYW5zbWl0aDIwMDAuY29tL3Bvc3QvdGhlLW1lYW4tcHJlZmVyZW5jZS1pcy1hLWJhZC1lc3RpbWF0ZS1vZi1wcmVmZXJlbmNlcw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1873747686">reward functions for image models</a> and why it’s so hard to make something everyone likes. If you know what a Gaussian distribution is, continue reading.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Jay Henry and Sergiy Dybskiy are hosting a free workshop on <a href="https://c5e21242.click.convertkit-mail.com/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/9qhzhdudogw63gf9h3/aHR0cHM6Ly9zZW50cnkuaW8vcmVzb3VyY2VzL2V0c3ktd29ya3Nob3AvP3V0bV9zb3VyY2U9Ynl0ZXMmdXRtX21lZGl1bT1wYWlkLWNvbW11bml0eSZ1dG1fY2FtcGFpZ249ZWNvbW1lcmNlLWZ5MjdxMi1ldHN5d29ya3Nob3AmdXRtX2NvbnRlbnQ9bmV3c2xldHRlci1zZWNvbmRhcnktcmVnaXN0ZXI=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1873747687">How Etsy keeps their app crash-free during traffic spikes with Sentry</a>. [sponsored]</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Dominic Gannaway just launched <a href="https://c5e21242.click.convertkit-mail.com/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/3ohphdu3eqm297crhn/aHR0cHM6Ly9vY3RhbmVqcy5kZXYv" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1873747688">a new project called Octane</a> that compiles away all of React’s bad parts.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Kimi K3 <a href="https://c5e21242.click.convertkit-mail.com/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/n2hohquvznqx5vi6hg/aHR0cHM6Ly9odWdnaW5nZmFjZS5jby9tb29uc2hvdGFpL0tpbWktSzM=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1873747689">released its weights</a> on Hugging Face. Dario is furious.</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/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/48hvh7um40lpq6uxh7/aHR0cHM6Ly93aXNwcmZsb3cuYWkv" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1873747690">Wispr Flow</a> is the smart, voice-to-text tool that *actually works* across any app. Just speak naturally when you want to write an AI prompt, PR description, or Slack message, and Wispr Flow turns it into clean, formatted text that’s ready to send. [sponsored]</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">NVIDIA just <a href="https://c5e21242.click.convertkit-mail.com/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/wnh2h6uqer7kvgf7hx/aHR0cHM6Ly9udmlkaWFuZXdzLm52aWRpYS5jb20vbmV3cy9pbHlhLXN1dHNrZXZlcnMtc2FmZS1zdXBlcmludGVsbGlnZW5jZS1pbmMtYW5kLW52aWRpYS1hbm5vdW5jZS1sb25nLXRlcm0tc3RyYXRlZ2ljLXBhcnRuZXJzaGlw" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1873747691">gave Ilya Sutskever’s company SSI a bunch of compute</a>. Step 1: AGI. Step 2: use AGI to fix male pattern baldness.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5;">Poolside made <a href="https://c5e21242.click.convertkit-mail.com/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/reh8h9umgqd3vnf2h6/aHR0cHM6Ly9wb29sc2lkZS5haS9ibG9nL2ludHJvZHVjaW5nLXBvb2xzaWRlLWRlc2t0b3AtYXNzaXN0YW50" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1873747692">a desktop app for Mac</a> to use their models locally. PC users will have to vibe code their own.</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/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/p8hehqu4n962dvaqh3/aHR0cHM6Ly9nby5jbGVyay5jb20vRVdXclVXZg==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1873747679">Clerk</a>
</h4></div>
</div>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">After applying the discount, we use <code style="font-size: 15px;">toFixed(2)</code> to round the price to two decimal places. However, <code style="font-size: 15px;">toFixed()</code> returns a string, not a number. That means that when we calculate the total with <code style="font-size: 15px;">reduce()</code>, we perform string concatenation instead of number addition.</p>
<p style="font-family: Outfit, sans-serif; font-size: 19px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">There are a few ways to fix it. The simplest, if you’re confident in your data, is to convert the result back to a number:</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;">function</span> <span class="token function" style="color: #9d7dce; font-size: 15px;">applyDiscount</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token parameter" style="color: #f38ba3; font-size: 15px;">items<span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span> discount</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">)</span> <span class="token punctuation" style="color: #231F20; font-size: 15px;">{</span>
<span class="token keyword" style="color: #f38ba3; font-size: 15px;">return</span> items<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span><span class="token function" style="color: #9d7dce; font-size: 15px;">map</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token parameter" style="color: #f38ba3; font-size: 15px;">item</span> <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 punctuation" style="color: #231F20; font-size: 15px;">{</span>
<span class="token operator" style="color: #12b5e5; font-size: 15px;">...</span>item<span class="token punctuation" style="color: #231F20; font-size: 15px;">,</span>
<span class="token literal-property property" style="color: #12b5e5; font-size: 15px;">price</span><span class="token operator" style="color: #12b5e5; font-size: 15px;">:</span> <span class="token function" style="color: #9d7dce; font-size: 15px;">Number</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span>item<span class="token punctuation" style="color: #231F20; font-size: 15px;">.</span>price <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 number" style="color: #fcba28; font-size: 15px;">1</span> <span class="token operator" style="color: #12b5e5; font-size: 15px;">-</span> discount<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;">toFixed</span><span class="token punctuation" style="color: #231F20; font-size: 15px;">(</span><span class="token number" style="color: #fcba28; font-size: 15px;">2</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><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/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/08hwhgu23me9wnflh5/aHR0cHM6Ly9ieXRlcy5kZXYvYWR2ZXJ0aXNl" url-id="1873747693">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/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/8ghqh3uomgd2pzckh9/aHR0cHM6Ly9ieXRlcy5kZXYvc2hhcmU=" url-id="1873747694">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/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/vqh3hmuozn0v30sghl/aHR0cHM6Ly9maXJlc2hpcC5kZXY=" url-id="1873747695">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/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w/l2heh6ul8o2nv7a6h0/aHR0cHM6Ly9ieXRlcy5kZXYvdW5zdWJzY3JpYmU=" style="color: #9B9890;" url-id="1873747696">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/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w">Unsubscribe</a></span>
<!-- -->
<img src="https://c5e21242.open.convertkit-mail.com/n4ugqg6788hvhx7vqrki6h672o7m4hlho53w" alt="">
</body>
</html>