<!DOCTYPE html>
<html>
<head>
<style>.ck-link { text-decoration: underline; }</style>
<style>.ck-link { text-decoration: underline; }</style>
<style>@media only screen { .email * { word-break: break-word; } }
@media screen and (max-width: 384px) { .mail-message-content { width: 414px !important; } }
@media only screen { .email * { word-break: break-word; } }
@media screen and (max-width: 384px) { .mail-message-content { width: 414px !important; } }
@media only screen and (max-width:600px) { .ck-mobile-font-size { font-size:50px !important; } }
@media only screen and (max-width:600px) { .ck-mobile-font-size { font-size:50px !important; } }</style>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body style="margin:0;padding:0;-webkit-font-smoothing:antialiased;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%">
<div id="preview-text">
<span style="display: none; max-height: 0; overflow: hidden;">
Save $50. Price goes up tonight!
</span>
<span style="display: none; max-height: 0; overflow: hidden;">
͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
</span>
</div>
<div class="email" style="margin-left:18px;margin-right:18px">
<!--[if mso]><style>.button-table { padding: 12px 0 }</style><![endif]--><table cellpadding="0" cellspacing="0" style="border-collapse:separate;mso-table-lspace:0pt;mso-table-rspace:0pt;width:100%;margin:0 auto"><tbody><tr><td style="vertical-align:top">
<p class="" style="margin:1em 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;color:#2d2d2f;font-size:16px;line-height:1.5">A year ago, shipping LLM features meant building two rickety bridges: first from provider → your backend (streaming tokens, tool calls, files, errors), then from backend → your frontend (keeping the stream coherent for users). Every provider looked different. APIs churned (“completions” one month, “responses” the next). Python dominated. Tiny context windows forced hacks. It worked—barely—but the maintenance cost was <em>brutal</em>.</p>
<p class="" style="margin:1em 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;color:#2d2d2f;font-size:16px;line-height:1.5">Fast‑forward to today: <strong>the ecosystem came to TypeScript</strong>. We’ve got proven patterns (evals, guardrails, routers, agents), stable streaming UX, and observability that helps you debug instead of guess. You can switch models, keep your UI reactive, and stay productive even as vendors evolve.</p>
<p class="" style="margin:1em 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;color:#2d2d2f;font-size:16px;line-height:1.5">That’s why AI SDK v5 has become my default foundation:</p>
<ul class="unordered_list" style="margin:1em 0;margin-left:1em;padding:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;color:#2d2d2f;font-size:16px;line-height:1.5;list-style-position:outside !important">
<li class="list_item" style="padding:0 0 0 1em;margin:0;margin-left:1em"><span><strong>Unified provider API.</strong> Swap models or mix them with a single line, without rewriting glue code.</span></li>
<li class="list_item" style="padding:0 0 0 1em;margin:0;margin-left:1em"><span><strong>Type‑safe tools end‑to‑end.</strong> Strong types from backend through your UI.</span></li>
<li class="list_item" style="padding:0 0 0 1em;margin:0;margin-left:1em"><span><strong>Custom data parts + simple persistence.</strong> Stream text <em>and</em> artifacts cleanly; render from one parts array.</span></li>
<li class="list_item" style="padding:0 0 0 1em;margin:0;margin-left:1em"><span><strong>Observability built‑in.</strong> OpenTelemetry out of the box; wire it to your platform in minutes.</span></li>
<li class="list_item" style="padding:0 0 0 1em;margin:0;margin-left:1em"><span><strong>Runs anywhere.</strong> Node, Deno, Bun. Framework hooks or vanilla JS.</span></li>
<li class="list_item" style="padding:0 0 0 1em;margin:0;margin-left:1em"><span><strong>Open source, Apache 2.0.</strong> Fork it, ship it, keep your options open.</span></li>
<li class="list_item" style="padding:0 0 0 1em;margin:0;margin-left:1em"><span><strong>Ecosystem momentum.</strong> Langfuse, Braintrust, Vercel’s Chat SDK, AI Elements, and more are aligning around it.</span></li>
</ul>
<p class="" style="margin:1em 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;color:#2d2d2f;font-size:16px;line-height:1.5">This isn’t theoretical. Teams are using AI SDK to automate end‑to‑end tests with Playwright, generate feature boilerplate locally, stream analytics for games (text + charts at once), and ship CMS “suggest improvements” flows inside editors. </p>
<p class="" style="margin:1em 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;color:#2d2d2f;font-size:16px;line-height:1.5"><strong>AI SDK makes the hard parts boring.</strong></p>
<p class="" style="margin:1em 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;color:#2d2d2f;font-size:16px;line-height:1.5">If you want to go from “curious” to “shipping,” my <strong>AI SDK v5 Crash Course</strong> is designed to get you there fast. It’s 57 hands‑on exercises across 10 modules—video + enhanced transcripts, self‑paced, yours to keep. </p>
<p class="" style="margin:1em 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;color:#2d2d2f;font-size:16px;line-height:1.5">You’ll build:</p>
<ul class="unordered_list" style="margin:1em 0;margin-left:1em;padding:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;color:#2d2d2f;font-size:16px;line-height:1.5;list-style-position:outside !important">
<li class="list_item" style="padding:0 0 0 1em;margin:0;margin-left:1em"><span>A <strong>Chat Title Generator</strong> with a real eval dataset.</span></li>
<li class="list_item" style="padding:0 0 0 1em;margin:0;margin-left:1em"><span>A <strong>Slack writer</strong> workflow that self‑refines.</span></li>
<li class="list_item" style="padding:0 0 0 1em;margin:0;margin-left:1em"><span>A <strong>Model guardrail</strong> to secure your app.</span></li>
<li class="list_item" style="padding:0 0 0 1em;margin:0;margin-left:1em"><span>A <strong>Request router</strong> to send simple asks to cheaper models.</span></li>
<li class="list_item" style="padding:0 0 0 1em;margin:0;margin-left:1em"><span>A full <strong>Research agent</strong> that searches the web for you.</span></li>
</ul>
<p class="" style="margin:1em 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;color:#2d2d2f;font-size:16px;line-height:1.5">No Python detours. No platform lock‑in. Just modern TypeScript patterns and production‑ready practices you can drop into real apps and ship today.</p>
<p class="" style="margin:1em 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;color:#2d2d2f;font-size:16px;line-height:1.5"><strong>Today only (Friday, October 24): $99 instead of $149.</strong> And your <strong>$99 becomes a $149 credit</strong> toward my next cohort workshop in November.</p>
<!--[if !mso]>--><table width="100%" style="border-collapse:separate;mso-table-lspace:0pt;mso-table-rspace:0pt"><tbody><tr><td align="center" style="vertical-align:top"><a class="email-button" href="https://click.convertkit-mail2.com/p9u2lvnpmmt9h2g6407uqhpvk5933hrhkk55z/dphehmuee2nd8wfm/aHR0cHM6Ly93d3cuYWloZXJvLmRldi93b3Jrc2hvcHMvYWktc2RrLXY1LWNyYXNoLWNvdXJzZQ==" target="_blank" rel="noopener noreferrer" style="color:#0875c1;border:0 none;margin-bottom:0.5em;font-size:16px;line-height:1.5;background-color:#0875c1;color:#ffffff;border-radius:4px;border-color:#0875c1;background-color:#0875c1;box-sizing:border-box;border-style:solid;color:#ffffff;display:inline-block;text-align:center;text-decoration:none;padding:18px 32px;margin-top:48px;margin-bottom:48px;font-size:24px;border-radius:4px 4px 4px 4px" url-id="1798786612"><strong>ENROLL TODAY (FINAL DAY TO SAVE)</strong></a></td></tr></tbody></table>
<!--<![endif]--><!--[if mso]><table class="button-table" width="100%" border="0" cellSpacing="0" cellPadding="0" style="margin-top:48px;margin-bottom:48px"><tr><td align="center"><table border="0" cellSpacing="0" cellPadding="0"><tr><td align="center" bgcolor="#0875c1" style="background-color:#0875c1;overflow:hidden;padding:18px 32px"><a class="email-button" href="https://www.aihero.dev/workshops/ai-sdk-v5-crash-course" target="_blank" rel="noopener noreferrer" style="background-color:inherit;display:inline-block;text-decoration:none;margin:0;color:#ffffff;font-size:24px" data-ck-element="button"><strong>ENROLL TODAY (FINAL DAY TO SAVE)</strong></a></td></tr></table></td></tr></table><![endif]--><p class="" style="margin:1em 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;color:#2d2d2f;font-size:16px;line-height:1.5">– Matt</p>
</td></tr></tbody></table>
<div class="email-footer"><table cellpadding="0" cellspacing="0" style="border-collapse:separate;mso-table-lspace:0pt;mso-table-rspace:0pt;width:100%;margin:0 auto"><tbody><tr><td style="vertical-align:top">
<div><div class="email-footer" style="color:#4b4b4b">
<p style="margin:1em 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;color:#2d2d2f;font-size:16px;line-height:1.5;color:#4b4b4b; margin:1em 0;font-family:Arial,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;;font-size:12px;line-height:1.5;display:block;margin:13px 0;"><a href="https://click.convertkit-mail2.com/p9u2lvnpmmt9h2g6407uqhpvk5933hrhkk55z/08h4p5pzfgu22prng7tl/aHR0cHM6Ly93d3cudG90YWx0eXBlc2NyaXB0LmNvbS91bnN1YnNjcmliZWQ_c2VxdWVuY2U9YWlfaGVybw==" trigger-id="5153768" style="color:#0875c1" url-id="1798786614">Unsubscribe from AI Hero Emails</a>. You can also <a href="https://unsubscribe.convertkit-mail2.com/p9u2lvnpmmt9h2g6407uqhpvk5933hrhkk55z" style="color:#0875c1"><span style="font-size:12px">unsubscribe</span></a><span style="font-size:12px"> from all emails at any time.</span></p>
<p style="margin:1em 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;color:#2d2d2f;font-size:16px;line-height:1.5;color:#4b4b4b; margin:1em 0;font-family:Arial,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;;line-height:1.5;display:block;margin:13px 0;"><span style="font-size:10px">12333 Sowden Rd, Ste. B, PMB #97429, Houston, TX 77080</span></p>
</div></div>
<p class="" style="margin:1em 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;color:#2d2d2f;font-size:16px;line-height:1.5"></p>
</td></tr></tbody></table></div>
</div>
<!-- -->
<img src="https://open.convertkit-mail2.com/p9u2lvnpmmt9h2g6407uqhpvk5933hrhkk55z" alt="" style="border:0 none;display:block;height:auto;line-height:100%;outline:none;-webkit-text-decoration:none;text-decoration:none;max-width:100%">
</body>
</html>