<!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" style="font-size:16px;"><head></head><head><meta charset="utf-8"/><!--[if !mso]><!--><meta http-equiv="X-UA-Compatible" content="IE=edge"/><!--<![endif]--><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="x-apple-disable-message-reformatting"/><meta name="format-detection" content="telephone=no,address=no,email=no,date=no,url=no"/><meta name="color-scheme" content="light"/><meta name="supported-color-schemes" content="light"/><title>⚛️ Coinbase is ditching React Native too</title><!--[if mso]><xml><o:OfficeDocumentSettings><o:AllowPNG/><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml><![endif]--><style>
:root { color-scheme: light; supported-color-schemes: light; }
body { margin: 0; padding: 0; min-width: 100%!important; -ms-text-size-adjust: 100% !important; -webkit-transform: scale(1) !important; -webkit-text-size-adjust: 100% !important; -webkit-font-smoothing: antialiased !important; }
.body { word-wrap: normal; word-spacing:normal; }
table.mso { width: 100%; border-collapse: collapse; padding: 0; table-layout: fixed; }
img { border: 0; outline: none; }
table { mso-table-lspace: 0px; mso-table-rspace: 0px; }
td, a, span { mso-line-height-rule: exactly; }
#root [x-apple-data-detectors=true],
a[x-apple-data-detectors=true],
#MessageViewBody a { color: inherit !important; text-decoration: inherit !important; font-size: inherit !important; font-family: inherit !important; font-weight: inherit !important; line-height: inherit !important; }
span.MsoHyperlink { color: inherit !important; mso-style-priority: 99 !important; }
span.MsoHyperlinkFollowed { color: inherit !important; mso-style-priority: 99 !important; }
.a { background-color:#FFFFFF; }
.b { background-color:#030712; }
.c { background-color:#ffffff; }
.d { background-color:#EAEBEC; }
.d2 { background-color:#FFFFFF; }
.d3 { background-color:#FFFFFF; }
h1 a { text-decoration:underline;color:#a6825a !important;font-weight:bold; }
h2 a { text-decoration:underline;color:#a6825a !important;font-weight:bold; }
h3 a { text-decoration:underline;color:#a6825a !important;font-weight:bold; }
h4 a { text-decoration:underline;color:#a6825a !important;font-weight:bold; }
h5 a { text-decoration:underline;color:#a6825a !important;font-weight:bold; }
h6 a { text-decoration:underline;color:#a6825a !important;font-weight:bold; }
h1, h1 a, h2, h2 a, h3, h3 a, h4, h4 a, h5, h5 a, h6, h6 a, ul, li, ol, p, p a { margin: 0;padding: 0; }
h1 { font-family:'Trebuchet MS','Lucida Grande',Tahoma,sans-serif;font-weight:400;font-size:28px;color:#2A2A2A;line-height:1.75;padding-bottom:4px;padding-top:16px;mso-margin-top-alt:16px;mso-margin-bottom-alt:4px }
h2 { font-family:'Trebuchet MS','Lucida Grande',Tahoma,sans-serif;font-weight:400;font-size:24px;color:#2A2A2A;line-height:1.5;padding-bottom:4px;padding-top:16px;mso-margin-top-alt:16px;mso-margin-bottom-alt:4px }
h3 { font-family:'Trebuchet MS','Lucida Grande',Tahoma,sans-serif;font-weight:400;font-size:20px;color:#a6825a;line-height:1.25;padding-bottom:4px;padding-top:16px;mso-margin-top-alt:16px;mso-margin-bottom-alt:4px }
h4 { font-family:'Trebuchet MS','Lucida Grande',Tahoma,sans-serif;font-weight:400;font-size:18px;color:#2A2A2A;line-height:1.125;padding-bottom:4px;padding-top:16px;mso-margin-top-alt:16px;mso-margin-bottom-alt:4px }
h5 { font-family:'Trebuchet MS','Lucida Grande',Tahoma,sans-serif;font-weight:400;font-size:16px;color:#2A2A2A;line-height:1;padding-bottom:4px;padding-top:16px;mso-margin-top-alt:16px;mso-margin-bottom-alt:4px }
h6 { font-family:'Trebuchet MS','Lucida Grande',Tahoma,sans-serif;font-weight:400;font-size:14px;color:#2A2A2A;line-height:0.875;padding-bottom:4px;padding-top:16px;mso-margin-top-alt:16px;mso-margin-bottom-alt:4px }
p { font-family:'Helvetica',Arial,sans-serif;font-weight:400;color:#2D2D2D;font-size:16px;line-height:1.5;padding-bottom:12px;padding-top:12px;mso-margin-top-alt:12px;mso-margin-bottom-alt:12px; }
p a, .e a, ul a, li a, .h a, .h2 a, .h3 a { word-break:break-word;color:#a6825a !important;text-decoration:underline;text-decoration-color:#a6825a;font-weight:bold; }
p a span, .e a span, ul a span, li a span { color: inherit }
p .bold { font-weight:bold;color:#2D2D2D; }
p span[style*="font-size"] { line-height: 1.6; }
.f p { font-size:12px;line-height:15px;color:#2D2D2D;padding:0; }
.f p a { color:#2D2D2D !important; }
.g p { font-family:'Helvetica',Arial,sans-serif;font-size:14px;line-height:20px;font-weight:400;margin:0; }
.g p a { text-decoration: underline; }
.i p { font-family:'Helvetica',Arial,sans-serif;line-height:1.5;font-size:15px;color:#2D2D2D; }
.i p a { color:#2D2D2D !important; }
.i2 p { font-family:'Helvetica',Arial,sans-serif;line-height:1.5;font-size:15px;color:#2D2D2D; }
.i2 p a { color:#2D2D2D !important; }
.i3 p { font-family:'Helvetica',Arial,sans-serif;line-height:1.8;font-size:24px;color:#2D2D2D; }
.i3 p a { color:#2D2D2D !important; }
.h p a { color:#0C4A6E !important; }
.h2 p a { color:#0C4A6E !important; }
.h3 p a { color:#0C4A6E !important; }
.f p a, .i p a, .i2 p a, .i3 p a, .h p a, .h2 p a, .h3 p a { text-decoration:underline; }
.j { border-top:4px solid #a6825a; }
.k p { padding-left:15px;padding-bottom:0px;padding-top:6px;mso-margin-top-alt:6px;mso-margin-bottom-alt:0px;mso-margin-left-alt:15px; }
.o { background-color:#FFFFFF;border:1px solid #F1F1F1;border-radius:5px; }
.o p { font-family:'Helvetica',Arial,sans-serif;padding:0px;margin:0px; }
.l p,
.l p a, .l a { font-size:14px;line-height:20px;font-weight: bold;color:#2D2D2D;padding-bottom:6px;mso-margin-bottom-alt:6px;text-decoration:none; }
.m p,
.m p a { font-size:13px;line-height:18px;font-weight:400;color:#2D2D2D;padding-bottom:6px;mso-margin-bottom-alt:6px;text-decoration:none; }
.n p,
.n p a { font-size:12px;line-height:17px;font-weight:400;color:#2D2D2D;padding-bottom:6px;mso-margin-bottom-alt:6px;text-decoration:none; }
.p { background-color:#FFFFFF;max-width:520px;border:1px solid #E1E8ED;border:1px solid rgba(80, 80, 80, 0.3);border-radius:5px; }
.q { font-size:16px;font-family:Helvetica,Roboto,Calibri,sans-serif !important;border:1px solid #e1e8ed;border:1px solid rgba(80, 80, 80, 0.3);border-radius:10px;background-color:#FFFFFF; }
.q p { font-size:16px;font-family:system-ui,Helvetica,Roboto,Calibri,sans-serif !important;color:#222222;padding:4px 0; }
.r { border:1px solid #E1E8ED !important;border-radius:5px; }
.s p { font-size: 14px; line-height: 17px; font-weight: 400; color: #697882; text-decoration: none; }
.t p { font-family:'Helvetica',Arial,sans-serif;font-size:12px;line-height:1.5;font-weight:400;color:#000000;font-style:italic;padding:0px; }
.v { border-radius:10px;border:solid 0px #a6825a;background-color:#a6825a;font-family:'Verdana',Geneva,sans-serif;color:#000000; }
.v a { text-decoration:none;display:block;color:#000000; }
.w p { font-size:12px;line-height:15px;font-weight:400;color:#FFFFFF; }
.w p a { text-decoration: underline !important;color:#FFFFFF !important; }
ul { font-family:'Helvetica',Arial,sans-serif;margin:0px 0px 0px 25px !important;padding:0px !important;color:#2D2D2D;line-height:24px;list-style-type:disc !important;font-size:16px; }
ul ul { list-style-type:circle !important; }
ul ul ul { list-style-type:square !important; }
ul ul ul ul { list-style-type:disc !important; }
ul ul ul ul ul { list-style-type:circle !important; }
ul ul ul ul ul ul { list-style-type:square !important; }
ul ul ul ul ul ul ul { list-style-type:disc !important; }
ul ul ul ul ul ul ul ul { list-style-type:circle !important; }
ul ul ul ul ul ul ul ul ul { list-style-type:square !important; }
ul > li { font-family:'Helvetica',Arial,sans-serif;margin:10px 0px 0px 0px !important;padding: 0px 0px 0px 0px !important; color: #2D2D2D; }
.poll-choices > li { margin: 4px 0px 0px 0px !important; }
ol { font-family:'Helvetica',Arial,sans-serif;margin: 0px 0px 0px 25px !important;padding:0px !important;color:#2D2D2D;line-height:24px;list-style:decimal;font-size:16px; }
ol > li { font-family:'Helvetica',Arial,sans-serif;margin:10px 0px 0px 0px !important;padding: 0px 0px 0px 0px !important; color: #2D2D2D; }
li > p, li p { font-family:'Helvetica',Arial,sans-serif;font-size:16px;font-weight:400;line-height:24px;padding:0px; }
.e h3,
.e p,
.e span { padding-bottom:0px;padding-top:0px;mso-margin-top-alt:0px;mso-margin-bottom-alt:0px; }
.e span,
.e li { font-family:'Helvetica',Arial,sans-serif;font-size:16px;color:#2D2D2D;line-height:24px; }
.rec { font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !important; }
.rec__button:hover { background-color: #f9fafb !important; }
.copyright a {color: inherit !important; text-decoration: none !important; font-size: inherit !important; font-family: inherit !important; font-weight: inherit !important; line-height: inherit !important;}
.txt_social p { padding: 0; word-break: break-all; }
.table, .table-c, .table-h { border: 1px solid #C0C0C0; }
.table-c { padding:5px; background-color:#FFFFFF; }
.table-c p { color: #2D2D2D; font-family:'Helvetica',Arial,sans-serif !important;overflow-wrap: break-word; }
.table-h { padding:5px; background-color:#F1F1F1; }
.table-h p { color: #2A2A2A; font-family:'Trebuchet MS','Lucida Grande',Tahoma,sans-serif !important;overflow-wrap: break-word; }
@media only screen and (max-width:667px) {
.aa, .w100pc { width: 100% !important; }
.bb, .bb td { max-width: 100% !important; }
.bb img { max-width: 100% !important; height: auto !important; }
.dd { overflow-wrap: break-word !important; }
.cc { padding: 0px 8px !important; }
.ee { padding-top:10px !important;padding-bottom:10px !important; }
.ff ul, .ff ol { margin: 0px 0px 0px 10px !important;padding: 0px !important; }
.ff li { margin:10px 0px 0px 10px !important; }
.r {height:140px !important;}
.s p { font-size:13px !important;line-height:15px !important; }
.mob-hide {display:none !important;}
.mob-show {display: block !important; width: auto !important; overflow: visible !important; float: none !important; max-height: inherit !important; line-height: inherit !important;}
.mob-stack {width:100% !important;display:block !important;}
.mob-w-full {width:100% !important;}
.mob-block {display:block !important;}
.embed-img {padding:0px 0px 12px 0px !important;}
.socialShare {padding-top:15px !important;}
.rec { padding-left:15px!important;padding-right:15px!important; }
.bodyWrapper { padding:10px 4px 10px 4px !important; }
.social-mobile {float:left !important;margin-top:10px !important;}
}
@media screen and (max-width: 480px) {
u + .a .gg { width: 100% !important; width: 100vw !important; }
.tok-heart { padding-top:75% !important; }
.tok-play { padding-top: 250px !important; }
}
@media screen and (max-width: 320px) {
.tok-heart { padding-top:65% !important; }
}
.u { border: 1px solid #CACACA !important; border-radius: 2px !important; background-color: #ffffff !important; padding: 0px 13px 0px 13px !important; font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif !important;font-size: 12px !important; color: #767676 !important; }
.u a { text-decoration: none; display: block !important; color: #767676 !important; margin: 0px !important; }
.u span, .u img { color: #767676 !important;margin:0px !important; max-height:32px !important;background-color:#ffffff !important; }
</style><!--[if mso]><style type="text/css">
h1, h2, h3, h4, h5, h6 {font-family: Arial, sans-serif !important;}
body, table, td, p, a, span {font-family: Arial, sans-serif !important;}
sup { font-size: 100% !important;vertical-align: .5em !important;mso-text-raise: -1.5% !important;line-height: 0 !important; }
ul { margin-left:0px !important; margin-right:10px !important; margin-top:20px !important; margin-bottom:20px !important; }
ul li { margin-left: 0px !important; mso-special-format: decimal; }
ol { margin-left:0px !important; margin-right:10px !important; margin-top:20px !important; margin-bottom:20px !important; }
ol li { margin-left: 0px !important; mso-special-format: decimal; }
li.listItem { margin-left:15px !important; margin-top:0px !important; }
.paddingDesktop { padding: 10px 0 !important; }
.edm_outlooklist { margin-left: -20px !important; }
.embedImage { display:none !important; }
</style><![endif]--><!-- SVE9JWJXQUc88b925b-ad35-4013-ad2e-a5006015907561506297-0c60-4133-a925-5ec571ff2483 --><style></style></head><body class="a" style="margin:0px auto;padding:0px;word-wrap:normal;word-spacing:normal;background-color:#FFFFFF;"><div role="article" aria-roledescription="email" aria-label="email_name" lang="en" style="font-size:1rem"><div style="display:none;max-height:0px;overflow:hidden;"> Plus Remix 3 shipped with no React in it, and Next.js just changed its defaults  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ </div><table role="none" width="100%" border="0" cellspacing="0" align="center" cellpadding="0" class="gg"><tr><td align="center" valign="top"><table role="none" width="670" border="0" cellspacing="0" cellpadding="0" class="aa" style="width:670px;table-layout:fixed;"><tr><td class="bodyWrapper" align="center" valign="top" style="padding:10px 5px 10px 5px;"><table role="none" width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td align="center" valign="top" style="border-width:0px 0px 0px 0px;border-style: solid; border-color: #FFFFFF;border-radius:10px 10px 0px 0px;background-color:#ffffff;" class="c"><table role="none" width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tr id="header"><td style="padding:15px 15px 0px 15px;"><div style="padding-top:0px;padding-right:0px;padding-bottom:20px;padding-left:0px;"><table role="none" width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td class="f" align="right" valign="top"><p> October 08, 2026 | <a data-read-online-tooltip="true" href="https://link.mail.beehiiv.com/v2/c/a2c51f46b6699a007372d6ab382440435cf57aaf35b68a0e1e5e071eb7ed074933d5efb49107b9a747cd86a6ce590ef86d14c902acc705d5ff88d26e498b7f69932aec3c9adabd9a3f1e5c220550ec18a3dfa55f3d02a0d10c7feac9d0369c226f7fc2dc8f64b09545e6e96d4e593da2d6412550a1eb02a172bb350c7d590fdee0c84fc533e14e686a9b66c9a5fbbfa589ec8c90d58475a5244d2b8dfd10d87af2eaa4e91040266107838413a3c3c9b4/0d87b0fd55fec758">Read online</a></p></td></tr><tr><td style="line-height:0;"><div data-open-tracking="true"><img src="https://link.mail.beehiiv.com/v2/o/d464dd4c14b1a21372f67c7b7ccaed35b43ec87ef8e131024b7830f860281fd59a62ce3cbd3f5c65700dfaae67aed79e8b305dce6e010d4199402a416f58e253579240908f2c93184a31abbae8117f67abdf3e8dcf78ff8ea69aaf6298a2d5e7e3f6d266ed6fb13ee79ff1c9f99500170e7484df0ec3e3caa3051ce03f104135433fc2e392cb3cc6e12e7d19b28b715a3038e6894090faee2665fcffcb17b790e0d4aa9c04a482aca1d03b5ee8783e1c4a86517bb826f1b15f108a95a465c4d07799862320993f8cab4b7a1e56e174374a72b64b1d6833dbb50e5e85293b2f3f6fb29d2c7923d5056c81c553bf58576faf95ccd0ea9cc6a4e49942c585bab116f0eb21ae660d793815f8ea4c5682c9e4a163d80376bc93969d3032d349c5e5b20f4f84284d7084c4e2ee05464b82e2339981738e5656dc0f3f083e3bd24aac2aa08e292a598a0cc4745f824c74f5464e65e422ae3fc180492424ae099de21f10b50054c3ba29c83fcec451bd5a70ab3d6dc1bd6c01285ce81fe93997059efb7b/4e8488c02cfaefcd.gif" alt="" width="1" height="1" style="display:block;border:0;outline:0;"></div></td></tr></table></div></td></tr><tr id="content-blocks"><td class="email-card-body" align="center" valign="top" style="padding-bottom:15px;"><table role="none" width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"> Hey friends 👋 </p></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"> Shopify left React Native two weeks ago. <b>Now Coinbase is going too</b>, and we've got the inside story on why Shopify's New Architecture migration wasn't enough to keep them. Remix 3 also went stable <b>with no React in it at all</b>, and someone benchmarked 5,000 components sharing one Context to see whether the React Compiler has quietly fixed one of React's oldest performance complaints. </p></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"> Plus Next.js 16.4 changed the default for every new app, and there's a gradient debugger you'll lose 20 minutes to. </p></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"> Let's get into it. </p></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"><a class="link" href="https://link.mail.beehiiv.com/v2/c/826629573662bd33af373af95f53e071d97b26eeef0a81b85b553472083f38d75824eb17fc487928cae02fdc46cf17d63e8d4a566f0533eae683f587cd59a5700417c7c2635fe419f6a97065e5b33fb343250934e66829c97f7ced804925ffb3b9fe97c10ddbdf4855dedb2d64ece819d8a710713e92163ff8e156c41b7c10d96a9e4a086cf68d0e09318ae9a474b0325a2356860d9afc6b2d942247492b379983fdcc53f8f0ba4c88c8d44ef216264434c5f2836890979e529a0d1d604c276f3072fcfff86a0351d9838c3b88bdb0ab54068299b5f2cb3359a70cd4da563f2ab0d8a9e37d152e4aaf4b5cf529a42cbf449d138fd034c744c5500cde965dbf62/b654994a5a78e8f3" target="_blank" rel="noopener noreferrer nofollow"><span>Attio</span></a> is the agentic CRM for modern teams. It’s your always-on revenue engine: agents and workflows build pipeline, chase every buying signal, and move deals forward alongside your team. <a class="link" href="https://link.mail.beehiiv.com/v2/c/61e7f102579ad275babec22257cc93e683f95778c26055ff444c50676a519d9f13f35c4a8a60e05cf20134fa0c2e28d8a46399d08a4dd85d47972460cf16b786710b19e74069388d8cb3c8ded44360ed4fb989fb52f0827b2ddc217a4365634789049665efa332e4153da40fdde1dca2c43e84e097925e10d482d064f1ecfe23064b73a8f9fa4916fd7c2af256bfd158e69beea70dbfbc102ec893dc4b25758862a0bc4ffacbc2c95c8c32a93c35a6716bac41934b6da64b3bd85f4a4496e71fab6422cab5837badb66af7adf0696d6453bfa017ec67681d8fe3f9a5aa90f826573d9a86512fe9e70359e29899e2eb0ff525ab693758f3f8d1f2cb8f65bf5762/e133e2e17d30163f" target="_blank" rel="noopener noreferrer nofollow"><span>Try Attio now.</span></a></p></td></tr><tr><td id="the-latest-in-react" class="dd" align="left" valign="top" style="color:#a6825a;font-weight:400;padding:0px 15px;text-align:left;"><h3 style="color:#a6825a;font-weight:400;mso-line-height-alt:125.0%;">⚡️ The Latest In React</h3></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"> 🪙 <b><a class="link" href="https://link.mail.beehiiv.com/v2/c/2793f0c289a604654cc2bcfc7537e6a9b7fb92095116092cb2bec5f760c471c7c5817fc37dbc3a9c52c8824edffe57d9dc6081e5bac2d736dff7a91213fb7e5f0bf7b1308f884d5f33ee8cc174e7bef45e4d3ca5336b95cede5484430f7603f9efebad458939bb9de34f6f1da3513f28da42ac27bd6b44d9bf102a72ae8360873d146a54c76a7992245b3cf6565cc13d00d96020579f863a650efb8e226bb28b194744b20f833fbb21a206bfa1379244/4afcbf63775a3887" target="_blank" rel="noopener noreferrer nofollow"><span>Coinbase Is Ditching React Native Too</span></a></b><br>A week after Shopify said it's going native, <b>Coinbase announced the same move</b>. A few developers have been saying the same thing lately: keeping two native apps in sync just isn't as painful as it used to be. Pragmatic Engineer has <a class="link" href="https://link.mail.beehiiv.com/v2/c/f7c5e34b46065851a482b911cfb52be26321080a1ff9e95f1a30638e18bc6d9a5deba4bca6e7d300d0fb057ae73a3c2eb740c1a060ff41934c33f82fa4052398cdf9969b205d2d17b3ab4d19aff535930d5743009b07bc998b097bf7a2589c6be2470fd13c2e6b4b1d67e5dcd2be7d94040b8c2d2be82f3617357a7d2ed879b0c85f40d5ff8eb89890ac0495ba32a112134059e970b9a0f595f219e3ae7cc678d5cf9fd7b8320384bffe7d1527ff4120/00a750a17135121a" target="_blank" rel="noopener noreferrer nofollow"><span>the full story of Shopify's decision</span></a>, including <b>why migrating to the New Architecture didn't change their minds</b>. Two companies in two weeks is starting to look like a trend. </p></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"> 🧠 <a class="link" href="https://link.mail.beehiiv.com/v2/c/a28c41528cc9f097c4b5a39a3f1a6fd47fa8e0ee42389aeaf053e5ee31efc47ec885cc0c04b10f56f71655893a201c5d35650c36eed68569c3e7bd10a2363f9299cbeb3fa1736a4e9e7c1e7c51e5328808347a5307b2786b33b58a7dec4867d5964dabc97f95e89e22360950aa52008c0be74164174a0827cee600283c10194481c884632962ddc4090352e61c668a4e6c63bd19f6813ecbdce51cb7df2014cc1c42c53d95667b1bc3810232ca93e2e8/bbaeb03fc26f6ccc" target="_blank" rel="noopener noreferrer nofollow"><span><b>React Compiler Just Made Context Cheap</b></span></a><br>React still has no context selectors, so every consumer re-renders when anything in the value changes. Jenna Smith goes through the usual workarounds, then <b>benchmarks 5,000 components connected to the same state</b>. The interesting part is <b>how close the React Compiler gets on its own</b> with no workaround at all. You might have some memo code you can delete. </p></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"> 💿 <a class="link" href="https://link.mail.beehiiv.com/v2/c/4a5db66388174a6cd6def963e8af8b15df82c08090b87d274c037c2b1ae1cab7c7b274d53176ded54657fa96bbb51af9ce378dd6a50f41b73c2270b3ddf80835d38d48c2c76cb0af483598fc288938397b31af89305dfc6f10ce550ebc4ccc45e4da092617d3b9a4f97027d7280ff8747a1f9569f06ed3d10ad61c25eb9a2d7010c72a6075ad2fb658b057a13b462541d619cbc6f24f9a364158ceeade4a10ae9cd1205576744c02363837b35857913e/81abab94e6f2a7ac" target="_blank" rel="noopener noreferrer nofollow"><span><b>Remix 3 Is Stable, And There's No React In It</b></span></a><br>Remix 3 shipped at Remix Jam as a full Rails-style framework: router, controllers, middleware, auth, <b>a built-in type-safe ORM</b>, an asset server and its own UI layer. The goal is for Remix to be <b>the only runtime dependency in your package.json</b>. The other big news from the event: <b>Ryan Florence isn't on the team anymore.</b> For a hands-on take, Sergio Xalambrí rebuilt <a class="link" href="https://link.mail.beehiiv.com/v2/c/f5847dd12961113a5c5a94d4b196b4d1b818bbc7b39e6be873bcc16e515aa7b78a37fc7839a68721cb1254c063d55dd69f32ec4361b58ffc5c8f3ceb4861658536f03b33b8934ceaae757e95167c5513644fe7139ad0653405fdb35c41ddf45710c9724b3aa0926919eaeb8e2a505fce8e369a986db3f493d6fc8a40f4e1366fcf5e1cd61327062492a1f8ab9b85d65e12b68594ec33e2088b3d5591c8b59664847730b0156de839ad83138fafda2724/e53edc9e3657c9ca" target="_blank" rel="noopener noreferrer nofollow"><span>his blog and 10 other apps on v3</span></a> and says what held up. </p></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"> ⚙️ <a class="link" href="https://link.mail.beehiiv.com/v2/c/f755602844abe00beabcaad0c92ee28acc2b18d7ce5f217553de6205aae90a69656ab804505f79463e0e83f9ed5b4dcab180bea06a44ad85a7bd43159df6f92a664e24d7f41b67fbf2a52a3d48a77451f034267f8a527f3bde3bf66145ded33221fbe13e1566e3c4cc3c9dd3efeb148e257f29e20639e1c76004c6f1080e958a1fc7831b98c87711eb3ff4097421cd533143d680db29ecdb2febf9a3cf115d1d2f1e98a1712a8217c615a8034665c3f9/8ae1d6c77e7ef07d" target="_blank" rel="noopener noreferrer nofollow"><span><b>Next.js 16.4 Makes Cache Components The Default</b></span></a><br>New apps from create-next-app now ship with Cache Components switched on, and <b>it becomes the default for everyone in v17</b>. There's a new <code>ensureStatic</code> export that <b>fails your build if dynamic content sneaks into a static route</b>, plus finer prefetch control. It also brings React 19.3 with <b>stable View Transitions and Fragment Refs</b>. </p></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"> 🌈 <a class="link" href="https://link.mail.beehiiv.com/v2/c/56a1fa8405f4b04b729c129c914b5ca431d94aae7dcc1800639086fd9cfc50fb91836baa4584b36c800ddd42a09fd9a672858d7326767276ff9ca3589f9d15da20ec82605afed8941c488bc498ab6dc50ab1fd4cbc1fcba68c266e1f01f6d38fae9ad7ac308c2a87db977ee54810a55101ae06c747b92c5656592282aa82b21ab5ffaadf8b3ee9b4e52f4cf7d39b96f5a723e8f65284b107649827608acd5b3d473409412637ffc58ecbe4b8bfe22f97/e95a30e3aca439f2" target="_blank" rel="noopener noreferrer nofollow"><span><b>Take Any CSS Gradient Apart Layer By Layer</b></span></a><br>Ahmad Shadeed built a gradient debugger. Paste any multi-layer <code>background</code> and it <b>splits every layer out, stacks them in 3D, and replays the whole thing as a timelapse</b>. You can edit any layer and copy the new code back out. <b>Paste the nastiest gradient in your codebase</b> and see what's actually in it. </p></td></tr><tr><td align="center" valign="top" style="font-size:0px;line-height:0px;padding:30px 0px 30px;" class="dd"><table class="j" role="none" width="80%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td> </td></tr></table></td></tr><tr><td id="stop-typing-what-you-could-say-in-1" class="dd" align="left" valign="top" style="color:#a6825a;font-weight:400;padding:0px 15px;text-align:left;"><h3 style="color:#a6825a;font-weight:400;mso-line-height-alt:125.0%;">Stop typing what you could say in 10 seconds.</h3></td></tr><tr><td align="center" valign="top" style="padding-bottom:20px;padding-left:15px;padding-right:15px;padding-top:20px; " class="dd"><table role="none" border="0" cellspacing="0" cellpadding="0" class="bb" style="margin:0 auto 0 auto;"><tr><td align="center" valign="top" class="bb" style="width:630px;"><a href="https://link.mail.beehiiv.com/v2/c/244f06d89cf3c099a92e9e384e14b8da95b2bbbe159f791625ec69f6ea34283123523a132d9e9c0b085a7a9f2da24aa9625ef848166bf401b730e68948859d6eba8785a37253e72bdf4f3fc2848e0524f78e6f66734d8759238b4164dd62f71f6801feda6c8a48633ef352656cdc57c71f20e1f53caa878247c217708469ab28c1675b474a122792325f4d01eed3a023589406d60593b439b765084d2954164604be8ff3abeabb0252b3392629f3a528f52deeb91b353ce56042a02b8c2924fc3e222e957b1d0e277b79b3f4da1606272b8cdcb83af61cec4110f6f85f3dc096a7daed4fdb812f1bf6e093a1dda09d70578155143539d721b5b6baeb48a34305/56cd6efd0cf5649b" rel="noopener noreferrer nofollow" style="text-decoration:none;" target="_blank"><img src="https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,format=auto,onerror=redirect,quality=80,width=1920,height=3840/uploads/asset/file/bbabd752-a8b5-419d-8027-17f27313d6d9/4dictation-android-messaging-1200x600.png?t=1790360839" alt="" height="auto" width="630" style="display:block;width:100%;" border="0"/></a></td></tr></table></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"><a class="link" href="https://link.mail.beehiiv.com/v2/c/30a85f16a9ad9570b1e4946740818d9b59e08716f6acdf001c644b73fde72d3893b506f744f53b456029638cbc190c6ee1e1e034cc52990576404742c736ed86ad1b898e9d3762ba26bbb1c047f51954153ff09441029d8c53050c70ab8282404d3186f06324cf2fe5890720f336936376c745ed70ae19f3889d08cadb861ab09dc5f9a703ca048fe8316c8729f9cad34098b634690f3e855bead1d30f5f3f6141b780c52813509a7b946b07bf291e61e2fd0cb191ca79ac2a48c8a98b32dd69902c63b163aa5328e54dba2108201756a054c8b206ee1fab6142a0c8c21e861bad48973b79a2c691714f91bceda8da39d9a5ab293f32d36a814409212b633233/24b798565b1c467f" target="_blank" rel="noopener noreferrer nofollow"><span>Wispr Flow</span></a> turns your voice into clean, professional text inside any app. Emails, Slack, client updates: speak once, send without editing. 4x faster than typing. Works on Mac, Windows, iPhone, and Android. </p></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"><a class="link" href="https://link.mail.beehiiv.com/v2/c/7aa99c45e3de09792dd11d3401770446e4296f10d0f29a2dd7071e02cf892f8d3e00a5940b24da3599e54a87ee262f2fe35b0818718991a7acdaf770d8c2f0d36a95e39b09cfafb5351f79dbc5bd212e4c40917bee5f538a9b9ed1aefa3ed6c486db5afced87356513e7e0a54a5a6191d544508a16e70e8ab4ffbd23feab2e2c60cf9fe3512ee4fefd25cd98ab59434cdb83e0dcfcc29d3f4beaf7cce60c8976242dedee134dde6938f413988df0f7376369fcfe9f6ab49c3edffcb44e5f0bd8a47361118106009a08b2db280377cd6813c143137c3e9f5c3ade6c559bd8b6d82a9b10733a4ac2a0b7dd9e446f5b12c7663273890314d88296af5161f061a1ce/2bb7ccb9bd2e7aaa" target="_blank" rel="noopener noreferrer nofollow"><span>Try Wispr Flow free</span></a></p></td></tr><tr><td id="worth-your-time" class="dd" align="left" valign="top" style="color:#a6825a;font-weight:400;padding:0px 15px;text-align:left;"><h3 style="color:#a6825a;font-weight:400;mso-line-height-alt:125.0%;">🔍 Worth Your Time</h3></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"> 🔁 <a class="link" href="https://link.mail.beehiiv.com/v2/c/a303fc1f20a751c333743047bfbb44ae67be05d03497ac053cafa86ca4623a77075e73b41482e5f515102f8ea29de715270aef7d9e2040b27e4509209fba81fbf7ba1580348ec16fb29321771c253a2df81b7250f429238c2d8127ad4d272cacd0751b2587621ec3cef73a4b8ecfc6c4ce11b783c08d1cb96e9a462009af6400cd921828f63fd06782dd71c6e49467592b0023f74329c8c96571f7dd0b8da8aedbe025106a4f6d56757790a2ea2df223/519c7179bb24fdc6" target="_blank" rel="noopener noreferrer nofollow"><span><b>5 Of 11 Fetch Libraries Keep Retrying After You Abort</b></span></a><br>Gabor Koos cancelled requests mid-retry across Ky, ofetch, Wretch and eight others. <b>Five kept firing anyway.</b> He maintains one of the competitors, so read it with that in mind. Still, check which five before your next abort controller. </p></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"> 🛫 <b><a class="link" href="https://link.mail.beehiiv.com/v2/c/9009b2e65692c2115ee32030e3f2590ac09a0f13437003989b93b4f170dcee5f63f29ceb52fdb66e422dba0be1c934a848c7bef85d3d095111da5c0e46e96f85ae66833e43554dc57304d439fea34869387d9aa1a3386d6c08297fd6a11f11de6feeaa5882b6051ddc6b5b37b727ffa36118e40d5671b2d369d3af7b682b174afc0272884c9ec35b29e94b5040b61c5976e9ab5209cff0711f59da6721e731b274590347636899776948041ce7096870/f673e983ed32aa91" target="_blank" rel="noopener noreferrer nofollow"><span>95% Of Airline Sites Fail Core Web Vitals On Mobile</span></a></b><br>Calibre looked at real-user data for 100+ airline websites. Almost all of them fail. <b>The interesting part is why</b>, and the title gives away that it doesn't have to be this way. </p></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"> 🌍 <a class="link" href="https://link.mail.beehiiv.com/v2/c/9caf6326a897d3d33c5acd024a7f9335b8b36a064ec75841a28f2bb4f52dc8c57b226d60dc80adc2f02fd7279b3ea53cd9d1c5400a60e86e55277a1ef289cc4ab54f2780729708113a1fa0d5c94153324b24d47731d0b12db0d2777b2de9151cfc93f5ffd5ab675417ebb9f00659b903d99cb44696deb856347ebcb4a2130d264517342ef2cac8c4fea5541c9ee5d63a52deb385ab1556ac87d581cd5ac8df95f236d326824d6a09a405b44d276ee0c4/6048fdaaadee9968" target="_blank" rel="noopener noreferrer nofollow"><span><b>Cloudflare Released Billions Of Real-User Speed Measurements</b></span></a><br>It's a free BigQuery dataset of Core Web Vitals from 10,000 big sites, updated daily, <b>with Safari included for once</b>. One of their first findings: <b>the download is usually the smallest part of a slow LCP</b>. </p></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"> 💬 <a class="link" href="https://link.mail.beehiiv.com/v2/c/afd66e7342d4a4afe71330980104b2cb04be56e22f1ce5726b10b65e8609bc3febb0d903a6bfb3c2ba91584a4edd876e262818ede2e65fc5d759176121b88fceb932760f341329b15bf2f8f444e9799d1152cb1cf19c6bbf9463ae8a70d4e087d3ceafed6bf0704c167cd168a59225802fd5742c4395e4707a1f410d7277df137d9f71c80db476637f0e1bec39e1a79efa16bd413fda71cf34e63b22ff8e372962b28fcd823f3f63e98a0e6f4a272a2a/dc05d536878e52ed" target="_blank" rel="noopener noreferrer nofollow"><span><b>CSS Does Your Tooltip Positioning Now</b></span></a><br>Anchor positioning handles tooltips and dropdowns that stay in place through scrolls and resizes, <b>with little or no JavaScript</b>. Also, Patrick Brosset on <a class="link" href="https://link.mail.beehiiv.com/v2/c/f9316b225bc66b8d04d0a8259fe85c3caf1e23fdceeed5623b88efb5fc2612ec9b9fc6bb1ac1568b3c5098cb1a4c7165759ac23f937e4eb0044373b6e9c7a90a6cf689ab0b6082449199b8fcd604086ba12d322e8f57b2e8dc3f810d0a5f2f7325a7677eaafbcc802b492d0f0e98edbd8a626e83ceb5bf8387a1a08485dff5e892b266103a286fd103301a38a0e431a2d3daafc8631542283bc249310976bc9187a02d4a18abf4eb2faf27ff332dee3c/7c9ba9f66912ff80" target="_blank" rel="noopener noreferrer nofollow"><span>why nobody uses </span></a><code>title</code><a class="link" href="https://link.mail.beehiiv.com/v2/c/6f0764d318991abda35336e3bc243e3abe8ec7e14bf8051be1d5b6c9fdbd6ceca268d64220739f9ce5d28119e326ab0d16d2ad9d3af63a922478bd8da26823dbdb1182eb0a2240c8d21052f165f49b09efc70712046f18a9f583a90308c698fb1558d496e8857db6a50b2abb6a6ea1d363d1f48fb2cce7f9753f43b71af3b8d9122aa2939f0ba02a8eb696897df77c2e1d04037e0b1c235c07e7f82192de9263217ee56916234a9a1c88476a5c6f5aa2/01450cb40ed03f7c" target="_blank" rel="noopener noreferrer nofollow"><span> tooltips</span></a> and Edge's proposed stylable <code>::tooltip</code>. </p></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"> 🌐 <a class="link" href="https://link.mail.beehiiv.com/v2/c/bafacd5c50335765c6781bb18fa54af5fc477a4b3d38644ee394be1aaf91a336828db1202d8be355f2b7ebabb8247f3cb9825c39eed1f954ed53f61ccc7bf3de49164f77edf44269b0e22b7b946aa5943b1c5ac60ff86e105bcfcd2a778b8d3d24932d317ae397a67289bdd3470dde150174cf79c0136850a6b9c73c75a1fd23cd369e454637fface583a698ba004a34ff383871b099658a732fb957af9c34be78dd2423f3c966fa78850ab355a20c98/7b67120e52e45594" target="_blank" rel="noopener noreferrer nofollow"><span><b>React's New browser() API</b></span></a><br>React 19.3 adds a built-in way to <b>render a component only on the client</b>. Here's how it works, and which hacks it replaces. </p></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"> 🚫 <a class="link" href="https://link.mail.beehiiv.com/v2/c/6221dea660f07b773f6f8c08c4db4b1a0a469151aa69ff1752f6830cbb5d686af9acc0da0856a1bfee06b6c1fa5a91f8b8b306780393fb2a3992d35c368070728ab6e97432c82bb3faec106a4b9dd1fe81204623a9df6bd292d48a20ce7209879db12a86645145f8389e991275ada4ddb9a8d738f4eda55fd27f90cf8e0593fb6cf545f20ef745b7d72aacef4694fbdbc598b2805001265bad6f85426d64d3a932237dfd1d3359ec3fb06ba49f785604/e7a2f6b0fa5034f4" target="_blank" rel="noopener noreferrer nofollow"><span><b>Sindre Sorhus Stopped Accepting Outside PRs</b></span></a><br>He's one of the most prolific package maintainers in JavaScript, and <b>AI-generated PR spam got bad enough that he closed the door</b>. He'll keep maintaining everything himself. <a class="link" href="https://link.mail.beehiiv.com/v2/c/7600eef29eaa221c98acb423e9c0671c345d966727418a2868b453c4cc7331f6ee907dc690c6052cab4e656e2feca8c5ab45fb907c746a45227d91040ecfc8d737fff5904f0365d5b244e6d42544812137e23e0a2c2cf7c9a443c8aa1a8b1f76fb47a85c455ce0d5f95983ccc6c21822b886633952800ff0ae318c4dd99ea7768827d904f7290da57316e228d827dc4924b4adf40d583522de813e43750475f5f65fa9a19466cec98628da13fdd2d2ad/de951333ab0c54ec" target="_blank" rel="noopener noreferrer nofollow"><span>SWC did the same</span></a> this week. </p></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"> 🏛️ <a class="link" href="https://link.mail.beehiiv.com/v2/c/7b535d80ba14a94d2b010e56c3882c78071b2eb1357fc0c305ccdb2cae41c84ad50b0897bc3c6b2f261c1008627e3ad6679a0bf80cc5d233c3245255644d62f49f69cb69a0755cd18ac5930833aaefe0f26e98bc9ef6f4584403e556d8dd3a79d5c5827f7bac1b1c062b344d2a5cce98d1d7d3b88fd14e0f2319b208a55364844055c92c9ef4745bb7652c389f1ba50bd0f3a078b7dd6e99521dbc4767ca26ae76d21cd3aae75153545fac833b421615/0951502c42a464e1" target="_blank" rel="noopener noreferrer nofollow"><span><b>Why Don't More Developers "Use The Platform"?</b></span></a><br>Nolan Lawson usually argues for the platform. This time he asks honestly <b>why we keep rebuilding what browsers already give us</b>. The <a class="link" href="https://link.mail.beehiiv.com/v2/c/7763402ce8028b51a1235fab1538560649b663eb702c40efd5e49303d10487720b7c1548d725f8090f5ff4afd46912ea1591b7fcda8f0d74967240e196b0914432321446a891d24b71c7e6ee12a90510724292cbdccf6f235309177b7a235010090fbadc5cdd23e14b7939c258749dc8c593d5f66bb214edb15026b256fd1084ddcab1f0ce4af1c229214ebc357dc5dee88d2942af819c1402d6b904c5ed6a4dc5062c5763c120bbf473ef96ab177f79/472e0fb6464dd02f" target="_blank" rel="noopener noreferrer nofollow"><span>Hacker News thread</span></a> pushed back hard on native controls. </p></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"> 🦕 <a class="link" href="https://link.mail.beehiiv.com/v2/c/c73ec41e44221cc64bb80dfbb6118dec5db5bfc5067450eae1c008b1c88b7ea54d74621fc2afb8f8b9218a720d725b916cfc58194c2e1c5e40b0f5e04def6e3a49c4ea6470d585bf8d878d183b99182d22a517e8f8af6cea28560938e11b7ecb0f9ecfcaa187325653beeb6b8a2794d7336ca84eedfc115d3caa7f6ad87a46af89ed7c5565dac9ff1169329f27e8442d8dfb4321e9aef8fcc8b68ca16b1dcb65a5e93e96c057066ecd934e77dbc99db4/70ea789c592824ec" target="_blank" rel="noopener noreferrer nofollow"><span><b>Friendship Ended With Deno, Now Node Is My Best Friend</b></span></a><br>David Bushell was a big Deno fan in 2021. He's back on Node, surprised by how much it's improved, and <b>doesn't hold back on where he thinks Deno went wrong</b>. </p></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"> 💸 <a class="link" href="https://link.mail.beehiiv.com/v2/c/21f70b208e9bfecc987d19a06b5cb6bf48a3ca20cee963d94951f86bf8c01d31586e330d2ad4141af52fc935ff3bdf9cb1e2128e3add4532621a721d34e25a27ce73810602d5b57556a3550a059d72e59763f86bb26ae24b8f3982a74fbbfe4acc59545f9902a0c3ca84b0f6f06bab6232af022900bc3959b0182eff7ba6cbc2ecfe20bf58412df34635077e9861525b0b16c6cbabf08d4ddc78ea3df58109aae63c31196402f7408c3bb043938a878a/8067e7e21ec1069d" target="_blank" rel="noopener noreferrer nofollow"><span><b>Booking.com Cut Node Costs By 38% Without Touching Service Code</b></span></a><br>They swapped PM2 clustering for Watt worker threads and ended up with <b>30% fewer pods and 20% less memory per pod</b>. </p></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"> 📱 <a class="link" href="https://link.mail.beehiiv.com/v2/c/00e229e43bc27584bd8448ba2a558b8b7b0cc4d73bf87fb22c6b77246f7efd8e5c705fdd9e548fe42fe3ff8d84ef1e8b2c028b54dc8aa2fea801d7c035569592cde49ac7f65ebd625e727ccde8121967ce426086a4a883e3db4708ce775d5cc7102507586ab5d80481a9d74578160ca250bc647647ac72a5107d01a325704024d2bd46f302e66b4cbdf47eaa0d101d11afab94d4f2524fc80d9ee2f4bdf2c52a9af408547646fd2c98899c0488f47a35/4a14f273f981e48f" target="_blank" rel="noopener noreferrer nofollow"><span><b>Live Activities With Expo, End To End</b></span></a><br>The missing manual for iOS Live Activities in Expo, <b>backend included</b>, plus the gotchas nobody warns you about. </p></td></tr><tr><td align="center" valign="top" style="font-size:0px;line-height:0px;padding:30px 0px 30px;" class="dd"><table class="j" role="none" width="80%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td> </td></tr></table></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"><b>Quick Links</b></p></td></tr><tr><td style="padding-bottom:12px;padding-left:37px;padding-right:27px;padding-top:12px;" class="ee"><div style="margin-left:0px;" class="edm_outlooklist"><ul style="font-weight:400;list-style-type:disc;margin-bottom:12px !important;margin-top:12px !important;padding:0px 0px 0px 0px;"><li class="listItem ultext"><p style="mso-line-height-alt:150.0%;padding:0px;text-align:left;word-break:break-word;"> 🔐 <a class="link" href="https://link.mail.beehiiv.com/v2/c/9b2a1a642e12ae5e801a57fcd4da1f25a7fe2190ff910ff2da6536f92c6c40f366c89fc0331ddf9ad361792e56d589163965dfeda284745323c81f073a1c37e4b6440713e7b6ab923dec272eb99a835b9635dc98bdc88214153b673753d04c85dcd7cd86613ee4a3ba31e367e668043d1d6e2c3d62a8262e75c51f9ecb2bf6737cc7dfbe492386099dc20e2ddaa1dfecfc2734041eaba2be4132eef07daaf2979c1ec7daed096677756f99583efef4d3/1134330937bed6fe" target="_blank" rel="noopener noreferrer nofollow"><span><b>TanStack Start Security Update</b></span></a> — A <b>9.3-severity XSS</b> has been fixed. If you're on Start, update today. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:150.0%;padding:0px;text-align:left;word-break:break-word;"> 📊 <a class="link" href="https://link.mail.beehiiv.com/v2/c/a120a22683cb5ba5cc6bb384813d6e356339859143a429f63d6c9a0650ea3afed2acbbbcb3ab91ae7d28dda625c47e95af295a1a3635fe77874c13f0e5343167cb825caf17d95df83a9ba033c91e36482df1e5619084bd6147ee5dec721ebf94089798a27e8a43f980e7f7d6e4eeb3b2b5cc050198612b9d827497877676d1de84fba84fa2a8fb71eda697aeb4ba365e171add94bbdb7fdcc94490885727a905a6cd5715aa5e8e4001f46c201e7bb52f/20e763f70004b27e" target="_blank" rel="noopener noreferrer nofollow"><span><b>TanStack Charts 1.0</b></span></a> — It's stable now. Typed, tree-shakable, renders to SVG or Canvas. <b>The catalog has every chart with its code.</b></p></li><li class="listItem ultext"><p style="mso-line-height-alt:150.0%;padding:0px;text-align:left;word-break:break-word;"> ⚛️ <a class="link" href="https://link.mail.beehiiv.com/v2/c/90b2677ee285c516e7c4aa678a6c7d8a1fd6e6fb15ba1679f59b04ecd09ab414c45c863a1c95f50d52327e9a591c137b1932f872f6cf1625f76138f9316b8960e75b803a7b7734585f04e7246a3f2b6407aff91bd326e27edda71ff869eb5b753a15e6bb9bfcfa276e94eb31a37d733a18d35fa1b10d840b05c0f960864ba987040603b276a53023711fd5e1469cd220a52e265655f8d573af9bbf4aff8108a6c87d985868f6252503987c49a15ab940/f4dcc47254b727ea" target="_blank" rel="noopener noreferrer nofollow"><span><b>Preact 11</b></span></a> — Six years in the making. Better hydration, <b>automatic ref forwarding</b>, and it's ESM-only now. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:150.0%;padding:0px;text-align:left;word-break:break-word;"> 🎨 <a class="link" href="https://link.mail.beehiiv.com/v2/c/5b437b935b5d152817275f10f131b4dd5a144b33273da7f5a8d4df0b0608f4adf4df3cd174b4c460756fdc4b180a90702c428674da59749f3141e607f4bcb4bc01435419d70a894d8eca96926a20337eab61e91937f61b0927c3beddedcc5c9fac844906cc6706b324a43dc3c54cbd603aded7e1b04700b3b6188a853be195334e7aeec2cf183a7b0b84de83bead5d4e1753ac5e4cd840bcb67bf25ce1a9ca1c27e35ddd6232d74e2338ba95e46460f1/474dd2f0f04ceacd" target="_blank" rel="noopener noreferrer nofollow"><span><b>React Native Skia 3.0</b></span></a> — Rebuilt on Skia Graphite. It's <b>multi-threaded by default</b> and can share textures with Three.js without copying. Android is Vulkan-only now. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:150.0%;padding:0px;text-align:left;word-break:break-word;"> 🐼 <a class="link" href="https://link.mail.beehiiv.com/v2/c/1454ccd1b47652f714877c0a4bb0fc5f298304893be785458a340f172e481ceb84d0affcb9205d7449befea8cf471f2834ef328005e6f1e90275b66bb33b1257ae9f1cb65fd9797709b5969912ce66291921aa36019dd19ea4f34a4cd235a36f24d2ec8caf70bb599eeda166b9d66927e9131596935728c15345725d84fde5ccdc73c8572f92f0e1e9e70319865c0fe0af4f48eff0e6fc1aaa2f17dbcee80902e3bfb30da69c61d945a9c1896d2358a8/fe7c023ba9f15b0a" target="_blank" rel="noopener noreferrer nofollow"><span><b>Panda CSS 2.0</b></span></a> — Same <code>css()</code> API, but the <b>compiler's been rebuilt in Rust</b>. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:150.0%;padding:0px;text-align:left;word-break:break-word;"> 🎬 <a class="link" href="https://link.mail.beehiiv.com/v2/c/6c36577a8ad957da305f6dfa9f3d7461f47c814c3a9ca19b07fdfe3a7a230baec2d64039f506fcfa367754ed538000eed82cf0cc0857e993a3c4fc361308632198466250a67c8925e3038ea6889324a0e4c1b5433a0716484cd6420a2956410d3d13489e8f805da7e1f5d333a65cc3f1ff664221ab4b473c893f7b23492460c68047e37d95d70d15d4856beb7e0b8d343967860b54d656fb579451df1c12236274c22048aa66a4788edb1896e5a4a428/e927dccdc7166290" target="_blank" rel="noopener noreferrer nofollow"><span><b>Video.js 10</b></span></a> — The teams behind five video players rebuilt it as one. <b>60% smaller</b>, with React components. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:150.0%;padding:0px;text-align:left;word-break:break-word;"> 🖼️ <a class="link" href="https://link.mail.beehiiv.com/v2/c/7a41a59c8f92f2cd11c3d45a647c4862671b6c2a28dd220c0c2f759d7c4d63b28347f35f1cbe91005d0e7c9cc5909ba0c6ee2539ccac700500d204b1f4b37db4278c175c7ede977964e54feaa93052999a895afaba8d7e0648270d126d8462333fa3c7289b7f334389a0553c6d7eea97da91b83b3314f7faf1f000744c2f61141b4c50c262d0becfb878355404db1090bc9730b4e1cf0691debf491f0626d5f8371c2414b8f1424e3f2ea01d5c8942a7/ee5dd1b0a64de8f0" target="_blank" rel="noopener noreferrer nofollow"><span><b>JPEG XL Ships In Chrome 155</b></span></a> — <b>30–50% better compression than JPEG</b>, plus HDR support. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:150.0%;padding:0px;text-align:left;word-break:break-word;"> 🧩 <a class="link" href="https://link.mail.beehiiv.com/v2/c/d53ddbc9aecf17126492ee991de8d714bbdee0c59e0decf5de8e9b6200cc3bbc478437341eae198804d7dab2089d5c4c06e1132ee17537a29a662301a5fe9ee4a67815191d20a7bd3d2c0cdf2eaf5fba89e20079ef301e57af7ea48e2cda2539a4ec955fc15d2e71be207866b91cc2196227c9db2fa928f0b908c771feb1785073c6e8a58a71b40909ad94c029d4727142d444f5f405387ef1154fce074508a600b04bcc55401941670f64c6cdcc5232/acb83abc458d4f93" target="_blank" rel="noopener noreferrer nofollow"><span><b>Effect 4.0</b></span></a> — A ground-up rewrite with <b>5x smaller minimal bundles</b> and official React bindings. </p></li></ul></div></td></tr><tr><td align="center" valign="top" style="font-size:0px;line-height:0px;padding:30px 0px 30px;" class="dd"><table class="j" role="none" width="80%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td> </td></tr></table></td></tr><tr><td id="ai-general-programming" class="dd" align="left" valign="top" style="color:#a6825a;font-weight:400;padding:0px 15px;text-align:left;"><h3 style="color:#a6825a;font-weight:400;mso-line-height-alt:125.0%;">🧠 AI & General Programming</h3></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"> 🧩 <a class="link" href="https://link.mail.beehiiv.com/v2/c/01f0957b4694cb2b2792ee05719f0d3337b1ef22748761d6c1518dedac85b2aa5ec566f38f7af86e78bc922e29608bffe432c45a560771081a470edec6313450c709f614165ec7ddef0ed8f799ed1b2dac1317bc371b71d13f49ccc6df26acc9a3783233d9aef86db092862f134467014a9b4c938d9d7137d4dd6b1cb268a2ad871012d6b3081e73ced3d28f7b4871877b915c93c32105d8d2b7a2940010388ce6449b4d17dd5acaa63442887339374c/eaed590dff762009" target="_blank" rel="noopener noreferrer nofollow"><span><b>Claude Code Now Has Mods</b></span></a><br>You can extend it with JavaScript to watch events, change behaviour and draw your own UI. Addy Osmani builds <b>a live context-window forecast in about 80 lines</b>. </p></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"> ♿ <a class="link" href="https://link.mail.beehiiv.com/v2/c/a704142c26d4d5dc6e21e63bf3fceb1cb0781fd18f7a6cd9d5081bd73e9e778b73b8a34614bfe7cf67cf54c280baf6ca4f1df6139c6a6fba565c11c8431f3df1205fae3845f235315816496932c507bdcac11feea7e78802401027a0316be8bb5013b4ede679e56e98c402b1264c2a4b756b144dd2333e6bdb26e48f9353d119b0e87eef5b1500c77c39dc65419b71d773ba32a6feaad00cc4700f5f5b1695b4bd31ca0c3ce413775e94130649d0e158/3322f11ceedfa25c" target="_blank" rel="noopener noreferrer nofollow"><span><b>Agents Might Have Accidentally Made The Web More Accessible</b></span></a><br>Cassidy Williams makes the case. Meanwhile, <a class="link" href="https://link.mail.beehiiv.com/v2/c/21d578ce55a2f133edb9bda04002d43c1aa77c2e91bde547a17c51c986b7af423362c963c3cffb6414e1786fa9e9becd5a790a240866259badfc06ec2c33600d35693f8bbfb4e87d6e61a81d32c300825e4f5fc91ce62408bee0cc5c169fa80dbe53711d545e9d1bb42f1ba14d1a43e08c6db68668c64ccedbdc4e5c93ee06e6ba9c9d2c6ff02e7af2e3984d181906f07c017a63821e1534acd64961f71ad16505c1e3564baa5eee3433d0aa628ef624/a88441b573e1b5af" target="_blank" rel="noopener noreferrer nofollow"><span>WebAIM's new screen reader survey</span></a> found <b>68% of users think accessibility has stalled or got worse</b>. Read them together. </p></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"> 📊 <a class="link" href="https://link.mail.beehiiv.com/v2/c/a042ecf8a24df38cd9724d5c11b4b8ac4c703269a23ecde215404c94a01725d85a37b2dcfbf0a636a82f72fb7632f39079ac72a396d347f97b85028faf0302e64fec6949cb45831e9def04bb82a16f6af12859fdb9d60b33285379787f3d10973f9c50b2bec0b51385bd26d2709b1f555306f4606235ba10dfa200ea1a3a5bc0f8973389f4f62851d84049a7a833ae4bd4874f219d003905ed0f0ca5a617877c47e6b3d5cb28df177e9a3ab9bf36b0ee/bc92cfe683d1c173" target="_blank" rel="noopener noreferrer nofollow"><span><b>State Of Devs 2026</b></span></a><br>5,000+ developers on career security, burnout, pay and AI. <b>The AI section is the most divided one.</b></p></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"> 🔢 <a class="link" href="https://link.mail.beehiiv.com/v2/c/06f5e5ac89a4238323ffdaf71ad08c8b33d7ae075a863b4304a615bba0c09e3ed7183c8cb478fd10a5016e04cb4fce932e2333ac3d8e84f4fb66bdaf570c6eb8739d3a122122c5b252a749e6b18474fbbe2511c9cd8d13c3f6fa5bc7f4aeaef3758053d9f678e9e5c55b59ac8968c161f0cbc16e35c5501beda02936d21e043ddd1494f8d2806530f6cae02d33f2903c613f26e9864514c9d2d945c627c3ebc86107750562febeb98ddf9484aecaa2ee/7665fa5a3d53b329" target="_blank" rel="noopener noreferrer nofollow"><span><b>Mistral Large 4</b></span></a><br><b>One trillion parameters, 49 billion active</b>, and open weights are coming later this month. </p></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"> 🕸️ <a class="link" href="https://link.mail.beehiiv.com/v2/c/2d907051df27a8c6ce0472ca369e7f3d1a0d89fa93cdae0729c1917e39f1ebd683d3366beac86552bb915fe18602f8c17d28708d0daa9fc695b6df05694373138f43f11821cf8ee07f80e78cd5a9a7a2a872cd1c5612b91f7c57eb83205ff95d9eb131a97115be648f643b600ddf4258a4d97ace0f5994870b8794537bbf76aa9f2036d09a6e31afc9c94f8a3e01e0b0846a9e07cb502866626a435e4099f8b0892162f0fc67017c86ce8320783fb8ac/0e81e6a68927c45e" target="_blank" rel="noopener noreferrer nofollow"><span><b>Why Does example.com Load JavaScript Now?</b></span></a><br>The world's most boring website got a redesign, and the IANA's reason for adding JS <b>is actually pretty clever</b>. </p></td></tr><tr><td align="center" valign="top" style="font-size:0px;line-height:0px;padding:30px 0px 30px;" class="dd"><table class="j" role="none" width="80%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td> </td></tr></table></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"> See you next week! </p></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"> Darius </p></td></tr><tr><td class="dd" align="left" style="padding:0px 15px;text-align:left;word-break:break-word;"><p style="mso-line-height-alt:150.0%;"> ✨ <i>P.S. Shaders just open-sourced </i><i><a class="link" href="https://link.mail.beehiiv.com/v2/c/0cd29f91e2995fdaeb3c92b09470c7d990a14962184d68755d02f8f7d659aff5c47f1455d87b9af0d3f0cd8f7b9f0d9bd6d02490752c4b1c323d9662c2394b890de8c187fc94ba386e12afef7cf1c1140e76bc5702875c00c4daa7b620ef532cef55b08ed03bf6670ca4f175ac5fea63d8f54f6a2f68554157167d80b106910945a19ef1e2c2f2a79b5d9f8251c4f15940e22cadece5fc2301b4de94c2a72cf7e4dd88fd4c8dc2b28465767d2463ada1/838c276919c871ba" target="_blank" rel="noopener noreferrer nofollow"><span>190+ WebGPU effect components</span></a></i><i> with React bindings. Go play with them.</i></p></td></tr></table></td></tr></table></td></tr><tr><td align="center" valign="top"><table role="none" width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td><tr><td class="b" align="center" valign="top" bgcolor="#030712" style="padding:0px 0px 0px 0px;border-style:solid;border-width: 0px 0px 0px 0px;border-color: #FFFFFF;border-bottom-left-radius:10px;border-bottom-right-radius:10px;"><table role="none" width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td align="center" valign="top" bgcolor="#a6825a" style="padding:12px"><table role="none" width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td><span style="padding-left:1px;"></span></td><td align="center" valign="middle" width="75" style="width:75px;"><a href="https://link.mail.beehiiv.com/v2/c/76d5a863be7dcd89c909c8712b728676d461f60549b5105daab52e6c7539796235483146ef47b8a6e144ce92cab319e2737670828da8afdc47caa3ed60615928fe65330dfd6a091840f8e8280e925c4234a73e8e7985b24d71075c2877d993480c08e2604b210a1f1a88e0984bde1e6db531cc78db5504c2ce84375f0f6f88ab2bafcf1355f9c45cfec71452aa716981293be423ff163eb49a82315bf124328038f7b28fd862191119b611b7333fffff/095ab01388088216" style="text-decoration:none;"><img width="22" height="16" alt="yt" border="0" style="display:block;max-width:22px;color:Dark" src="https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,format=auto,onerror=redirect,quality=80/static_assets/youtube_dark.png"/></a></td><td><span style="padding-left:1px;"></span></td></tr></table></td></tr><tr><td height="10" style="line-height:1px;font-size:1px;height:10px;"> </td></tr><tr><td class="w" align="center" valign="top" style="padding:15px 15px 15px 15px;"><table role="none" width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td align="center" valign="top"><p style="font-family:'Verdana',Geneva,sans-serif;color:#FFFFFF!important;"> Update your email preferences or unsubscribe <a class="link" href="https://link.mail.beehiiv.com/v2/c/540d1861c8297ce88c393af1e21b7d6ed0c0276acee05a3d276c8cdf52adaa82eb591dd99719437e75f57751b2a4174ab0d28c945345e7179ebbc65954be26f915ce42c8270ca80344aa721d59e4de969829002a25d03259742f84f91c72f6400446b60252e254d05465191064149c7c891bde3deb231c8f247b3d8bac287cfbcb9e04c4ff0eafeb3f57a76276455246285f6d1bfaff898544b386ecc40c776fd6e494e38d1cc7c4cf06f4981f2f3e93/335716183a590d29" style="text-decoration:underline;text-decoration-color:#FFFFFF!important;color:#FFFFFF!important;"> here</a></p><p class="copyright" style="font-family:'Verdana',Geneva,sans-serif;color:#FFFFFF!important;"> © 2026 Import React </p><p style="font-family:'Verdana',Geneva,sans-serif;color:#FFFFFF!important;"> 228 Park Ave S, #29976, New York, New York 10003, United States </p></td></tr><tr style="display: table-row !important;"><td align="center" valign="top" style="padding-top:20px;" style="display:table-cell !important;"><table role="none" border="0" cellspacing="0" cellpadding="0" align="center" style="display:table !important;"><tr style="display:table-row !important;"><td class="u" align="center" valign="middle" height="32" style="height:32px;display:table-cell !important; max-height: 32px !important;margin:0px !important; background-color: #ffffff !important;"><a style="line-height:32px !important;text-decoration:none;display:block !important;" href="https://link.mail.beehiiv.com/v2/c/e3d07f9dfd305bdbd085e3d9f219d6de95c989efef6623d8878121af17f95fbe8856f8760c4d51126cffc88a3070e75fa3b48e010c66d08eb0dabbb712b0e9ccfa4957f02142b625cbc4941bd0aa9eb3cad188a86be3b9221faa00d89da46554953a24b90c8dec63da83a4804a9b8096938fd106f8d3ededc09f0b410e192d0b581ac5934fa0f58b87e1e931ba0615450cbd6821d0e7663be52d03c2b32eb163f8b4fd9f438430103e388d1cca5032d8/92da703d8708b309"><img width="16" height="16" alt="beehiiv logo" style="display:inline-block !important;max-width:16px !important;vertical-align:-3px !important;width:16px !important;height:16px !important;" border="0" src="https://media.beehiiv.com/cdn-cgi/image/fit=pad,format=png,onerror=redirect,quality=100,width=16,height=16,gravity=center,background=transparent,dpr=2/output-onlinepngtools.png"/><span style="padding-left:11px !important;display: inline-block !important;">Powered by beehiiv</span></a></td></tr></table></td></tr><tr><td align="left" valign="top" height="2" style="height:2px;line-height:1px;font-size:1px;mso-line-height-rule:exactly;"><a href="https://link.mail.beehiiv.com/v2/c/a52a0e28a90865f0a619f344a8e3b1e484212a3236c2ca149c8df99fa83922ed73cb4ce250c58b130168683b9c1ea2e17581372a8f50bb144676f4bed74444ded5662f8439e98d6d03df71f3e8e71fbe53c44bbdff20ed9ea01ef36dc9381378734fa3fb342fb911e9d6c358afd5c4387ab27076f5d1c198dea2081b50cb8252a5f375a00e5bed24b541e651293f6634c938f092e4635b7d27a8f92f722b4ae40ca41c243e09983f9d8b99fab918047e/d32611c2e1c4885b" style="color: #030712 !important; cursor: default; font-size: 1px; text-decoration: none;"></a></td></tr><tr><td align="left" valign="top" height="2" style="height:2px;"><a href='https://email.beehiivstatus.com/3fad4da3b1e19588f3a6d0f23485ca5fe6a00d10/hclick' clicktracking="off" style="color: #030712 !important; cursor: default; font-size: 1px; text-decoration: none;"></a></td></tr></table></td></tr></table></td></tr></td></tr></table></td></tr></table></td></tr></table></td></tr></table></div></body></html>