<!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/airpods-pool.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/sure-about-it.jpg">
<link rel="preload" as="image" href="https://bytes.dev/images/content/cool-bits.png">
<link rel="preload" as="image" href="https://bytes.dev/images/bytes-icon.png">
<title>Bytes: RedwoodSDK 1.0 is Cloudflare-maxxing</title>
<meta name="color-scheme" content="light dark">
<meta name="supported-color-schemes" content="light dark">
<link href="https://fonts.googleapis.com/css2?family=Fira+Mono&family=Outfit:wght@400;500;700;900&family=Paytone+One" rel="stylesheet">
<style>@media (prefers-color-scheme: dark) {
.email-wrapper {
color: #F9F4DA !important;
background-color: #0F0D0E !important;
}
hr {
border-color: #262422 !important;
}
mark {
background-color: #231F20 !important;
color: #F9F4DA !important;
}
pre {
background-color: #231F20 !important;
border: 1px solid #231F20 !important;
color: #F9F4DA !important;
}
.bg-alt {
background-color: #231F20 !important;
}
.unsubscribe-link {
color: #504C48 !important;
}
.token.punctuation {
color: #f9f4da !important;
}
}
@media screen and (min-width: 600px) {
.mobile-break {
display: none;
}
}</style>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<table class="email-wrapper" border="0" cellspacing="0" width="100%" style="background-color: #FFF; border-collapse: collapse; color: #231F20; font-family: Outfit, sans-serif; font-size: 16px; width: 100%;"><tbody><tr>
<td style="border-collapse: collapse !important; word-break: normal;"></td>
<td width="600px" style="border-collapse: collapse !important; width: 600px; word-break: normal;"><div style="max-width:600px;padding-top:80px">
<div style="text-align:center"><img width="600" style="max-width: 100%; padding-bottom: 40px;" src="https://bytes.dev/images/bytes-banner-rounded.png" alt="Bytes"></div>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;"><strong style="font-weight: 600;">Today’s issue:</strong> The Ina Garten of JavaScript logs, Dan Abramov’s culpability for ChatGPT’s performance issues, and my former manager turning into an AI meat suit on LinkedIn.</p>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">Welcome to <a href="https://c5e21242.click.convertkit-mail.com/8kum7m4l33soh2ne937akhkgp628kh3hq45n/x0hph3ue228dxqh5/aHR0cHM6Ly9ieXRlcy5kZXYvYXJjaGl2ZXMvNDc0" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1844345396">#474</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/airpods-pool.jpg" alt="A guy listening to an iPhone with over-ear headphones, eyes closed and submerged up to his neck in a swimming pool" 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;">You are powerful. You are stable. You are ready for production.<!-- --> </p>
</div>
<h3 style="font-size: 24px; margin-bottom: 0; padding-left: 24px; padding-right: 24px;">RedwoodSDK 1.0 is Cloudflare-maxxing</h3>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">The best time to plant a Redwood was 150 years ago, but the best time plant <em>RedwoodSDK</em> into the hearts and minds of developers was last month, when they finally shipped <a href="https://c5e21242.click.convertkit-mail.com/8kum7m4l33soh2ne937akhkgp628kh3hq45n/6qhehoulrrv603so/aHR0cHM6Ly9yd3Nkay5jb20vYmxvZy9yZWR3b29kLXYxLWdldHRpbmctb3V0LW9mLXRoZS13ZWVkcw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1844345397">RedwoodSDK 1.0</a> after six years of building in public.</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;">How we got here:</strong> The RedwoodJS project was first launched in 2020 by GitHub Co-founder Tom Preston-Werner, but evolved into RedwoodSDK after lead dev Peter Pistorius left to build his own startup on Redwood, hated spending so much time wrangling infrastructure, and came back to the Redwood team with a different philosophy.</p>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">The result was a minimal, server-first React SDK built entirely on Cloudflare. Let’s take a closer look:</p>
<ul>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><strong style="font-weight: 600;">No hidden magic</strong> – No code generation, no implied routing, no special file name treatment, and no transpilation side effects. Everything flows through standard JS imports and exports, so what you write is what runs.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><strong style="font-weight: 600;">RSC out of the box</strong> – Starts as a Vite plugin that unlocks SSR, RSC, and server functions. Routes are just TypeScript functions, buttons call server functions directly, and there’s no REST layer required.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><strong style="font-weight: 600;">Full Cloudflare integration</strong> – Workers, D1, R2, Queues, and AI are all first-class. Local dev via Miniflare matches production exactly. Yes, this introduces lock in, but like Evan You and Vite+, the Redwood team promises the tradeoffs are worth it.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><strong style="font-weight: 600;">useSyncedState for realtime</strong> – A drop-in <code style="font-size: 14px;">useState</code> replacement that syncs state across all connected clients via Cloudflare Durable Objects. No WebSocket handlers, pub/sub, or third-party service.</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> RedwoodSDK is betting that Cloudflare’s platform can replace the service soup of stitched-together infrastructure, and that “radical minimalism” is best approach for our agent-based future.</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/8kum7m4l33soh2ne937akhkgp628kh3hq45n/e0hph0u7vv9w5za8/aHR0cHM6Ly9mYWNlYm9vay5jb20vc2hhcmVyL3NoYXJlci5waHA_dT1odHRwcyUzQSUyRiUyRmJ5dGVzLmRldiUyRmFyY2hpdmVzJTJGNDc0" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1844345398"><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/8kum7m4l33soh2ne937akhkgp628kh3hq45n/7qh7h2u9llvp3gcz/aHR0cHM6Ly93d3cubGlua2VkaW4uY29tL3NoYXJpbmcvc2hhcmUtb2Zmc2l0ZS8_dXJsPWh0dHBzJTNBJTJGJTJGYnl0ZXMuZGV2JTJGYXJjaGl2ZXMlMkY0NzQ=" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1844345399"><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/8kum7m4l33soh2ne937akhkgp628kh3hq45n/owhkhwuw993lx3fv/aHR0cHM6Ly90d2l0dGVyLmNvbS9pbnRlbnQvdHdlZXQvP3RleHQ9UmVkd29vZFNESyUyMDEuMCUyMHRha2VzJTIwQ2xvdWRmbGFyZS1tYXh4aW5nJTIwdG8lMjB0aGUlMjBuZXh0JTIwbGV2ZWwmdXJsPWh0dHBzJTNBJTJGJTJGYnl0ZXMuZGV2JTJGYXJjaGl2ZXMlMkY0NzQ=" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1844345400"><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/8kum7m4l33soh2ne937akhkgp628kh3hq45n/z2hgh7ue669r54cp/bWFpbHRvOj9ib2R5PVRob3VnaHQlMjB5b3UlMjdkJTIwbG92ZSUyMHRoaXMlMjB3ZWVrJTI3cyUyMEJ5dGVzJTBBLS0tJTBBUmVkd29vZFNESyUyMDEuMCUyMHRha2VzJTIwQ2xvdWRmbGFyZS1tYXh4aW5nJTIwdG8lMjB0aGUlMjBuZXh0JTIwbGV2ZWwlMEFodHRwcyUzQSUyRiUyRmJ5dGVzLmRldiUyRmFyY2hpdmVzJTJGNDc0JnN1YmplY3Q9WW91JTIwbGlrZSUyMGNvcm5icmVhZCUzRg==" rel="noopener" style="color: #12b5e5; font-weight: 600; padding-left: 5px; text-decoration: none;" target="_blank" url-id="1844345401"><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/sure-about-it.jpg" alt="Tim Robinson saying, you sure about that?" 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;">Your coding agent gaslighting you every code review<!-- --> </p>
</div>
<h3 style="font-size: 24px; margin-bottom: 0; padding-left: 24px; padding-right: 24px;"><a href="https://c5e21242.click.convertkit-mail.com/8kum7m4l33soh2ne937akhkgp628kh3hq45n/p8hehqu466k5r2sq/aHR0cHM6Ly9jb2RlcmFiYml0LmxpbmsvYnl0ZXM=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1844345402">Your AI shouldn’t grade its own homework</a></h3>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">Claude Code writes beautiful code. So does Codex. But here’s the thing — they also <em>think</em> they write beautiful code. And when you ask an AI to review code it just wrote, you get the intellectual equivalent of a student grading their own exam. Shockingly, they always pass.</p>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">CodeRabbit CLI plugs into Claude Code and Codex as an external reviewer — different AI Agent, different architecture, 40+ static analyzers, zero emotional attachment to the code it’s looking at. The agent writes, CodeRabbit reviews, and the agent fixes. Loop until clean.</p>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">You don’t touch it until there’s actually something worth approving.</p>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;">One command gets you autonomous generate-review-iterate cycles. The AI still does the work, it just doesn’t get to decide if the work is good anymore.</p>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5; padding-left: 24px; padding-right: 24px;"><a href="https://c5e21242.click.convertkit-mail.com/8kum7m4l33soh2ne937akhkgp628kh3hq45n/p8hehqu466k5r2sq/aHR0cHM6Ly9jb2RlcmFiYml0LmxpbmsvYnl0ZXM=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1844345402">Try CodeRabbit’s CLI</a> (free tier available).</p>
<hr style="border: 0; border-bottom: 5px solid; border-color: #f5f5f5; margin-bottom: 100px; margin-top: 100px;">
<div style="text-align:center;margin-bottom:36px">
<img width="110" src="https://bytes.dev/images/content/cool-bits.png" alt="Cool Bits logo" style="max-width: 100%;"><h2 style="font-family: Paytone One, sans-serif; font-size: 28px; margin-top: 10px; text-transform: uppercase;">Cool Bits</h2>
</div>
<ol>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><a href="https://c5e21242.click.convertkit-mail.com/8kum7m4l33soh2ne937akhkgp628kh3hq45n/x0hph3ue228dkza5/aHR0cHM6Ly9naXRodWIuY29tL2NoZW5nbG91L3ByZXRleHQ=" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1844345403">Pretext</a> is a new browser library from Cheng Lou (<span role="img" aria-label="goat">🐐</span>) that redefines how we render text on the web by calculating text height and line-wrapping without touching the DOM. We’ll break down this black magic next issue.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">Buchodi investigated <a href="https://c5e21242.click.convertkit-mail.com/8kum7m4l33soh2ne937akhkgp628kh3hq45n/6qhehoulrrv6x6to/aHR0cHM6Ly93d3cuYnVjaG9kaS5jb20vY2hhdGdwdC13b250LWxldC15b3UtdHlwZS11bnRpbC1jbG91ZGZsYXJlLXJlYWRzLXlvdXItcmVhY3Qtc3RhdGUtaS1kZWNyeXB0ZWQtdGhlLXByb2dyYW0tdGhhdC1kb2VzLWl0Lw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1844345404">why ChatGPT won’t let you type until Cloudflare reads your React state</a>. Pretty sure this is Dan Abramov’s fault.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><a href="https://c5e21242.click.convertkit-mail.com/8kum7m4l33soh2ne937akhkgp628kh3hq45n/kkhmh2unwwg2z3tl/aHR0cHM6Ly9za2lsbHMuc2gvYXBpZnkvYWdlbnQtc2tpbGxz" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1844345405">Apify Agent Skills</a> are the easiest way to give your AI agents thousands of tools for web scraping and data extraction. Install them with one simple CLI command: <code style="font-size: 14px;">npx skills add apify/agent-skills</code> [sponsored]</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">Braxton Schafer explained how <a href="https://c5e21242.click.convertkit-mail.com/8kum7m4l33soh2ne937akhkgp628kh3hq45n/58hvh8ugxxpo39f6/aHR0cHM6Ly9ibG9nLmNsb3VkZmxhcmUuY29tL29uZS1saW5lLWt1YmVybmV0ZXMtZml4LXNhdmVkLTYwMC1ob3Vycy1hLXllYXIv" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1844345406">a one-line Kubernetes fix saved Cloudflare 600 hours a year</a>.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">Niels Leenheer explained <a href="https://c5e21242.click.convertkit-mail.com/8kum7m4l33soh2ne937akhkgp628kh3hq45n/25h2h9u399r0l7t3/aHR0cHM6Ly9uaWVsc2xlZW5oZWVyLmNvbS9hcnRpY2xlcy8yMDI2L2Nzcy1pcy1kb29tZWQtcmVuZGVyaW5nLWRvb20taW4tM2Qtd2l0aC1jc3Mv" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1844345407">how he rendered DOOM in 3D using CSS</a>. Wake me up once you get Halo 3 running on that bad boy.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;"><a href="https://c5e21242.click.convertkit-mail.com/8kum7m4l33soh2ne937akhkgp628kh3hq45n/qvh8h8udwwg2erul/aHR0cHM6Ly9nby5jbGVyay5jb20vcElFQjNrcw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1844345408">Clerk just partnered with Stripe</a> for the Stripe Projects initiative, so now you can provision Clerk from your terminal with just <code style="font-size: 14px;">stripe projects add clerk</code>. [sponsored]</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">Willy Brauner wrote a deep dive into the <a href="https://c5e21242.click.convertkit-mail.com/8kum7m4l33soh2ne937akhkgp628kh3hq45n/g3hnhwum997ogmhr/aHR0cHM6Ly93aWxseWJyYXVuZXIuY29tL2pvdXJuYWwvc2lnbmFsLXRoZS1wdXNoLXB1bGwtYmFzZWQtYWxnb3JpdGht" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1844345409">push-pull based algorithm of Signals</a>.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">Sentry created <a href="https://c5e21242.click.convertkit-mail.com/8kum7m4l33soh2ne937akhkgp628kh3hq45n/3ohphdu3mm69xzbr/aHR0cHM6Ly9zZW50cnkuaW8vY29va2Jvb2sv" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1844345411">a cookbook full of agent recipes</a> to help your agents find and fix broken code faster. I can’t wait to become the Ina Garten of JavaScript logs.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">Tanner Linsley just gave a <a href="https://c5e21242.click.convertkit-mail.com/8kum7m4l33soh2ne937akhkgp628kh3hq45n/n2hohquvqqw52eb6/aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g_dj04WEdjYy1GUlB1bw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1844345412">30-minute talk on TanStack Start</a> at React Paris that highlights how different it is from Next.js, especially with how it handles RSC.</p>
</li>
<li>
<p style="font-family: Outfit, sans-serif; font-size: 17px; line-height: 1.5;">Human Security’s <a href="https://c5e21242.click.convertkit-mail.com/8kum7m4l33soh2ne937akhkgp628kh3hq45n/48hvh7umllzqwwtx/aHR0cHM6Ly93d3cuaHVtYW5zZWN1cml0eS5jb20vbGVhcm4vcmVzb3VyY2VzLzIwMjYtc3RhdGUtb2YtYWktdHJhZmZpYy1jeWJlcnRocmVhdC1iZW5jaG1hcmtzLw==" style="color: #12b5e5; font-weight: 600; text-decoration: underline;" url-id="1844345413">State of AI Traffic & Cyberthreat Benchmark Report</a> revealed that non-human internet traffic is growing 8x faster than human traffic, tripling its volume in 2025. After accidentally opening LinkedIn yesterday, I’m surprised the numbers aren’t even higher.</p>
</li>
</ol>
<div style="text-align:center;padding-bottom:80px;padding-top:80px">
<div class="bg-alt" style="background-color: #f5f5f5; border-radius: 16px; margin-bottom: 40px; padding: 24px;"><div style="margin-top:-40px">
<img src="https://bytes.dev/images/bytes-icon.png" alt="Bytes" width="55px" style="max-width: 100%; width: 55px;"><h5 style="font-size:18px;font-weight:400;margin-bottom:24px">Want us to say nice things <br> about your company?</h5>
<div style="margin-bottom:16px"><a style="background-color: #FCBA28; border: 1px solid #231F20; border-radius: 100px; color: #231F20; font-size: 14px; font-weight: 600; padding: 8px 14px; text-decoration: none;" href="https://c5e21242.click.convertkit-mail.com/8kum7m4l33soh2ne937akhkgp628kh3hq45n/wnh2h6uq779vmnc7/aHR0cHM6Ly9ieXRlcy5kZXYvYWR2ZXJ0aXNl" url-id="1844345414">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/8kum7m4l33soh2ne937akhkgp628kh3hq45n/reh8h9umdd9vkds2/aHR0cHM6Ly9ieXRlcy5kZXYvc2hhcmU=" url-id="1844345415">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/8kum7m4l33soh2ne937akhkgp628kh3hq45n/08hwhgu2ee0wnrsl/aHR0cHM6Ly9maXJlc2hpcC5kZXY=" url-id="1844345416">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/8kum7m4l33soh2ne937akhkgp628kh3hq45n/8ghqh3uoddepwvik/aHR0cHM6Ly9ieXRlcy5kZXYvdW5zdWJzY3JpYmU=" style="color: #9B9890;" url-id="1844345417">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/8kum7m4l33soh2ne937akhkgp628kh3hq45n">Unsubscribe</a></span>
<!-- -->
<img src="https://c5e21242.open.convertkit-mail.com/8kum7m4l33soh2ne937akhkgp628kh3hq45n" alt="">
</body>
</html>