<!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>🚨 Remix is no longer a React framework</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;font-style:italic; }
h2 a { text-decoration:underline;color:#a6825a !important;font-weight:bold;font-style:italic; }
h3 a { text-decoration:underline;color:#a6825a !important;font-weight:bold;font-style:italic; }
h4 a { text-decoration:underline;color:#a6825a !important;font-weight:bold;font-style:italic; }
h5 a { text-decoration:underline;color:#a6825a !important;font-weight:bold;font-style:italic; }
h6 a { text-decoration:underline;color:#a6825a !important;font-weight:bold;font-style:italic; }
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:42px;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:36px;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:30px;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:27px;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:24px;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:21px;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:24px;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;font-style:italic; }
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:normal;margin:0; }
.g p a { text-decoration: underline; }
.i p { font-family:'Helvetica',Arial,sans-serif;line-height:23px;font-size:15px;color:#2D2D2D; }
.i p a { color:#2D2D2D !important; }
.i2 p { font-family:'Helvetica',Arial,sans-serif;line-height:23px;font-size:15px;color:#2D2D2D; }
.i2 p a { color:#2D2D2D !important; }
.i3 p { font-family:'Helvetica',Arial,sans-serif;line-height:43px;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:18px;font-weight:400;color:#000000;font-style:italic;padding:4px 0px 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:normal;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 img { width: 100% !important; height: auto !important; max-width: none !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]--><!-- c88b925b-ad35-4013-ad2e-a50060159075 --><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: liquid glass rendered on the GPU, Expo UI going stable, and the Bun Rust rewrite gets its two-weeks-later reckoning.  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ </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> May 29, 2026 | <a data-read-online-tooltip="true" href="https://link.mail.beehiiv.com/v1/c/8Pyu1%2FVrbkuEojtmvQZhsdMQy1ABXF4SDBkFxJBD5c9cza1HF71fpSKE9wy0%0AbadOB7kfRKFZ1ZQk6TLK7Tq02BIFre1piCAyQlWMgubXp7aGdtFruZND4mDU%0AV%2FSJndcuWUEhTaI70Izoc%2FRDL%2FFN%2FXXSc3yz7QZ4X7ZpkxHljkFxG6Oamrao%0AKPOeFodUXSJCzjZlVf%2FVtQp8JGaSHSCIR4YZDtj2xhhAy7lWypDY%2B%2B8%3D%0A/76c73d2989a7912c">Read online</a></p></td></tr><tr><td style="line-height:0;"><div data-open-tracking="true"><img src="https://link.mail.beehiiv.com/v1/o/VmRsHOYDGtQN1zmmdl0Lya48xLvLmKpo8UQiwdld3yxcdf8KdXewQWSnujBS%0A5mfVFe3LOmTI5ycCpjbkM7tEm7BdmW%2FiTjHRlDNjLeaK6czWCdSSkl0uKfeq%0AO%2BplwrtyfOeOE4xiaZX3FqWAad5oydBPEisqon2Vo0%2FyFRVnwr03Dj9PVn4R%0AELdfqiLDmfDgZL1%2BRvZUGW6F9XiId7m11uZS0KMKLvlGkx6oqWlNBfVGq2e%2F%0AasmhWPnGGKLdOfZsUP5AqplXCBkNZB%2BZqpHGreGPkw0Wi9bWx64awQdk0uAa%0ASnqduiVIauYAK25cOF5qUFqjCRVs4B%2BjdP%2FfAj3TGZFRMmqeJP060E%2B4T43f%0ALhQXUURTYBeD5fJisxwm2R7KGEdzgyvtHaoU7wJhu%2BGzQ4AxrUPrVCld%2FFSj%0AqKNx%2FoWTQxuwoyZY3%2BnPvITnjr5K688O4A2nrppY4bx5EirUw%2FWN3TeyRBRc%0ARI5IVwdARgFIiMLJZlLS2zroSUVnN%2BdStMWOaEJlXbwRtyhlADISGbzyzGhS%0ATaxsuWjx%2Fg30IjDKItCxgUAvqvqVgID3zEjLwcB%2BZY%2BPT%2FfyYju%2BcCEtqQ%3D%3D%0A/07dd2014f38664c3.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><table role="none" width="100%" border="0" cellspacing="0" cellpadding="0" style=""><tr><td bgcolor="transparent" style="background-color:transparent;padding:0.0px 0.0px 0.0px 0.0px;"><table role="none" width="100%" border="0" cellspacing="0" cellpadding="0"><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%;"><span style="color:#161616;">Hey guys,</span></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%;"><span style="color:#161616;">Welcome to another edition of Import React by Cosden Solutions!</span></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%;"><span style="color:#161616;">Two big threads this week. </span><span style="color:#161616;"><b>Remix 3 finally shipped its beta - and it dropped React entirely</b></span><span style="color:#161616;">, swapping it for a Preact fork and a "model-first, LLM-friendly" philosophy that's splitting the room. Meanwhile, after three straight weeks of supply-chain carnage, </span><span style="color:#161616;"><b>the ecosystem finally hit back: npm staged publishing is now live for everyone.</b></span></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%;"><span style="color:#161616;">Plus: liquid glass rendered on the GPU, Expo UI going stable, and the Bun Rust rewrite gets its two-weeks-later reckoning.</span></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%;"><span style="color:#161616;">Let's get into it.</span></p></td></tr></table></td></tr></table></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="the-latest-in-react" class="dd" align="left" valign="top" style="color:#a6825a;font-weight:normal;padding:0px 15px;text-align:left;"><h3 style="color:#a6825a;font-weight:normal;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%;"> 💔 <i><b><a class="link" href="https://link.mail.beehiiv.com/v1/c/85fcZ8bfpV4qfq%2BieWE1LYUgymRQ7NY5siqt7TCuqO0vjeMUfsFc1RLDI%2BAD%0AaZhQzdB1iTVUAp%2BlD4wJhAe7ExRHkpoMhr5S5xI0E7VHzSJqZrtApdrTk87S%0AhiBAgqpXrI12EsebAwPhPyh6MJyoWweh4RxBOo0uEcMtUB736GdNN0S4%2Bwtg%0AhD%2FqFnClIk9tasbr9V1xQVH9CRV0ZH2ujmYaLoN3bCD9%2Ba05mYTFMxM%3D%0A/8faf4ba9de429163" target="_blank" rel="noopener noreferrer nofollow"><span>Remix 3 Beta Is Here - and It No Longer Uses React</span></a></b></i> <br>The "wake up, Remix" saga reaches its first real milestone: a beta preview you can actually <code>npx remix@next new</code> today. The headline is still the same gut-punch - <b>Remix 3 drops React for a fork of Preact</b> and rebuilds the whole stack (routing, sessions, auth, forms, uploads, static files) with near-zero critical dependencies. The pitch this time is sharper: an imperative, web-standards model with "clear shapes" that are <b>easy for humans </b><i><b>and</b></i><b> AI agents to reason about</b>. It's a pre-release, not production-ready - but it's the clearest look yet at a post-React full-stack framework from the people who built React Router. </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><b><a class="link" href="https://link.mail.beehiiv.com/v1/c/9m3f8lYm0vpzC4Dz9BGxyHIRGl1IFgp1R3Gm8vRUBrq%2BVwbFHqR5KMBZylDu%0A%2BuckWALPwziaV5Pevl8H8Et1wxgVxLLEltY6uB00Nq9qihTa760WHSXeIjdQ%0A2phykqV65KGz4Z9RzriVXTql6Kj6YC7%2FGcYl9QudfSKYbganE3HI8DXYcwIl%0AhRG9w8T81yOVcN4n%2BYmoIVEjR0kZE2ImaEl3iCPFCtp4hT%2BHyGWq0JI%3D%0A/fab6062a66046595" target="_blank" rel="noopener noreferrer nofollow"><span>npm Staged Publishing Is Now Live for Everyone</span></a></b></i><br>After mini-shai-hulud, the @tanstack compromise, and the 317-package burst, the registry is fighting back. As of May 22, <b>every </b><code>npm publish</code><b> can now be routed to a staging queue where a human has to approve it with 2FA before it goes live</b> - including publishes from CI/CD and OIDC trusted-publishing flows. GitHub calls it "proof of presence." New <code>--allow-file</code>/<code>--allow-remote</code>/<code>--allow-directory</code> install flags landed in npm 11.15.0 too, and pnpm 11.3 added <code>pnpm stage</code>. The timing is pointed: Socket disclosed the new <b>TrapDoor</b> campaign (34 packages, 384 versions across npm/PyPI/Crates) the same 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%;"> 📱 <i><b><a class="link" href="https://link.mail.beehiiv.com/v1/c/ehAAmuSAL9f2tfwMnVkj40Akv7AfjaTFs7NFlwRuIVZBtojhNLcE%2BTMdGvH4%0Ahb7Fo8RZWXR8bTNEvQNr7QAFnP%2FyKeEXO6E%2BENY8gX1pbQUSR%2BFHCQ5eb6yf%0AMttbW6OA%2BFimHZ7qCo8ukwGbrONDX%2FcS%2BZ8soUxTemdL%2FPyVei9TJd2WsxiZ%0A%2BaH7mRH5jX7gaVTyq5%2FEU64MxcKMAXh8Rlipy2EVYUXVqrvci0wgOkE%3D%0A/b23628df461e45cb" target="_blank" rel="noopener noreferrer nofollow"><span>Expo UI Hits Stable - Native iOS & Android From One Import</span></a></b></i> <br>With SDK 56, <code>@expo/ui</code> goes stable: <b>one import ships real SwiftUI on iOS and Jetpack Compose on Android</b>, actual platform components underneath, no bridge hacks. The release also drops native drop-in replacements for seven of the most-used React Native community packages. If you've been waiting for the "write once, render genuinely native" story to stop being a demo, this is the one to test. </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><b><a class="link" href="https://link.mail.beehiiv.com/v1/c/uKEX17YKGlYVyLepFghJNJNB7xFOfv77NIYuh8bHv%2BU8PJ3%2FG9WEj8tAtsA4%0ACOZFir7T%2B0gAhfKScFqY5pZGhzQfzYR%2B%2BY28ZvIY32VFeeenCLiDUWcWk0uR%0A21owApd8pJfRMxIWEUALcUJuXJDg6Lk4jrhQPtEKmPDa3hNwhaO%2B4PiCalm6%0ALo36052KA%2B80DHB%2BJMp%2FM4qcPNcor6pCttI2mf%2FNptYc%2FxR4uADOgR0%3D%0A/8420c2a0531f38c8" target="_blank" rel="noopener noreferrer nofollow"><span>Liquid DOM - Apple's Liquid Glass, Rendered on the GPU for the Web</span></a></b></i> <br>Andrew Prifer's new monorepo does liquid-glass UI as a <b>real WebGPU render layer</b>, not a CSS approximation - with React 19 bindings, a Three.js adapter, and a React Three Fiber bridge. There's a renderer-agnostic layout engine doing SwiftUI-style measurement underneath, so you can describe glass UI declaratively in React and let it own the canvas. Easily the best-looking thing to land in the ecosystem 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%;"> 📚 <i><b><a class="link" href="https://link.mail.beehiiv.com/v1/c/UF6Om386opY8j9TzkFOTzaFNwJ85UDdRzIdLSXn6mtQG3Y0cFlCf06GbeSbK%0ARg7WlYfl%2FLqdRfizVXvueen56W3wU8834DKoe78kJEv0G8YkE1RqtwbWykDQ%0Aeyw0YPDzh3HEwBgxiabhKZhOR7Rdro%2FqzIC90hgUYBs1yX17bazb%2FIJ9RSrm%0AZ%2B5orAdiFhXBoePeJ6rdIpQzxbTGhn7Ugx9nPVvZvC1q97g3k1X0itk%3D%0A/f6a6588b2369d3c1" target="_blank" rel="noopener noreferrer nofollow"><span>Storybook 10.4 Adds First-Class TanStack Support</span></a></b></i> <br>10.4 ships <b>first-class TanStack React support</b> plus the ability for agents to set up Storybook in complex apps on their own. If your component workshop has been awkwardly bolted onto a TanStack Router/Start project, this is the upgrade that makes it click. </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><b><a class="link" href="https://link.mail.beehiiv.com/v1/c/YlwFE0YTBW9v5ZMYCKtGK1qRiLaFl7URgBJ%2FtyZCJje73e9Hs9dHoFIeT3%2FX%0AB01EwkFlLWhWzlvmyyArC06ARmN%2FwWz2ZrKSqcfJ%2BEGsPbpu9ON%2B5R8ShGtB%0AiJtx57ub6tzFGH6qB7hg2CbLi1yMnsBItv4F4DB3FRO06yDIEiBxB7wTT12Z%0AOAlcH2cslGjKNp5gzpCSqxL1Y61axXqX8BRWYCIgMkmjdJqfTJEm8Sw%3D%0A/75aff120d9828790" target="_blank" rel="noopener noreferrer nofollow"><span>TanStack Router Keeps Shipping RSC - Latest Release Fixes Streaming</span></a></b></i> <br>The RSC-in-Start work is moving fast. The newest router release lands <b>streaming fixes for the experimental Server Components path</b> plus a batch of stabilized tests across <code>react-start-rsc</code> and friends. If you're tracking TanStack's "RSC as data, not a server-owned tree" approach, the deltas are worth a skim before you pin a version. </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%;"></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:normal;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;"><i><b><a class="link" href="https://link.mail.beehiiv.com/v1/c/iP1apfDfM4h4AtmldRnMgAvdH3qpM2GPj4tlavJ0bpHw1naQqe87NJPu0xPF%0AB%2B9dTihxSnbXYbhUiJTcGCmeho%2F%2FrSipdE9lqFwGr9nu%2BVsX12ee%2BzdaTwM6%0AkAfLBT8tvoDfwVtGcOJ%2Bxa049lYaYixxRu1%2FjvsY1JA%2Fkt1B%2Fw9TMqaj90rt%0Abj2Ql3lqlY3yALLNVXnj6w5%2BBEWIjmGNr4gE7RkUIaPIvaqxfMSh0X8%3D%0A/4821d2d7b7759dcb" target="_blank" rel="noopener noreferrer nofollow"><span>Remix 3 Ditched React - Should You Stick With It?</span></a></b></i> - The clearest explainer of the <b>two-paths split</b>: React Router 7 ("Remix 2, rebranded") vs the React-less Remix 3 rewrite. Read before you form an opinion in the group chat. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:150.0%;padding:0px;text-align:left;word-break:break-word;"><i><b><a class="link" href="https://link.mail.beehiiv.com/v1/c/zTNtWNvRAP2lv%2FccO1kORLcoMSL3EOYiuCipOt2YHPdaqBfjrGJuPU6I7v%2FU%0A4zFSOPf1Kqd8D41H8DeS2GxpT2Tgfa6dYlrQKlGeSqRWV2q6rWYPSSKQEO%2Fo%0AMEuu3cdBgQmEjTojqt7S5U7jZnuVMu%2BqWTLDwHOHBVdrQpo4%2FoojoQlhqNO7%0A%2Bg1doNbHWZA%2BqCRP3veChvLK9qKUsJuAQoY%2B7rXadk%2FLg9vRgI5fZPw%3D%0A/60e6c387b15d09ec" target="_blank" rel="noopener noreferrer nofollow"><span>tinykeys 4.0</span></a></b></i> - Jamie Kyle's <b>tiny, modern keybinding library</b> just hit 4.0. Dead-simple API, live demos on the page. Bookmark for the next time you wire up <code>⌘K</code>. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:150.0%;padding:0px;text-align:left;word-break:break-word;"><i><b><a class="link" href="https://link.mail.beehiiv.com/v1/c/yWaOyIRkgI%2Fjb8k6JiezmT03UwcFJAVb%2BtLlbRnzZfBU2VLWTipDacVqlO%2Bo%0A54U7mk8dX08XFM%2Bi5KGprNn7afR5noPZYnMc8qP0dFZCkZJyU35My%2BDJ5lbv%0ATx4UzVlUYtnVHY2Aid3IZ%2F4stfsCGmP0VvTBvoE5H4GJFSXKWo6LtsYi3F1X%0A1OFE7i0Vkvx3SfEXcME6nEMO5X4PlrN4f2AmGyx3XfTtR7RubpFVWg0%3D%0A/0e1034ff5ea1e52e" target="_blank" rel="noopener noreferrer nofollow"><span>Chrome Previews Declarative Partial Updates</span></a></b></i> - New <code><template for></code> plus <code>setHTML</code>/<code>streamHTML</code> APIs for <b>updating HTML out of order</b> without a framework. Experimental in Chrome 148, polyfills exist. The platform quietly absorbing more framework jobs. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:150.0%;padding:0px;text-align:left;word-break:break-word;"><i><b><a class="link" href="https://link.mail.beehiiv.com/v1/c/E9NDDCdvw5uSICYQiY0PURGzVBEwNc81H3YofS3VB0rCvpdmPjdw%2FSxd%2F5y%2F%0AfaVF%2FXSJnM2wds8XawaP2DbSOG2YdngjVtcbeAJw8B9Kto9y0o%2BApOhK7IAM%0AxxMLqHLo4nj%2B4%2B1wLW4dV3djtV4uyqOSL9yoCuqsOC6WKP6i%2Fh2Z3%2FGWbFwL%0AY0URTtLHBkaBMrid652%2BUJC6WWtjeNSuTp5axUXfFj%2BKiyf3eP%2F7l%2Bc%3D%0A/4d36158a42f9f883" target="_blank" rel="noopener noreferrer nofollow"><span>An Official Node.js Codemod: Axios → fetch</span></a></b></i> - The Node team shipped a <b>codemod that rewrites Axios calls to the Fetch API</b>. One less dependency, one less supply-chain surface. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:150.0%;padding:0px;text-align:left;word-break:break-word;"><i><b><a class="link" href="https://link.mail.beehiiv.com/v1/c/Awy3r2d2cvyqAUjDzXyvd6UZoKgenf%2BYqv%2B%2BXd2BCZr29yFazz4Rxc2KJaEm%0A1UxzC9v40%2BTfewJ4g5nX3mupmhoqZJ%2FFLtMD8DRwjpqSYwxw4Sx3POu0BWrU%0A619Rcf%2F60INQPt7P3edwFgW9c8F4Cn6mqPcHsnhlF5lhR2IcAWgmF3%2BW18Ai%0AeyifBeJNgI%2BV5ptgBiNHUGmmt9en0y0O3QEuekCwuK4StOFtMfMEjRw%3D%0A/1d83d6e0c83d721d" target="_blank" rel="noopener noreferrer nofollow"><span>Hot Updater</span></a></b></i> - <b>Self-hosted over-the-air updates for React Native.</b> Ship JS updates without an app-store round-trip, on your own infra. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:150.0%;padding:0px;text-align:left;word-break:break-word;"><i><b><a class="link" href="https://link.mail.beehiiv.com/v1/c/dPhua4hv9RFxcd4hVO745kg9jZdsx49pShswU61atCnz6eVzh6MGJDfqT21A%0A97RIhzZzDy6PbLJ%2Fb6g1NT%2FfFpytbMdHeplmyJGd00gyRtlyoD0I8yv4bgcl%0AN1XtKlA3lqB4RxKqYVAB7KP2Xy%2FsoFHL%2Bk06%2BaNPsEAS1VBec2G9%2BbBsfQAP%0A6AnxJbclZ3c9L6twH23SPZiRU4sXG5ojmVHAU4YgI8SUUc79s6wOMfU%3D%0A/ce9cbd78e76f5922" target="_blank" rel="noopener noreferrer nofollow"><span>Apache ECharts 6.1</span></a></b></i> - Point release of the heavyweight charting library. Relevant given how many React dashboards quietly wrap it. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:150.0%;padding:0px;text-align:left;word-break:break-word;"><i><b><a class="link" href="https://link.mail.beehiiv.com/v1/c/VfRbg98G44re7M8Zk1ZtL291PC%2Bv17lYVv%2FvqrSI%2FjUwp2w7G9TidE9abfx1%0AkWAiS1oyKzDeZx4Sd%2FW9PsaxLe89vOV9vDMocDofvYtpNhZq0A%2BthFX5PSmK%0AEgjzCBrmVNsylM21Oxw6POXTOZPGlqQ8IfdiZvkqUjDwHJFsTfDsjLWkL1gd%0Amk3ynQuI5Xs0%2BCJew8x2ZNifhigBZ9LaKHmtuvyxuyajCUSAiO2xJJc%3D%0A/b329b4bf36bfeb74" target="_blank" rel="noopener noreferrer nofollow"><span>Kysely 0.29</span></a></b></i> - The popular <b>type-safe SQL query builder</b> ships a new version. Still the cleanest "Prisma's types without Prisma" option for a lot of teams. </p></li><li class="listItem ultext"><p style="mso-line-height-alt:150.0%;padding:0px;text-align:left;word-break:break-word;"><i><b><a class="link" href="https://link.mail.beehiiv.com/v1/c/BuPYpYvpZ%2BgLcJigAxUvWbr%2F0E3Yb9EI9CgDWxPvjTaBdoomC2TZZRAAQzxy%0A%2FSKE0YbHibIerPRm1UZX7aXywOGg1hhB%2BbmKG7Whp7Uj3BpknT8%2B5Whsjq3q%0AFtct6pHNPw0yVDcuDSP1Dy9iQD1BpgS%2BFQ6vJNg9KVDxt6jsYvotGSUgIQGQ%0AbnsmQZDnC4TETn1P0Y9154LyQ4IT4pGO0bP2B7F3SDuBhmrXc85j29Y%3D%0A/36a1ad2770de6039" target="_blank" rel="noopener noreferrer nofollow"><span>Modern Web Guidance</span></a></b></i> - A suite of expert-vetted <b>"skills" to steer AI agents toward good web patterns</b> (e.g. "preload pages on hover over important links"). Useful if your agent keeps shipping mid frontend. </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:normal;padding:0px 15px;text-align:left;"><h3 style="color:#a6825a;font-weight:normal;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%;"> ⚙️ <b><a class="link" href="https://link.mail.beehiiv.com/v1/c/rZp%2BTQXPMWYQiJ%2Bq7lg6%2Fhj4TRO9o9uVBiToTY78QukN3AIFxb9kG9deaobp%0A9%2F6hAa6rbGcai0V5EtjyH%2BYJ2ZFbT4VENGdW4e14xZ54R2qeyTNHIN1FdmpR%0Ar5OrH4aAjHRH%2F9ho%2BMQPFhP55cSioyV0Wk1aMQh8nVfCDx%2FwDP82x6W3rtIx%0AD%2BcRz3seEXOJmQS355a1DkFLAFUP8z6V%2BPCp5JnKT3GlknzyC4rrAHg%3D%0A/28a845ad560f6f88" target="_blank" rel="noopener noreferrer nofollow"><span>The Bun Rust Rewrite, Two Weeks Later: The 13,000-Unsafe-Block Reckoning</span></a></b> <br>Remember last week's million-line YOLO merge? The dust is settling and the number everyone's circling is <b>13,044 </b><code>unsafe</code><b> blocks - versus ~73 in comparable hand-written Rust.</b> The 99.8% test pass rate is real, but as one widely-shared post argues, <a class="link" href="https://link.mail.beehiiv.com/v1/c/mptLxcxMLO90lJyTtJsNsAjXiqvabvm7g1UrSzuJQ8fOhtCEhk5DWXaJdnsn%0APIfydzoJ9PzEeLUMrcrhcaMV9orAVz5iG%2BC%2FrIcdwbxm5sYHkvQTsRvo9Mn7%0ALIoBjgXvZrI75JNHZKUwOa2X1Or6HMIVnFv5DX6BkvynmB6uP1Gi%2B7rRqCG0%0AA3md90c5yIZFYf9CbsMZtdVQsSuWaZNoKeUzjVaBuMXARBD0%2BrAAsRs%3D%0A/b830de88fa739e42" target="_blank" rel="noopener noreferrer nofollow"><span>"code you don't understand should not run in production"</span></a> - and AI-speed translation buys functional correctness while quietly embedding structural debt that still needs a human audit. The <a class="link" href="https://link.mail.beehiiv.com/v1/c/mqgfNvLFBrc0yOW1CFqxM1gOvyV5EenI6snrzaJ6pii4NMTshO%2Bq9KU%2FItri%0AePrrNZRdyO4%2BECaVF%2Byp7OXb%2BECS5esSUHhNEtjNLCcxgMyI%2Bo%2BY2V7tC6Ve%0AZZ%2B8HmmIRq8v2Z29oavu%2BVUk%2FzEp4B4ISE0MB%2BsblIrDbZ%2BUwzN1I434DjfV%0A2n%2BAfVKH36CdvzDfCSyXIiOYH1UJlmbGDPMVRkfQ8fjwQsBmhr%2F9dmc%3D%0A/88bd54aaa1a2ed2c" target="_blank" rel="noopener noreferrer nofollow"><span>HN thread</span></a> is the best place to watch the two camps go at 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%;"> 🦕 <b><a class="link" href="https://link.mail.beehiiv.com/v1/c/Al71fBxWUFfSf8CqbE0mJF4PR9AlKnsA8bfTnH02YhWWNg1FfbZ55AskKpxC%0ArCyNbc2vwb%2BjRmUpteZTCCPcihYBO3o0QPbEz1kBp9teZ9JBE0bWxdse5m5E%0AGVwPp1JGja7uQEDeQybQdTMsCO47JuPACCRPWFXdqDu5EkRS0amXBkseEBy1%0AYF72HvSl58x%2BLMnNdheotWOCYcULaUn1qXcf4j5CmgWM3Zo0eqTLPkE%3D%0A/6359251c15613200" target="_blank" rel="noopener noreferrer nofollow"><span>Deno 2.8 - The "Biggest Minor Release" to Date</span></a></b> <br>The headline number is brutal for the runtime wars: <b>Node.js compatibility jumped from 42% to 76.4% - now higher than Bun.</b> Plus big perf gains across the board, <code>deno audit fix</code> to upgrade vulnerable deps, <code>deno why</code>, a built-in CPU profiler, and dropping the <code>npm:</code> prefix requirement. The "just use Node" gravity is real, but Deno keeps closing the gap. </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/v1/c/H8jG26Cag2SnBxXtc8EFFyfAykIHXGxwi4VmAUxhCQW0HmLuVRIzUyERoUQ6%0A%2BEc323PgRMw2BjEopYVxC1aTh4I9kEZwbG3e5pMxvkmYh7j4hfHNqcXSX62J%0AW81pxlfU1p6o2jlTL5HbDGirUCMxIOWFmYNwMo%2Fae7qudNtHu0h%2FY3Zf8LC7%0AdR%2BIkL5EePqU%2BXuqze1%2B2ywlqFHsyJcDRsa9Hfi%2B%2Foy2Qab0pYdvGp8%3D%0A/d34a2e0fb99adb55" target="_blank" rel="noopener noreferrer nofollow"><span>AI-Assisted Engineers Are Burning Out: Is This Fine?</span></a></b> <br>A pointed look at the <b>quieter cost of agentic coding</b> - the review fatigue, the context-switching, the "I shipped it but I don't understand it" dread. A good companion to the Bun discourse above, and a healthier framing than the usual "you're not using AI enough" guilt-tripping. </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/v1/c/p3WbFTAcNgK%2FkDqHTUv7KzLmVBxo%2F19xHAuJlnrpCfVjCkBUpWFcA3lP0loh%0AEK3eWgKQW%2F%2BgHOj0O19kuPWtjwPjOthmCdSKGtvmBcvgkJ6g5s42TkGcuFQQ%0A4htY7vaQkjYq2DwnCGh2vmVIAIJ9nFtuSKLUZtQ6FF9U5crX%2FS%2B%2Fp2QMaBMZ%0AbNexCYsCmLHAQtGnWyZop3b2CX93L%2FC9evImpaejLZ%2F67XBZbPveDds%3D%0A/588908599b8d284f" target="_blank" rel="noopener noreferrer nofollow"><span>How Yelp Cut Build Times in Half: Webpack → Rspack</span></a></b> <br>A real migration writeup with real numbers: <b>build times roughly halved</b> by swapping in the Rust-powered, drop-in webpack replacement. The most useful part is what they learned about <b>barrel files and re-exports</b> quietly wrecking your build graph - applies whether or not you ever touch Rspack. </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/v1/c/irv6i7q5QrD3V3A1T1be7aCxQmnBRTjFTSc0IMduZ%2FWviUTpE9hKcp%2FrVb2m%0AbKOx2Mt0fEoNe5PMID3l3qIImM7PFsLE1A4t8ou4bwOgEmHQ9WOdrgOmHTHb%0Ae7almpkG80iN%2BUpzX3OD5jrFmrGyX5znRtAdz7cGKszgEKBbftT8WZWR8V3I%0A%2BUc1I2mYAxvDfZVJaZi0fwxK7L%2BUkeG6n6LrwmR79ii8VqIMKP9eeyU%3D%0A/35e40514e420e571" target="_blank" rel="noopener noreferrer nofollow"><span>Mozilla Says Goodbye to asm.js</span></a></b> <br>Firefox's JS engine now <b>disables asm.js optimizations by default.</b> A small end-of-an-era moment: the thing that kickstarted "serious compute in the browser" before WebAssembly existed is officially being put out to pasture. </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/v1/c/fQ1kYqvSFf4GxOhnH6CKMjMpDrq2W%2BR7Y%2FNdR2RykLdqYC6qwC6FAsVeDJIe%0AdFO1rl%2BdTkNbcCWgYgQqEeXsDzsHgYz7PYiYbjwNMlBKXV48e4W1Ga5MFeXQ%0ApYNePRgV4zs7lpl1ay0np2Bc9z6d4%2FzmM4i6Go%2FDGr%2FNZbylkLg7EHRp3fw%2F%0Ao%2B8Z3oFLVh%2BkoHn9LK%2FOuyhfpil%2F58E%2BUx6q2DR%2Bk%2BKoPmG9eyaqkrI%3D%0A/ce6f90e26c3faf34" target="_blank" rel="noopener noreferrer nofollow"><span>A JavaScript Crossword Where Every Answer Is JavaScript</span></a></b> <br>Your reward for getting to the bottom: a hand-crafted puzzle that abuses every weird corner of the language (<code>0103 == 67</code>, tagged template literals, <code>console.log\</code>hi``...). People are either cheering or cursing on social. Take the win, or rage-quit gracefully. </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></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/v1/c/w8gppeErKLSfLsZYv9%2FkSwdsZhy28VVpzCC7AAjE2zQFBXbKj1dUoc5BkqVX%0ARBySn7trwL7azSBSkIRCr2inTL15HrnxJ%2FVZ51SOEwZZ5%2BBIzbvy4sYlN2o%2B%0AXJ72RVzVZik29u%2FMKvhNuC8Ps63jsftni6BX%2BI9yYq1uH3WdISNZzwKaLFAo%0ANu2IfOrPSP2eJ6ELJvTaQ2aqA0UW0XCS1UCO5x8VmeXJ3WS21PvjtHU%3D%0A/0e7c0bdda2c740a7" 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/v1/c/Q9ZqoyW8yfprmvi%2FWEbnjewNxk3J%2Bux2vEi0Sm9WTzVkDAM%2Bo%2Bul4RKO0Vkf%0AUxIR16EjXgz3UqeA9CpNp6YfzIv%2FNnzzlQw%2BIHQTsWbNGXBCzROGS%2FZ4UA9b%0ALOSnKg%2Fg9VNCublxgbJI41Od2BMjon9gDgWVKHgcASwwCiQZi1dP3UBUQzgT%0AoPMcTjddWC9WIwE%2FNUaaWFZpANJGWs7yasg92aht9MvlPKo9RFMg1yY%3D%0A/b9f58f7dc5a34220" 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><td align="left" valign="top" height="2" style="height:2px;"><a href='https://hp.beehiiv.com/c88b925b-ad35-4013-ad2e-a50060159075' style="color: #030712 !important; cursor: default; font-size: 1px; text-decoration: none;"> Terms of Service </a></td></tr><tr><td align="left" valign="top" height="2" style="height:2px;"><a href='https://email.beehiivstatus.com/a1a4df994edbb26ea3a6b82d116cc060d4012508/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>