<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[This Week In React]]></title><description><![CDATA[Keeping 43978 React devs up-to-date.
Receive the most important news once a week in your inbox!]]></description><link>https://substack.thisweekinreact.com</link><image><url>https://substackcdn.com/image/fetch/$s_!1jXd!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd0ebd98-bd63-49b4-b03a-7cef2a32a838_450x450.png</url><title>This Week In React</title><link>https://substack.thisweekinreact.com</link></image><generator>Substack</generator><lastBuildDate>Sat, 12 Sep 2026 21:21:14 GMT</lastBuildDate><atom:link href="https://substack.thisweekinreact.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Sébastien Lorber]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[thisweekinreact@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[thisweekinreact@substack.com]]></itunes:email><itunes:name><![CDATA[Sébastien Lorber]]></itunes:name></itunes:owner><itunes:author><![CDATA[Sébastien Lorber]]></itunes:author><googleplay:owner><![CDATA[thisweekinreact@substack.com]]></googleplay:owner><googleplay:email><![CDATA[thisweekinreact@substack.com]]></googleplay:email><googleplay:author><![CDATA[Sébastien Lorber]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[This Week In React 296]]></title><description><![CDATA[React 19.3, DevTools, Next.js, cn, Maps, Effective-RSC, Vidact, uf | 0.88 RC, Expo Modules, Navigation Benchmarks, QuickJS, Goldie, ContinuedTask | Rslib, Vitest, gpu-lexer, Ata, Interop]]></description><link>https://substack.thisweekinreact.com/p/this-week-in-react-296</link><guid isPermaLink="false">https://substack.thisweekinreact.com/p/this-week-in-react-296</guid><dc:creator><![CDATA[Sébastien Lorber]]></dc:creator><pubDate>Fri, 11 Sep 2026 12:40:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!E9W2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dddc71b-ab00-4551-bb2d-12f445c21957_1200x630.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi everyone, <a href="https://x.com/sebastienlorber">Seb</a> and <a href="https://x.com/jaworek3211">Jan</a> here &#128075;!</p><p>We could feel it was coming, and here it is, <s>delaying</s> just in time for the newsletter! &#128519;</p><p><strong>React 19.3 is finally out</strong>, with View Transitions and Fragment Refs stable! And it looks like updated DevTools are also coming soon.</p><p>We also got a sneak peek of React Native 0.88 and Expo Modules 2.0.</p><p>Let&#8217;s dive in!</p><p>As always, thanks for supporting us on your favorite platform:</p><ul><li><p>&#129419; <a href="https://slo.im/last/b">Bluesky</a></p></li><li><p>&#10006;&#65039; <a href="https://slo.im/last/x">X / Twitter</a></p></li><li><p>&#128084; <a href="https://slo.im/last/l">LinkedIn</a></p></li><li><p>&#128125; <a href="https://slo.im/last/r">Reddit</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Uo2e!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8bf3e49-e242-4b31-ba91-7dce28c12134_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Uo2e!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8bf3e49-e242-4b31-ba91-7dce28c12134_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Uo2e!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8bf3e49-e242-4b31-ba91-7dce28c12134_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Uo2e!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8bf3e49-e242-4b31-ba91-7dce28c12134_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Uo2e!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8bf3e49-e242-4b31-ba91-7dce28c12134_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Uo2e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8bf3e49-e242-4b31-ba91-7dce28c12134_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c8bf3e49-e242-4b31-ba91-7dce28c12134_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Dominik Dorfmeister&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Dominik Dorfmeister" title="Dominik Dorfmeister" srcset="https://substackcdn.com/image/fetch/$s_!Uo2e!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8bf3e49-e242-4b31-ba91-7dce28c12134_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Uo2e!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8bf3e49-e242-4b31-ba91-7dce28c12134_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Uo2e!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8bf3e49-e242-4b31-ba91-7dce28c12134_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Uo2e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8bf3e49-e242-4b31-ba91-7dce28c12134_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/TkDodo">Dominik Dorfmeister</a></strong><a href="https://twitter.com/TkDodo">Web Developer - React-Query maintainer</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!I2Rr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!I2Rr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!I2Rr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xqtw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa5b3e8a-63f5-426c-81dc-e73c7523e197_1200x600.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xqtw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa5b3e8a-63f5-426c-81dc-e73c7523e197_1200x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!xqtw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa5b3e8a-63f5-426c-81dc-e73c7523e197_1200x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!xqtw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa5b3e8a-63f5-426c-81dc-e73c7523e197_1200x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!xqtw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa5b3e8a-63f5-426c-81dc-e73c7523e197_1200x600.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xqtw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa5b3e8a-63f5-426c-81dc-e73c7523e197_1200x600.jpeg" width="1200" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fa5b3e8a-63f5-426c-81dc-e73c7523e197_1200x600.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Atomic CRM: A CRM You Can Fork Instead of Subscribe To&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Atomic CRM: A CRM You Can Fork Instead of Subscribe To" title="Atomic CRM: A CRM You Can Fork Instead of Subscribe To" srcset="https://substackcdn.com/image/fetch/$s_!xqtw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa5b3e8a-63f5-426c-81dc-e73c7523e197_1200x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!xqtw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa5b3e8a-63f5-426c-81dc-e73c7523e197_1200x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!xqtw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa5b3e8a-63f5-426c-81dc-e73c7523e197_1200x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!xqtw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa5b3e8a-63f5-426c-81dc-e73c7523e197_1200x600.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://marmelab.com/atomic-crm/">Atomic CRM: A CRM You Can Fork Instead of Subscribe To</a></strong></p><p>You need to build a CRM? Get started with <a href="https://marmelab.com/atomic-crm/">Atomic CRM</a>, a popular open-source CRM written in React. It&#8217;s built with a stack your team already knows: Tailwind CSS, TanStack Query, react-hook-form and Supabase. Simply fork it, customize it to your business, and self-host it on your own infrastructure.</p><p>And when the customizations start piling up, delegate them: Atomic CRM ships with a harness of 7 agentic subagents for automated workflow execution.</p><p><a href="https://github.com/marmelab/atomic-crm">Fork Atomic CRM now</a> to keep full control of your data and code.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!I2Rr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!I2Rr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!I2Rr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#9883;&#65039; React</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!E9W2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dddc71b-ab00-4551-bb2d-12f445c21957_1200x630.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!E9W2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dddc71b-ab00-4551-bb2d-12f445c21957_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!E9W2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dddc71b-ab00-4551-bb2d-12f445c21957_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!E9W2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dddc71b-ab00-4551-bb2d-12f445c21957_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!E9W2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dddc71b-ab00-4551-bb2d-12f445c21957_1200x630.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!E9W2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dddc71b-ab00-4551-bb2d-12f445c21957_1200x630.jpeg" width="1200" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0dddc71b-ab00-4551-bb2d-12f445c21957_1200x630.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;React 19.3&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="React 19.3" title="React 19.3" srcset="https://substackcdn.com/image/fetch/$s_!E9W2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dddc71b-ab00-4551-bb2d-12f445c21957_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!E9W2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dddc71b-ab00-4551-bb2d-12f445c21957_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!E9W2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dddc71b-ab00-4551-bb2d-12f445c21957_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!E9W2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dddc71b-ab00-4551-bb2d-12f445c21957_1200x630.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://react.dev/blog/2026/09/09/react-19-3">React 19.3</a></strong></p><p>The new minor version of React is finally out, and it&#8217;s a great one!</p><p>If you read us regularly, we already disclosed everything &#128519;, but here&#8217;s a reminder of the highlights:</p><ul><li><p><strong>View Transitions</strong>: now stable! Also including the <code>addTransitionType</code> API that lets you customize the animation directly from the code triggering it.</p></li><li><p><strong>Fragment Refs</strong>: now stable! This lets you get a ref of a <code>&lt;Fragment&gt;</code> and manipulate its underlying children DOM nodes. A quite useful feature unlocking new composition patterns that were previously difficult or requiring a wrapper DOM node.</p></li><li><p><code>use(browser())</code>: a first-class API to opt out a subtree of server-side rendering, replacing patterns based on <code>typeof window</code> and <code>useEffect</code>.</p></li><li><p>Trusted Types: security feature to use in conjunction with Content-Security-Policy to prevent XSS attacks.</p></li><li><p>RSC can render <code>&lt;Context&gt;</code>: no need to create a wrapper <code>&lt;ContextProvider&gt;</code> component anymore.</p></li></ul><p>Make sure to read that blog post because it contains interactive examples worth taking a look at, in particular to understand View Transitions and Fragment Refs.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!I2Rr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!I2Rr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!I2Rr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://sentry.io/cookbook/custom-metrics-dashboard-alerts-nextjs/?utm_source=thisweekinreact&amp;utm_medium=paid-community&amp;utm_campaign=nextjs-fy27q3-cookbook&amp;utm_content=newsletter-react-link-nextjs-metrics-dashboard-trysentry">Sentry - How to wire a custom metric into a Next.js app, chart it, and alert on it. Learn how.</a></p></li><li><p>&#128064; <a href="https://github.com/react/react/blob/main/packages/react-devtools/CHANGELOG.md#800">React DevTools 8.0 - Suspense Tab enabled, React Element panel, remove Timeline profiler in favor of Performance tracks, display dimmed Activity subtree</a> - The v8 changelog is already merged and gives a sneak peek. Not published yet on npm or extension stores.</p></li><li><p>&#128064; <a href="https://github.com/react/react/tree/main/packages/react-devtools-cdt-mcp">React DevTools CDT MCP</a> - Speaking of DevTools, the React team is also experimenting with a new package, recently published to npm. It&#8217;s not an MCP server, but lets Chrome DevTools discover/register/expose React tools useful for agents to understand and profile your app at runtime.</p></li><li><p>&#128064; <a href="https://github.com/reactjs/react.dev/pull/8632">React.dev PR - Document missing SSR and hydration options</a> - Adding the missing API ref documentation for SSR options such as <code>formState</code>, <code>importMap</code>, <code>maxHeadersLength</code>.</p></li><li><p>&#128064; <a href="https://github.com/vercel/next.js/pull/97232">Next.js PR - Upgrade web-vitals to v6 and report soft navigations</a> - <code>useReportWebVitals()</code> will soon report SPA soft navigations, recently included in Core Web Vitals.</p></li><li><p>&#128220; <a href="https://blog.master.dev/react-now-rusted-all-the-way-out/">React Now Rusted All The Way Out</a> - An overview of the React Compiler in Rust landing in Vite, reporting a 17x speedup over the Babel version, and giving an alternative solution for React Router framework mode users.</p></li><li><p>&#128220; <a href="https://maxleiter.com/blog/thank-u-next">Replacing Next.js with a vibe-coded &#8220;framework&#8221;</a> - Replacing Next.js on a personal site with a 5k-line framework Claude architected. Still React/MDX on the server, Preact islands on the client, with 99% less JS shipped. This shows meta-frameworks could eventually die out: their knowledge can be distilled into skills instead, and custom frameworks can be created on demand.</p></li><li><p>&#128220; <a href="https://nextjs.org/blog/turbopack-chunking">Next.js - How Turbopack chunks your JavaScript</a> - Explains the trade-offs behind code splitting strategies and the heuristics used to minimize both download size and request count. Next.js 16.3 comes with experimental options to optimize chunking and fine-tune heuristics based on your site access patterns.</p></li><li><p>&#128220; <a href="https://nextjs.org/blog/how-we-closed-1500-github-issues">Next.js- How we closed 1,500 GitHub issues in one month</a> - No React lesson here: they built an agent to analyze backlog issues to help maintainers close thousands of issues with confidence.</p></li><li><p>&#128184; <a href="https://www.cloudways.com/en/prepathon.php?utm_source=weekinreact&amp;utm_medium=newsletter&amp;utm_campaign=Prepathon&amp;utm_content=Community">Prepathon by Cloudways - Virtual Event - Sep 22 &amp; 23 - Two days of sessions and hands-on activities on AI-assisted building, modern deployment, and what&#8217;s actually working for developers shipping fast right now. Free to join from anywhere in the world. Register now to save your spot.</a></p></li><li><p>&#128230; <a href="https://github.com/visgl/react-google-maps/releases/tag/v1.10.0">React Google Maps 1.10 - New new 3d components</a> - The library completed its existing Google Maps 3D support with declarative components for GLB models, HTML markers, polylines, polygons, terrain flattening, and circular paths. A demo is worth a thousand words, so check this <a href="https://visgl.github.io/react-google-maps/examples/map-3d-markers">3D Maps Markers demo</a> to see fancy 3D markers, including an animated Model3D Balloon.</p></li><li><p>&#128230; <a href="https://github.com/shadcn-ui/cn">cn - A new engine for Tailwind class merging and conflict resolution</a> - Claims to be 30x faster than tailwind-merge + clsx with the same APIs. Already integrated in <a href="https://github.com/shadcn-ui/ui/releases/tag/shadcn%404.21.0">shadcn 4.21</a>. Use <code>npx shadcn migrate cn</code> to migrate. Faster, but 26 KB minified; can be reduced with <code>cn build</code>.</p></li><li><p>&#128230; <a href="https://www.nikhilsnayak.dev/blog/introducing-effective-rsc">Effective RSC - An experimental, Effect-native React Server Components framework for Bun</a> - Ideas are worth taking a look at. RSC pages are <code>Effect.fn()</code> functions with Schema-decoded route params. Effect unlocks various benefits for RSCs, such as type-safe dependency injection and error handling, or request abortion propagation.</p></li><li><p>&#128230; <a href="https://www.vidact.dev/">Vidact - Compiles React code to direct DOM operations</a> - In beta, supporting a growing subset of React 19. Components run only once when they mount.</p></li><li><p>&#128230; <a href="https://docs.uniflowed.dev/">uf - Unified Toolchain for Flow and React</a> - A Rust-based toolchain comparable to Vite+, improving DX for React and Flow. The author&#8217;s arguments are worth reading: Flow is a more precise type system than TypeScript for describing React code.</p></li><li><p>&#128230; <a href="https://github.com/huozhi/devjar">DevJar 1.0 - React live code playgrounds</a> - An interesting alternative to CodeSandbox to embed interactive React-based experiences on your site.</p></li><li><p>&#128230; <a href="https://bamboocss.com/docs/overview/getting-started">Bamboo CSS - Zero-runtime CSS-in-JS</a> - A Vite compiler erases the runtime, prunes unused tokens, and fails the build on invalid tokens.</p></li><li><p>&#128230; <a href="https://base-ui.com/react/overview/releases/v1-8-0">Base UI 1.8 - Improves mount perf for Menu/Popover, </a><code>Combobox.createItems()</code><a href="https://base-ui.com/react/overview/releases/v1-8-0"> API, Avatar lazy-loading</a></p></li><li><p>&#128230; <a href="https://github.com/rstackjs/rsbuild-plugin-react-router/releases/tag/rsbuild-plugin-react-router%400.6.0">Rsbuild Plugin React Router 0.6 - Support React Router 8 and its RSC mode</a></p></li><li><p>&#128230; <a href="https://github.com/storybookjs/storybook/releases/tag/v10.6.0">Storybook 10.6 - TanStack / NextJS-Vite framework fixes, CLI bindings for agent tools/skills, performance improvements</a></p></li><li><p>&#128230; <a href="https://github.com/bvaughn/react-window/releases/tag/2.3.0">React Window 2.3 - New optional </a><code>rowKey/columnKey</code><a href="https://github.com/bvaughn/react-window/releases/tag/2.3.0"> props</a></p></li><li><p>&#128230; <a href="https://github.com/pmndrs/jotai/releases/tag/v3.0.0">Jotai 3.0 - Modernized ESM-only package, removing deprecated APIs</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wR3L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4660b91-fe36-40e7-a5c0-ea7048ecc3c0_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wR3L!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4660b91-fe36-40e7-a5c0-ea7048ecc3c0_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!wR3L!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4660b91-fe36-40e7-a5c0-ea7048ecc3c0_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!wR3L!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4660b91-fe36-40e7-a5c0-ea7048ecc3c0_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!wR3L!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4660b91-fe36-40e7-a5c0-ea7048ecc3c0_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wR3L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4660b91-fe36-40e7-a5c0-ea7048ecc3c0_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f4660b91-fe36-40e7-a5c0-ea7048ecc3c0_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Addy Osmani&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Addy Osmani" title="Addy Osmani" srcset="https://substackcdn.com/image/fetch/$s_!wR3L!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4660b91-fe36-40e7-a5c0-ea7048ecc3c0_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!wR3L!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4660b91-fe36-40e7-a5c0-ea7048ecc3c0_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!wR3L!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4660b91-fe36-40e7-a5c0-ea7048ecc3c0_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!wR3L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4660b91-fe36-40e7-a5c0-ea7048ecc3c0_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/addyosmani">Addy Osmani</a></strong><a href="https://twitter.com/addyosmani">Head of Chrome DX - Google</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!I2Rr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!I2Rr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!I2Rr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!i_Ly!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba4b4072-5e55-4f42-bb51-67d334c7de70_1200x600.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!i_Ly!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba4b4072-5e55-4f42-bb51-67d334c7de70_1200x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!i_Ly!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba4b4072-5e55-4f42-bb51-67d334c7de70_1200x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!i_Ly!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba4b4072-5e55-4f42-bb51-67d334c7de70_1200x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!i_Ly!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba4b4072-5e55-4f42-bb51-67d334c7de70_1200x600.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!i_Ly!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba4b4072-5e55-4f42-bb51-67d334c7de70_1200x600.jpeg" width="1200" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ba4b4072-5e55-4f42-bb51-67d334c7de70_1200x600.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Build Custom Forms and Surveys in React&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Build Custom Forms and Surveys in React" title="Build Custom Forms and Surveys in React" srcset="https://substackcdn.com/image/fetch/$s_!i_Ly!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba4b4072-5e55-4f42-bb51-67d334c7de70_1200x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!i_Ly!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba4b4072-5e55-4f42-bb51-67d334c7de70_1200x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!i_Ly!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba4b4072-5e55-4f42-bb51-67d334c7de70_1200x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!i_Ly!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba4b4072-5e55-4f42-bb51-67d334c7de70_1200x600.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://surveyjs.io/?utm_source=this-week-in-react&amp;utm_medium=email">Build Custom Forms and Surveys in React</a></strong></p><p><a href="https://surveyjs.io/?utm_source=this-week-in-react&amp;utm_medium=email">SurveyJS</a> is a set of UI libraries for building, rendering, and analyzing forms and surveys directly inside your React application. Create everything from simple registration forms to complex surveys and multi-step wizards, connect your forms to any backend, and match them to your existing design system with custom themes or <em>style adapters for Bootstrap, shadcn/ui, and Material UI</em>.</p><p>&#8226; Embed a drag-and-drop form builder for business users<br>&#8226; Update forms without shipping a new release<br>&#8226; Reuse one JSON schema across the builder, renderer, PDF exports, and analytics</p><p>Developers control the architecture. Business teams manage forms. Your company retains full control over the UI and user data. &#128640;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!I2Rr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!I2Rr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!I2Rr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128241; React-Native</strong></h2><ul><li><p>&#128184; <a href="https://go.posthog.com/twir-sept9">build mode - Stop being the code review bottleneck</a></p></li><li><p>&#128064; <a href="https://github.com/react/react-native/releases/tag/v0.88.0-rc.0">RN 0.88 RC - SwiftPM tooling, DevTools screenshots, ArrayBuffer in TurboModules, Babel Platform inlining improvement, iOS SceneDelegate lifecycle</a> - A sneak peek of the upcoming version from its changelog. Set up SwiftPM via <code>npx react-native spm</code>. Opt-in flags to drop legacy module/component interop will become the default later. Improved <code>Platform.OS/select()</code> inlining unlocks more platform-specific dead code elimination, around &#120143; <a href="https://x.com/tell_me_mur/status/2097352229833379960">17.7KB on iOS and 19.6KB on Android</a><strong>.</strong></p></li><li><p>&#128227; <a href="https://expo.dev/changelog/expo-go-57-login">Expo Go - Login is now required to run projects</a> - iOS-only for now. Will also be applied to Android later.</p></li><li><p>&#128202; <a href="https://andrei-calazans.com/posts/2026-06-05-state-of-rn-navigation/">React Native Navigation Benchmarks</a> - Benchmarks the same app rebuilt 4x with different routers, covering cold start, RAM, FPS, and JS measurements. Android tests highlight the most common RN bottleneck.</p></li><li><p>&#128220; <a href="https://expo.dev/blog/an-early-look-at-expo-modules-2-0">An early look at Expo Modules 2.0</a> - Modules become plain annotated Swift/Kotlin with no <code>definition()</code> DSL to learn. Sync calls run 2.5-5.6x faster than 1.0 on the same SDK and beat TurboModules in the Expo chart. Experimental, iOS-only. Android in progress.</p></li><li><p>&#128184; <a href="https://patch.codemagic.io/?utm_source=newsletter&amp;utm_medium=referral&amp;utm_campaign=twir">Codemagic Patch - The easiest way to run your own OTA update server, including dashboard and fingerprinting</a></p></li><li><p>&#128230; <a href="https://github.com/react-native-quickjs/quickjs">RN QuickJS alpha - Hermes-compatible JSI runtime</a> - An alternative to Hermes. A tiny (~1.5MB) JavaScript engine that compiles to small bytecode bundles for faster startup, with a compatibility layer so most Hermes-dependent libs like Reanimated keep working without changes.</p></li><li><p>&#128230; <a href="https://github.com/kacperkapusciak/goldie">Goldie - App Store screenshot generator for coding agents and humans</a> - Useful framework-agnostic mobile tool. Argent replays flows; Goldie prepares store-compliant screenshots and preview videos.</p></li><li><p>&#128230; <a href="https://github.com/mahdidavoodi7/react-native-continued-task">RN Continued Task - Background tasks that keep running after your app is backgrounded</a> - One typed API over iOS 26 <code>BGContinuedProcessingTask</code> (Live Activity) + Android <code>WorkManager</code> foreground service, via Nitro. Useful for long-running user-initiated tasks like large exports, uploads, or encoding.</p></li><li><p>&#128230; <a href="https://github.com/kuatsu/react-native-boost/releases/tag/v1.7.0">Boost 1.7 - Image optimizer now default, RN 0.86 support</a></p></li><li><p>&#128230; <a href="https://github.com/callstackincubator/rozenite/releases/tag/v2.4.0">Rozenite 2.4 - Auto-inject Lynx runtime, one endpoint for debug targets</a></p></li><li><p>&#128230; <a href="https://github.com/getsentry/sentry-react-native/releases/tag/8.25.0">Sentry 8.25 - Feature flag info on native crashes, app.start vitals propagation</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion/argent/releases/tag/v0.24.0">Argent 0.24 - Physical iOS device support</a></p></li><li><p>&#128230; <a href="https://github.com/uni-stack/uniwind/releases/tag/v1.12.0">Uniwind 1.12 - Drop-shadow filter</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion-labs/react-native-streamdown/releases/tag/0.3.0">Streamdown 0.3 - Worklets 0.10 support</a></p></li><li><p>&#128230; <a href="https://github.com/steve228uk/metro-mcp/releases/tag/v0.15.0">Metro MCP 0.15 - MCP SDK v2, safer CDP reconnects pinned to same app, Hermes eval, Appium test gen</a></p></li><li><p>&#128230; <a href="https://github.com/callstack/agent-device/releases/tag/v0.21.0">Agent-Device 0.21 - Human takeovers in remote sessions, faster iOS Simulator opens, install size halved</a></p></li><li><p>&#128230; <a href="https://github.com/lynx-family/lynx-stack/releases/tag/@lynx-js/react@0.126.0">ReactLynx 0.126 - Now on Preact 11, 14% faster background renders, use() support</a></p></li><li><p>&#128230; <a href="https://github.com/DorianMazur/react-native-screen-choreography">Screen Choreography 0.4 - Shared-element transitions for Expo Router</a></p></li><li><p>&#127897;&#65039; <a href="https://www.callstack.com/podcasts/running-ai-in-the-browser-with-transformers-js">React Universe on Air - Running AI in the Browser With Transformers.js</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!I2Rr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!I2Rr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!I2Rr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128256; Other</strong></h2><ul><li><p>&#128499;&#65039; <a href="https://web.dev/blog/interop-2027-proposals">Interop 2027 - Submit and vote for your favorite proposals</a></p></li><li><p>&#128220; <a href="https://altinmert.co/blog/running-zod-schemas-on-simdjson/">Running zod Schemas on simdjson</a> - Combining zod with ata, a JSON Schema engine using simdjson native core, and the benefits this brings.</p></li><li><p>&#128220; <a href="https://blog.gaborkoos.com/posts/2026-09-08-Half-Past-Fetch/">Half Past Fetch</a> - <code>await fetch()</code> only waits for the headers, not the actual body, and other interesting details.</p></li><li><p>&#128220; <a href="https://www.solidjs.com/blog/async-solid-one-graph-two-machines">Async Solid - 3-part series: reads, writes, and network</a></p></li><li><p>&#128230; <a href="https://gpu-lexer.vercel.app/">gpu-lexer - Language-agnostic WebGPU syntax highlighter</a> - Crazy idea! Highlighting is not based on language grammars but on a small AI model trained for this purpose.</p></li><li><p>&#128230; <a href="https://rslib.rs/blog/v1-0">Rslib 1.0 - Multiple output formats, multi-framework support, bundled or bundleless, style/asset support, and more</a> - Looks like an interesting tool, in particular for publishing a component library across many frameworks.</p></li><li><p>&#128230; <a href="https://vitest.dev/blog/vitest-5">Vitest 5.0 - Perf improvements, </a><code>vi.when</code><a href="https://vitest.dev/blog/vitest-5">, Trace View in Browser Mode, benchmarking API, better defaults, and more</a></p></li><li><p>&#128230; <a href="https://four.htmx.org/docs/whats-new-in-htmx-4">htmx 4.0 - fetch() replaces XHR, explicit inheritance, swaps all HTTP responses, and other breaking changes</a></p></li><li><p>&#128230; <a href="https://trilon.io/blog/nestjs-12-is-now-available">NestJS 12.0 - ESM-first, Rspack replacing webpack, Standard Schema validation, observability SDK</a></p></li><li><p>&#128230; <a href="https://github.com/microsoft/playwright/releases/tag/v1.63.0">Playwright 1.63 - Test locks, Locator improvements, aria/screen snapshots in traces, and more</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!I2Rr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!I2Rr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!I2Rr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!I2Rr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a8c789-3bf6-472f-ae79-dab96ca55be5_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#129325; Fun</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gudJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3fe30fe-0b4a-4ae2-9373-44491c08861a_1000x347.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gudJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3fe30fe-0b4a-4ae2-9373-44491c08861a_1000x347.jpeg 424w, https://substackcdn.com/image/fetch/$s_!gudJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3fe30fe-0b4a-4ae2-9373-44491c08861a_1000x347.jpeg 848w, https://substackcdn.com/image/fetch/$s_!gudJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3fe30fe-0b4a-4ae2-9373-44491c08861a_1000x347.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!gudJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3fe30fe-0b4a-4ae2-9373-44491c08861a_1000x347.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gudJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3fe30fe-0b4a-4ae2-9373-44491c08861a_1000x347.jpeg" width="1000" height="347" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e3fe30fe-0b4a-4ae2-9373-44491c08861a_1000x347.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:347,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!gudJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3fe30fe-0b4a-4ae2-9373-44491c08861a_1000x347.jpeg 424w, https://substackcdn.com/image/fetch/$s_!gudJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3fe30fe-0b4a-4ae2-9373-44491c08861a_1000x347.jpeg 848w, https://substackcdn.com/image/fetch/$s_!gudJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3fe30fe-0b4a-4ae2-9373-44491c08861a_1000x347.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!gudJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3fe30fe-0b4a-4ae2-9373-44491c08861a_1000x347.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>See ya! &#128075;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[This Week In React 295]]></title><description><![CDATA[StyleX, browser(), Next.js, React Compiler, Vite, Bun, Astryx, Formisch, React-Aria, TanStack | C++ API, Margelo, Observe, Reanimated, Teleport, Nitro, Screen Transitions | Zod, pnpm, vgpu, Remi]]></description><link>https://substack.thisweekinreact.com/p/this-week-in-react-295</link><guid isPermaLink="false">https://substack.thisweekinreact.com/p/this-week-in-react-295</guid><dc:creator><![CDATA[Sébastien Lorber]]></dc:creator><pubDate>Sun, 06 Sep 2026 19:35:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Kt6H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F901c3cd0-e0fe-4419-a339-98a1516ddd6b_1034x548.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi everyone, <a href="https://x.com/sebastienlorber">Seb</a> and <a href="https://x.com/jaworek3211">Jan</a> here &#128075;!</p><p>Back from our summer break, we&#8217;ll cover news from the last two weeks.</p><p>React v19.3 is getting closer. The React Compiler in Rust is now available in Vite and Bun. CSS-in-JS is set to make a comeback.</p><p>On the mobile side, React Native keeps refining its public API surface, an important step toward v1.0. Callstack acquired Margelo.</p><p>Let&#8217;s dive in!</p><p>As always, thanks for supporting us on your favorite platform:</p><ul><li><p>&#129419; <a href="https://slo.im/last/b">Bluesky</a></p></li><li><p>&#10006;&#65039; <a href="https://slo.im/last/x">X / Twitter</a></p></li><li><p>&#128084; <a href="https://slo.im/last/l">LinkedIn</a></p></li><li><p>&#128125; <a href="https://slo.im/last/r">Reddit</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uTkI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99fb033d-2c3f-465f-ac0d-2784cecbf9d3_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uTkI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99fb033d-2c3f-465f-ac0d-2784cecbf9d3_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!uTkI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99fb033d-2c3f-465f-ac0d-2784cecbf9d3_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!uTkI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99fb033d-2c3f-465f-ac0d-2784cecbf9d3_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!uTkI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99fb033d-2c3f-465f-ac0d-2784cecbf9d3_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uTkI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99fb033d-2c3f-465f-ac0d-2784cecbf9d3_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/99fb033d-2c3f-465f-ac0d-2784cecbf9d3_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;William Candillon&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="William Candillon" title="William Candillon" srcset="https://substackcdn.com/image/fetch/$s_!uTkI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99fb033d-2c3f-465f-ac0d-2784cecbf9d3_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!uTkI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99fb033d-2c3f-465f-ac0d-2784cecbf9d3_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!uTkI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99fb033d-2c3f-465f-ac0d-2784cecbf9d3_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!uTkI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99fb033d-2c3f-465f-ac0d-2784cecbf9d3_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/wcandillon">William Candillon</a></strong><a href="https://twitter.com/wcandillon">React-Native animations expert - Youtuber</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JXe4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JXe4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JXe4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cd60a167-0f4b-4193-b634-a78685b7c990_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JXe4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!iULL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2af5ad5a-2142-438a-9f9b-48344d7d3cd4_1200x600.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iULL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2af5ad5a-2142-438a-9f9b-48344d7d3cd4_1200x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!iULL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2af5ad5a-2142-438a-9f9b-48344d7d3cd4_1200x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!iULL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2af5ad5a-2142-438a-9f9b-48344d7d3cd4_1200x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!iULL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2af5ad5a-2142-438a-9f9b-48344d7d3cd4_1200x600.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iULL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2af5ad5a-2142-438a-9f9b-48344d7d3cd4_1200x600.jpeg" width="1200" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2af5ad5a-2142-438a-9f9b-48344d7d3cd4_1200x600.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;PlanetScale: The database that gets faster as you sleep&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="PlanetScale: The database that gets faster as you sleep" title="PlanetScale: The database that gets faster as you sleep" srcset="https://substackcdn.com/image/fetch/$s_!iULL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2af5ad5a-2142-438a-9f9b-48344d7d3cd4_1200x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!iULL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2af5ad5a-2142-438a-9f9b-48344d7d3cd4_1200x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!iULL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2af5ad5a-2142-438a-9f9b-48344d7d3cd4_1200x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!iULL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2af5ad5a-2142-438a-9f9b-48344d7d3cd4_1200x600.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://planetscale.com/?utm_source=this_week_in_react&amp;utm_medium=email&amp;utm_campaign=2026_q3_this_week_in_react&amp;utm_content=slot_1">PlanetScale: The database that gets faster as you sleep</a></strong></p><p>Agents ship React features faster than ever. They also ship unindexed queries, N+1s, and schema decisions made at 2am by a model that will never get paged.</p><p>Fortunately, agents can <em>fix</em> database problems too. They just need production data, and that&#8217;s what the PlanetScale MCP server gives them. Hook up an agent, and the loop looks like this:</p><ul><li><p>PlanetScale flags a slow query</p></li><li><p>The agent traces it back to the code in your repo</p></li><li><p>The agent opens a PR with the fix</p></li><li><p>You review and merge</p></li></ul><p>Run it once, or put it on a schedule.</p><p>Underneath it all: the fastest, most scalable cloud Postgres and MySQL, with options like PlanetScale Metal when you need peak performance. Fast databases, fast React apps.</p><p><strong><a href="https://planetscale.com/docs/connect/self-improving-database/?utm_source=this_week_in_react&amp;utm_medium=email&amp;utm_campaign=2026_q3_this_week_in_react&amp;utm_content=slot_1">Try the self-improving database</a></strong></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JXe4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JXe4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JXe4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cd60a167-0f4b-4193-b634-a78685b7c990_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JXe4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#9883;&#65039; React</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Kt6H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F901c3cd0-e0fe-4419-a339-98a1516ddd6b_1034x548.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Kt6H!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F901c3cd0-e0fe-4419-a339-98a1516ddd6b_1034x548.png 424w, https://substackcdn.com/image/fetch/$s_!Kt6H!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F901c3cd0-e0fe-4419-a339-98a1516ddd6b_1034x548.png 848w, https://substackcdn.com/image/fetch/$s_!Kt6H!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F901c3cd0-e0fe-4419-a339-98a1516ddd6b_1034x548.png 1272w, https://substackcdn.com/image/fetch/$s_!Kt6H!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F901c3cd0-e0fe-4419-a339-98a1516ddd6b_1034x548.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Kt6H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F901c3cd0-e0fe-4419-a339-98a1516ddd6b_1034x548.png" width="1034" height="548" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/901c3cd0-e0fe-4419-a339-98a1516ddd6b_1034x548.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:548,&quot;width&quot;:1034,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;stylex social card&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="stylex social card" title="stylex social card" srcset="https://substackcdn.com/image/fetch/$s_!Kt6H!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F901c3cd0-e0fe-4419-a339-98a1516ddd6b_1034x548.png 424w, https://substackcdn.com/image/fetch/$s_!Kt6H!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F901c3cd0-e0fe-4419-a339-98a1516ddd6b_1034x548.png 848w, https://substackcdn.com/image/fetch/$s_!Kt6H!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F901c3cd0-e0fe-4419-a339-98a1516ddd6b_1034x548.png 1272w, https://substackcdn.com/image/fetch/$s_!Kt6H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F901c3cd0-e0fe-4419-a339-98a1516ddd6b_1034x548.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><a href="https://stylexjs.com/">StyleX</a>, the atomic CSS-in-JS library from Meta, has been all the rage on X recently. This probably follows the &#120143; <a href="https://x.com/poteto/status/2089227731305464150">Cursor migration from Tailwind to StyleX</a>. Or maybe it&#8217;s related to Meta open-sourcing <a href="https://astryx.atmeta.com/">Astryx</a>, the extensible, agent-friendly design system built on top and powering thousands of their apps for years.</p><p>Anyway, we already covered all that, so here are the recent resources to check out:</p><ul><li><p>&#128220; <a href="https://linear.app/now/styling-linear-for-the-future-stylex">Styling Linear for the future with StyleX</a> - Linear completed its styled-components to StyleX migration. They don&#8217;t explicitly mention Tailwind but still highlight where StyleX does better: strong type-safe constraints, deterministic and performant merging of styles, styling-at-a-distance deliberately hard.</p></li><li><p>&#128220; <a href="https://flaviocopes.com/stylex/">A deep dive into StyleX</a> - Hands-on introduction and opinionated conclusion: Tailwind&#8217;s terse syntax is better for humans, while StyleX&#8217;s stronger constraints are better for agents.</p></li><li><p>&#128230; <a href="https://github.com/aidenybai/tailwind-stylex">Tailwind-StyleX - Use Tailwind&#8217;s default design tokens directly in StyleX</a></p></li><li><p>&#127897;&#65039; <a href="https://syntax.fm/show/1035/why-everyone-is-moving-to-stylex">Syntax.fm - Why everyone is moving to Stylex?</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JXe4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JXe4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JXe4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cd60a167-0f4b-4193-b634-a78685b7c990_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JXe4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://dub.sh/dyFMVkR">Lingui - New agent skills teach your AI agent to ship production-ready React i18n in one prompt</a></p></li><li><p>&#128064; <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/pull/75429">React Types PR - Types for React 19.3</a> - We already had a hint of what&#8217;s coming in the last issue. This DefinitelyTyped PR is still a draft but cautiously confirms the upcoming highlights. A new React DOM <code>browser()</code> API is coming. <code>&lt;ViewTransition&gt;</code> and <code>&lt;Fragment ref&gt;</code> will be stable for React DOM usage, designed to be extended by other platform/renderers, with React Native support likely coming later.</p></li><li><p>&#128214; <a href="https://react.dev/reference/react-dom/browser">React DOM Docs - New </a><code>use(browser(reason))</code><a href="https://react.dev/reference/react-dom/browser"> API</a> - This new API coming in v19.3 lets you mark a component as browser-only during server rendering. Must be called from a Client Component, within a Suspense boundary. There&#8217;s also a new <code>onBrowserBailout()</code> server API introduced for reporting.</p></li><li><p>&#128214; <a href="https://vercel.com/kb/guide/deploy-a-tanstack-start-app-to-vercel">How to Deploy a TanStack Start app to Vercel</a> - TanStack and Vercel are teaming up to make Vercel a first-class home for TanStack Start, leveraging the Nitro Vite plugin.</p></li><li><p>&#128272; <a href="https://nextjs.org/blog/august-2026-security-release">Next.js August 2026 Security Release</a> - v16.3.3 and v15.5.24 now available, fixing critical severity vulnerabilities.</p></li><li><p>&#128467;&#65039; <a href="https://reactadvanced.com/?utm_source=thisweekinreact">React Advanced London</a> - &#127468;&#127463; London - 23 &amp; 26 Oct. 40+ talks and 5+ hands-on workshops on modern React &amp; AI tooling for React devs. A great place to catch up with the community - all inside London&#8217;s historic ex-brewery. Save 10% on your ticket with code &#8220;TWIR&#8221;.</p></li><li><p>&#128220; <a href="https://sigh.dev/posts/making-react-testing-library-faster/">Making React Testing Library Tests 43% Faster</a> - The story of using Codex to find performance gains in RTL <code>getByRole()</code> and landing fixes upstream in jsdom.</p></li><li><p>&#128220; <a href="https://tendto.github.io/en/posts/ssg-for-react-with-vite/">SSG for React with Vite</a> - Argues SSG should be the default over CSR and shows how to implement that with a tiny Vite plugin.</p></li><li><p>&#128184; <a href="https://go.posthog.com/twir-sept2">build mode - We used context engineering to 5x conversion and 2x activation</a></p></li><li><p>&#128230; <a href="https://github.com/vitejs/vite-plugin-react/releases/tag/plugin-react%406.1.0">Vite Plugin React 6.1 - New </a><code>{compiler: true}</code><a href="https://github.com/vitejs/vite-plugin-react/releases/tag/plugin-react%406.1.0"> option to use the Oxc React Compiler</a> - After landing in Oxlint, the faster Oxc Rust-based React Compiler comes to Vite through a new optional <code>oxc-transform-react</code> package. More than 10x faster than the Babel plugin!</p></li><li><p>&#128230; <a href="https://bun.com/blog/bun-v1.4">Bun 1.4</a> - The Rust rewrite is ready, alongside so many other things that the blog post probably takes hours to read, so we&#8217;ll focus on the React-related updates only. Built-in support for the React Compiler in Rust. A new <code>Bun.markdown.react()</code> turns Markdown into a React Element, supporting component substitution. Node.js compatibility improvements, Next.js 16 compatibility, reduced memory usage.</p></li><li><p>&#128230; <a href="https://formisch.dev/blog/formisch-v1/">Formisch 1.0 - Schema-first, framework-agnostic form library</a> - The form library coming from the Valibot ecosystem supports React and React Native. Includes migration guides from React Hook Form, Formik, and TanStack Form.</p></li><li><p>&#128230; <a href="https://github.com/TanStack/query/releases/tag/release-2026-08-22-1856">TanStack Query 5.102 - Simplify Query Methods</a> - An important release for TanStack Query that finally implemented its RFC to merge 6 former imperative query methods under only 2 unified APIs: <code>query()</code> and <code>infiniteQuery()</code>.</p></li><li><p>&#128230; <a href="https://github.com/remorses/gpuix">GPUIX - React renderer for Zed&#8217;s GPUI</a> - A new performant alternative to Electron with no WebView to build GPU-accelerated desktop apps.</p></li><li><p>&#128230; <a href="https://github.com/vercel/satori/releases">Satori 0.29+ - </a><code>corner-shape</code><a href="https://github.com/vercel/satori/releases">, </a><code>backdrop-filter</code><a href="https://github.com/vercel/satori/releases">, HarfBuzz text shaping, and more</a> - This popular tool widely used to generate OpenGraph images received many interesting updates lately, soon available in Next.js <code>ImageResponse</code> API.</p></li><li><p>&#128230; <a href="https://react-aria.adobe.com/releases/v1-21-0">React Aria 1.21 - NavigationTree component, Menu async loading</a></p></li><li><p>&#128230; <a href="https://astryx.atmeta.com/blog/astryx-v0-5-0">Astryx 0.5 - 30 locales, one Escape key, and bottom sheets in core</a></p></li><li><p>&#128230; <a href="https://waku.gg/blog/waku-v1-rc">Waku 1.0 RC - Public API fixed, type-safe and instant navigation</a></p></li><li><p>&#128230; <a href="https://github.com/TanStack/charts/releases/tag/v0.16.0">TanStack Charts 0.16 - Officially in alpha, ready to be field-tested</a></p></li><li><p>&#128230; <a href="https://nuqs.dev/docs/changelog#v2.10.0">Nuqs 2.10 - The React SPA adapter is now SSR-compatible for Astro, Inertia, Fastify</a></p></li><li><p>&#128230; <a href="https://github.com/fuma-nama/fumapress/releases/tag/fumapress%401.0.0">Fumapress 1.0 - Waku-based content site generator</a></p></li><li><p>&#128230; <a href="https://github.com/TrySound/rifm/releases/tag/v1.0.0">React Input Format &amp; Mask 1.0 - Hook/component for building formatted/masked inputs</a></p></li><li><p>&#128230; <a href="https://github.com/react-hook-form/react-hook-form/releases#release-v7.86.0">React Hook Form 7.86 &amp; 7.87 - Typesafe </a><code>getErrors()</code><a href="https://github.com/react-hook-form/react-hook-form/releases#release-v7.86.0">, trigger </a><code>shouldTouch</code><a href="https://github.com/react-hook-form/react-hook-form/releases#release-v7.86.0">, opaque type registry</a></p></li><li><p>&#127897;&#65039; <a href="https://share.transistor.fm/s/f48613c6">This Month in React - Release candidate season; is that an asteroid hitting web educators?</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_zGU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4007669-8fbb-4807-aec5-bdbb738a7bc3_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_zGU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4007669-8fbb-4807-aec5-bdbb738a7bc3_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!_zGU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4007669-8fbb-4807-aec5-bdbb738a7bc3_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!_zGU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4007669-8fbb-4807-aec5-bdbb738a7bc3_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!_zGU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4007669-8fbb-4807-aec5-bdbb738a7bc3_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_zGU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4007669-8fbb-4807-aec5-bdbb738a7bc3_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f4007669-8fbb-4807-aec5-bdbb738a7bc3_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Dominik Dorfmeister&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Dominik Dorfmeister" title="Dominik Dorfmeister" srcset="https://substackcdn.com/image/fetch/$s_!_zGU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4007669-8fbb-4807-aec5-bdbb738a7bc3_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!_zGU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4007669-8fbb-4807-aec5-bdbb738a7bc3_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!_zGU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4007669-8fbb-4807-aec5-bdbb738a7bc3_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!_zGU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4007669-8fbb-4807-aec5-bdbb738a7bc3_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/TkDodo">Dominik Dorfmeister</a></strong><a href="https://twitter.com/TkDodo">Web Developer - React-Query maintainer</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JXe4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JXe4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JXe4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cd60a167-0f4b-4193-b634-a78685b7c990_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JXe4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zS6b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63c5f722-be84-44bb-bab7-79837eb5e679_1200x600.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zS6b!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63c5f722-be84-44bb-bab7-79837eb5e679_1200x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!zS6b!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63c5f722-be84-44bb-bab7-79837eb5e679_1200x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!zS6b!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63c5f722-be84-44bb-bab7-79837eb5e679_1200x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!zS6b!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63c5f722-be84-44bb-bab7-79837eb5e679_1200x600.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zS6b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63c5f722-be84-44bb-bab7-79837eb5e679_1200x600.jpeg" width="1200" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/63c5f722-be84-44bb-bab7-79837eb5e679_1200x600.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Where test runners stop, Wallaby starts&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Where test runners stop, Wallaby starts" title="Where test runners stop, Wallaby starts" srcset="https://substackcdn.com/image/fetch/$s_!zS6b!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63c5f722-be84-44bb-bab7-79837eb5e679_1200x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!zS6b!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63c5f722-be84-44bb-bab7-79837eb5e679_1200x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!zS6b!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63c5f722-be84-44bb-bab7-79837eb5e679_1200x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!zS6b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63c5f722-be84-44bb-bab7-79837eb5e679_1200x600.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://wallabyjs.com/?referrer=ThisWeekInReactSep26">Where test runners stop, Wallaby starts</a></strong></p><p>A passing test tells an agent how the run ended, not whether the code behaved as intended. Wallaby turns your JavaScript, TypeScript, and Python tests into a live runtime model the agent can inspect throughout the task.</p><p>Wallaby keeps results and coverage current as files change. With the <a href="https://wallabyjs.com/whatsnew/cli.html?referrer=ThisWeekInReactSep26">Wallaby CLI for coding agents</a> &#129302;, agents can find tests covering a line, inspect branch coverage, follow one test&#8217;s execution path, and query runtime values in its exact context, without temporary logs or digging through terminal output.</p><p>Use Wallaby with Codex, Claude Code, GitHub Copilot, Cursor, Windsurf, and other agents locally, in containers, or in the cloud. <strong>Wallaby for coding agents is free for everyone during the beta.</strong></p><p><a href="https://wallabyjs.com/?referrer=ThisWeekInReactSep26">&#10145;&#65039; Upgrade your testing workflow</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JXe4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JXe4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JXe4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cd60a167-0f4b-4193-b634-a78685b7c990_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JXe4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128241; React-Native</strong></h2><p><strong><a href="https://github.com/react-native-community/discussions-and-proposals/pull/1018">React Native RFC - Reducing the C/C++ public API</a></strong></p><p>React Native 1.0 is still on the horizon, but to respect Semantic Versioning, it first needs to clearly define its public API surface. Following the work on stable JS/TS and Java/Kotlin APIs, it&#8217;s now the turn of the C++ APIs to be clarified.</p><p>Until now, there has been no clear distinction between public and private C++ APIs. As a result, community libraries and frameworks sometimes depend on APIs that were never intended to be public. This can cause libraries to break when upgrading React Native, or force the core team to preserve backward compatibility for internal APIs to avoid breaking the ecosystem.</p><p>This RFC introduces a new three-tier visibility model for C++ APIs:</p><ul><li><p><strong>Public:</strong> Stable within major versions, safe for libraries to depend on, and exposed through a single umbrella header.</p></li><li><p><strong>Framework:</strong> Stable within minor versions. Regular usage emits a suppressible warning.</p></li><li><p><strong>Private:</strong> No stability guarantees. Regular usage emits a suppressible error.</p></li></ul><p>There&#8217;s existing tooling to take a snapshot of existing C++ APIs, that it will be adapted to take into accoun this new visibility model. All this will greatly help stabilize the C++ APIs and ensure React Native doesn&#8217;t ship unintended breaking changes.</p><p>Work is already in progress to apply this visibility model to all C++ APIs. This will be rolled out gradually, first opt-in through a <code>RN_STRICT_API</code> build flag, then opt-out after a grace period, giving time for the public API consumers to migrate to the new umbrella headers. Most APIs have already been categorized, so if your library depends on private or framework APIs, now is probably a good time to chime in.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JXe4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JXe4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JXe4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cd60a167-0f4b-4193-b634-a78685b7c990_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JXe4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://crisp.chat/?utm_source=twir&amp;utm_medium=newsletter&amp;utm_campaign=crisp_q3_nl&amp;utm_content=2sep26">Crisp - React Native chat SDK with TypeScript, push notifications, event listeners and Helpdesk integration</a></p></li><li><p>&#128227; <a href="https://margelo.com/blog/margelo-joins-callstack">Margelo Joins Callstack to Advance High-Performance React Native Engineering</a> - 2 major and complementary React Native consulting companies joining forces. Congrats to Mike, Marc, and all others.</p></li><li><p>&#128227; <a href="https://expo.dev/blog/introducing-observe">EAS Observe - Performance monitoring for Expo apps, now generally available</a></p></li><li><p>&#128227; <a href="https://www.openiap.dev/docs/updates/announcements#2026-08-19-amazon-fireos-vega">OpenIAP - Now backed by Amazon Developer, bringing IAP to Fire OS and Vega OS</a></p></li><li><p>&#128064; <a href="https://github.com/react/react-native/pull/57723">React Native PR - ResizeObserver</a> - A Web API spec-compliant implementation has been recently merged, but still behind a flag. More capable than <code>onLayout</code>.</p></li><li><p>&#128214; <a href="https://github.com/stephanww/rn-dev-security-guide">The React Native Developer&#8217;s Security Guide</a> - How to secure the developer&#8217;s workstation, toolchain, repository, and CI.</p></li><li><p>&#128467;&#65039; <a href="https://reactnativeconnection.io/?utm_source=thisweekinreact.com">React Native Connection</a> - &#127467;&#127479; Paris - 24 Sept. Last call to grab your ticket and join the React Native community in Paris! Get a 15% discount with code &#8220;TWIR&#8221;.</p></li><li><p>&#128220; <a href="https://margelo.com/blog/speeding-up-expensifys-networking-with-nitro-fetch">Speeding up Expensify&#8217;s networking with NitroFetch</a> - Prefetching on the native side, before the JS bundle is even loaded, reduced startup time by at least 15%.</p></li><li><p>&#128220; <a href="https://margelo.com/blog/building-a-3d-ai-avatar-in-react-native">Building a 3D AI assistant using React Native and GPT-Realtime</a> - How to use <code>react-native-filament</code> to render 3D characters and sync its animations with AI responses.</p></li><li><p>&#128220; <a href="https://expo.dev/blog/pasting-images-into-textinput-should-not-be-this-hard">Pasting images into TextInput should not be this hard</a> - Pasting an image into a chat input is surprisingly hard. Wrapping <code>TextInput</code> turned out to be the best decision to avoid reimplementing well-known behaviors and APIs.</p></li><li><p>&#128220; <a href="https://swmansion.com/blog/react-native-gesture-handler-s-touchable-the-button-we-wish-we-had-sooner/">Gesture Handler&#8217;s Touchable: The Button We Wish We Had Sooner</a> - The old nice button components are deprecated and replaced with the new Touchable component. Per-state scale, opacity, and underlay with custom transition times. Hover support on mobile via mouse and pencil, all without writing a single animation.</p></li><li><p>&#128220; <a href="https://www.callstack.com/blog/working-with-the-react-native-super-app-showcase-repository">Working With the React Native Super App Showcase Repository</a> - How to work with super apps with non-trivial examples. App lifecycle, federation setup, monorepo management.</p></li><li><p>&#128220; <a href="https://ospfranco.com/concurrent-engines-crash/">React Native Bridgeless, race conditions with concurrent JS runtimes</a> - New Architecture changes how a reload instantiates a new runtime when doing an OTA update. This caused the query to run on the wrong thread, resulting in a crash.</p></li><li><p>&#128184; <a href="https://configcat.com/blog/ab-testing-react-native-apps-with-feature-flags/?utm_source=thisweekinreact_newsletter&amp;utm_medium=sponsor&amp;utm_campaign=reactnative_202609">ConfigCat - Run A/B Tests in React Native Apps with Feature Flags and Amplitude</a></p></li><li><p>&#128230; <a href="https://gtkx.dev/blog/gtkx-1-4">GTKX - React Navigation on Linux rendered by native libadwaita widgets</a> - The platform-agnostic core of React Navigation now renders to GNOME. Interesting signal for where navigation abstractions can go.</p></li><li><p>&#128230; <a href="https://github.com/software-mansion/react-native-reanimated/releases/tag/4.6.0">Reanimated 4.6 - CSS lifecycle callbacks on native, contrastColor, RN 0.87 support</a></p></li><li><p>&#128230; <a href="https://kirillzyusko.github.io/react-native-teleport/blog/1-2-0-android-fast-reparenting">Teleport 1.2 - Fast reparenting on Android, no more empty frames</a></p></li><li><p>&#128230; <a href="https://github.com/margelo/nitro/releases/tag/v0.37.0">Nitro 0.37 - Props move into core via C++ templates, immutable View prop snapshots</a></p></li><li><p>&#128230; <a href="https://screen-transitions.esjr.org/migrating-from-v3">Screen Transitions 4.0 - React 19.2 Activity, Reanimated 4, and a v3 migration guide</a></p></li><li><p>&#128230; <a href="https://maestro.dev/blog/maestro-cli-2-9-0">Maestro CLI 2.9 - Test light and dark mode in one flow, Android WebView inspection</a></p></li><li><p>&#128230; <a href="https://github.com/uni-stack/uniwind/releases/tag/v1.11.0">Uniwind 1.11 - Filter support on iOS and RN 0.87, scoped variables</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion/argent/releases/tag/v0.21.0">Argent 0.21 - Shake tool for simulators and emulators, profiler fixes</a></p></li><li><p>&#128230; <a href="https://github.com/callstackincubator/rozenite/releases/tag/v2.3.0">Rozenite 2.3 - Lynx support, agent tooling, and plugin testing utilities</a></p></li><li><p>&#128230; <a href="https://github.com/callstack/agent-device/releases/tag/v0.20.10">Agent Device 0.20.10 - AI SDK and MCP integrations, improved iOS snapshots, better Android visibility and gestures, Web hover automation</a></p></li><li><p>&#128230; <a href="https://github.com/henrypldev/react-native-nitro-mlx/releases/tag/v0.6.0">Nitro MLX 0.6 - Turn-scoped inference on iOS, simplify agent chat experience, normalize LLM generation outcomes, configurable TTS</a></p></li><li><p>&#129302; <a href="https://expo.dev/services/simulators">Expo Cloud Simulators - Agents that reproduce TestFlight feedback, fix bugs, and open PRs</a></p></li><li><p>&#129302; <a href="https://x.com/rough__sea/status/2091755677974983025">Dactyl - Vibe coding platform for native apps that simulates SwiftUI in your browser</a></p></li><li><p>&#127897;&#65039; <a href="https://infinite.red/react-native-radio/rnr-371-rnr-explains-pan-responder">RNR 371 - PanResponder and the anatomy of RN gestures</a></p></li><li><p>&#127897;&#65039; <a href="https://infinite.red/react-native-radio/rnr-372-looking-back-on-chain-react-2026">RNR 372 - Looking back on Chain React 2026</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JXe4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JXe4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JXe4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cd60a167-0f4b-4193-b634-a78685b7c990_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JXe4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128256; Other</strong></h2><ul><li><p>&#128064; <a href="https://www.bram.us/2026/08/20/the-future-of-css-target-multiple-classes-with-the-class-prefix-selector/">CSS - Class Prefix Selector</a> - Not implemented anywhere yet, but CSS will support <code>.prefix-*</code> selectors, letting you target multiple CSS classes at once.</p></li><li><p>&#128064; <a href="https://bsky.app/profile/did:plc:hxmev3uady7j4litwnr5fzbg/post/3muk7eu23w22b">HTML Spec PR - Out-of-order streaming</a> - This exciting feature is already in Chrome/Edge and has been</p></li><li><p>&#128230; <a href="https://pnpm.io/blog/releases/12.0">pnpm 12.0 - Rust rewrite, project-aware global bins, registry revisions, and more</a> - The upgrade from v11 seems easy, leading to significantly faster installs.</p></li><li><p>&#128230; <a href="https://zod.dev/blog/zod-4-5">Zod 4.5 - Ahead-of-time schema compilation, method memoization, new parsing features</a> - Precompiled schemas parse 3-9x faster. Significant schema memory footprint improvements!</p></li><li><p>&#128230; <a href="https://vgpu.sh/">vgpu - WebGPU library, designed for agents</a> - The creative library Vercel developed to ship performant shaders. Agents can verify their work with a CLI, even in sandboxes without a GPU.</p></li><li><p>&#128230; <a href="https://remix.run/blog/remix-3-release-candidate">Remix 3.0 RC - Full-stack, single dependency, composable JS framework based on web primitives</a> - I t&#8217;s time for the team to freeze feature development and commit to SemVer.</p></li><li><p>&#128230; <a href="https://rspack.rs/blog/announcing-2-2">Rspack 2.2 - Performance, HMR and </a><code>import.meta</code><a href="https://rspack.rs/blog/announcing-2-2"> improvements, Browserslist Baseline targets</a></p></li><li><p>&#128230; <a href="https://webpack.js.org/blog/2026-08-29-webpack-5-110/">Webpack 5.110 - Performance Hints, built-in CSS/HTML minification, native CSS recommended</a></p></li><li><p>&#128230; <a href="https://nodejs.org/en/blog/release/v26.8.0">Node.js 26.8 - Built-in ZIP archive support, REPL inline syntax highlighting</a></p></li><li><p>&#128230; <a href="https://github.com/jestjs/jest/releases/tag/v30.5.0">Jest 30.5 - </a><code>whenCalledWith()</code><a href="https://github.com/jestjs/jest/releases/tag/v30.5.0">, describe-level retries, new file watcher, perf and ESM fixes</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JXe4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JXe4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JXe4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cd60a167-0f4b-4193-b634-a78685b7c990_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JXe4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!JXe4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd60a167-0f4b-4193-b634-a78685b7c990_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#129325; Fun</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GH1Z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa152ccb5-011b-4cbe-8469-40522f7cd936_1000x820.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GH1Z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa152ccb5-011b-4cbe-8469-40522f7cd936_1000x820.jpeg 424w, https://substackcdn.com/image/fetch/$s_!GH1Z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa152ccb5-011b-4cbe-8469-40522f7cd936_1000x820.jpeg 848w, https://substackcdn.com/image/fetch/$s_!GH1Z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa152ccb5-011b-4cbe-8469-40522f7cd936_1000x820.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!GH1Z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa152ccb5-011b-4cbe-8469-40522f7cd936_1000x820.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GH1Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa152ccb5-011b-4cbe-8469-40522f7cd936_1000x820.jpeg" width="1000" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a152ccb5-011b-4cbe-8469-40522f7cd936_1000x820.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!GH1Z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa152ccb5-011b-4cbe-8469-40522f7cd936_1000x820.jpeg 424w, https://substackcdn.com/image/fetch/$s_!GH1Z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa152ccb5-011b-4cbe-8469-40522f7cd936_1000x820.jpeg 848w, https://substackcdn.com/image/fetch/$s_!GH1Z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa152ccb5-011b-4cbe-8469-40522f7cd936_1000x820.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!GH1Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa152ccb5-011b-4cbe-8469-40522f7cd936_1000x820.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>See ya! &#128075;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[This Week In React 294]]></title><description><![CDATA[React Compiler, TanStack, Next.js, GTKX, Effect, shadcn, Preact, Unhead, RHF | RN 0.87, Screens, RNGH, Worklets, Skia, Tuft, Enriched Markdown, Pager View, Firebase | Node, Astro, pnpm, Vitest, Solid,]]></description><link>https://substack.thisweekinreact.com/p/this-week-in-react-294</link><guid isPermaLink="false">https://substack.thisweekinreact.com/p/this-week-in-react-294</guid><dc:creator><![CDATA[Sébastien Lorber]]></dc:creator><pubDate>Fri, 21 Aug 2026 12:52:40 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/f7ba0a9a-d233-4065-b0ae-47b0847beee3_3000x1400.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi everyone, <a href="https://x.com/sebastienlorber">Seb</a> and <a href="https://x.com/jaworek3211">Jan</a> here!</p><p>Back after a little break to cover news from the last two weeks. A lot is going on, apparently not everyone is on holiday because we still have many interesting releases, including many RCs from upcoming major versions.</p><p>The native React Compiler rollout continues. React v19.3 seems around the corner. Plenty of TanStack Router/Start and Next.js content.</p><p>React Native 0.87 is now out, paving the way for v1.0.</p><p>&#127965;&#65039; We&#8217;ll be taking another break next week. See you in September. &#128075;</p><p>As always, thanks for supporting us on your favorite platform:</p><ul><li><p>&#129419; <a href="https://slo.im/last/b">Bluesky</a></p></li><li><p>&#10006;&#65039; <a href="https://slo.im/last/x">X / Twitter</a></p></li><li><p>&#128084; <a href="https://slo.im/last/l">LinkedIn</a></p></li><li><p>&#128125; <a href="https://slo.im/last/r">Reddit</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1LoS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7517900-93fb-49a1-86a1-c0bf24f2b092_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1LoS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7517900-93fb-49a1-86a1-c0bf24f2b092_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1LoS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7517900-93fb-49a1-86a1-c0bf24f2b092_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1LoS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7517900-93fb-49a1-86a1-c0bf24f2b092_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1LoS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7517900-93fb-49a1-86a1-c0bf24f2b092_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1LoS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7517900-93fb-49a1-86a1-c0bf24f2b092_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b7517900-93fb-49a1-86a1-c0bf24f2b092_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Mike Grabowski&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Mike Grabowski" title="Mike Grabowski" srcset="https://substackcdn.com/image/fetch/$s_!1LoS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7517900-93fb-49a1-86a1-c0bf24f2b092_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1LoS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7517900-93fb-49a1-86a1-c0bf24f2b092_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1LoS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7517900-93fb-49a1-86a1-c0bf24f2b092_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1LoS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7517900-93fb-49a1-86a1-c0bf24f2b092_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/grabbou">Mike Grabowski</a></strong><a href="https://twitter.com/grabbou">CTO and founder - Callstack</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hvDo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hvDo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hvDo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0099611e-900e-479b-81c2-b525d68ee955_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hvDo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fjRN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bd06516-5db5-4301-a817-4b530fc1fdf2_1430x715.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fjRN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bd06516-5db5-4301-a817-4b530fc1fdf2_1430x715.jpeg 424w, https://substackcdn.com/image/fetch/$s_!fjRN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bd06516-5db5-4301-a817-4b530fc1fdf2_1430x715.jpeg 848w, https://substackcdn.com/image/fetch/$s_!fjRN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bd06516-5db5-4301-a817-4b530fc1fdf2_1430x715.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!fjRN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bd06516-5db5-4301-a817-4b530fc1fdf2_1430x715.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fjRN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bd06516-5db5-4301-a817-4b530fc1fdf2_1430x715.jpeg" width="1430" height="715" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8bd06516-5db5-4301-a817-4b530fc1fdf2_1430x715.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:715,&quot;width&quot;:1430,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;From 57 bugs to 1, thanks to Seer&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="From 57 bugs to 1, thanks to Seer" title="From 57 bugs to 1, thanks to Seer" srcset="https://substackcdn.com/image/fetch/$s_!fjRN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bd06516-5db5-4301-a817-4b530fc1fdf2_1430x715.jpeg 424w, https://substackcdn.com/image/fetch/$s_!fjRN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bd06516-5db5-4301-a817-4b530fc1fdf2_1430x715.jpeg 848w, https://substackcdn.com/image/fetch/$s_!fjRN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bd06516-5db5-4301-a817-4b530fc1fdf2_1430x715.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!fjRN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bd06516-5db5-4301-a817-4b530fc1fdf2_1430x715.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://blog.sentry.io/57-bugs-to-1/?utm_source=thisweekinreact&amp;utm_medium=paid-community&amp;utm_campaign=seer-fy27q3-evergreen&amp;utm_content=newsletter-first-sponsor-dan-mindru-blog-learnmore">From 57 bugs to 1, thanks to Seer</a></strong></p><p>True story. Dan Mindru got a GitHub notification at the dentist, skimmed a green PR he hadn&#8217;t written, and hit merge before his name was called. That was one of 57 bugs in his backlog. He&#8217;s down to 1 now, and his system sorts every production bug into three tiers:<br>&#128526; <strong>Friendly</strong>: the null check, the off-by-one, the layout that breaks on mobile. The PR is waiting when you wake up.<br>&#128548; <strong>Grumpy</strong>: stale state after a websocket reconnect, optimistic UI that never rolls back. Seer can root-cause these, but it can&#8217;t run your tests. Something else has to.<br>&#129304; <strong>Punk</strong>: five-year-old prod data, one customer&#8217;s flag combo. Still yours, sorry.</p><p><a href="https://blog.sentry.io/57-bugs-to-1/?utm_source=thisweekinreact&amp;utm_medium=paid-community&amp;utm_campaign=seer-fy27q3-evergreen&amp;utm_content=newsletter-first-sponsor-dan-mindru-blog-learnmore">Read the post &#8594;</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hvDo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hvDo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hvDo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0099611e-900e-479b-81c2-b525d68ee955_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hvDo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#9883;&#65039; React</strong></h2><p><strong>The React Compiler rollout</strong></p><p>The rollout of the Rust-based compiler continues:</p><ul><li><p><a href="https://oxc.rs/blog/2026-08-18-react-compiler-support">Oxlint 1.79 just added support</a>. The new <code>oxc-transform-react</code> package also unlocks automatic memoization and will soon be supported in <code>@vitejs/plugin-react</code> (<a href="https://github.com/vitejs/vite-plugin-react/pull/1419">PR</a> already merged). Along the way, they made many improvements to performance and behavior over the original Rust port and even found bugs in the Babel version.</p></li><li><p><a href="https://github.com/biomejs/biome/releases/tag/%40biomejs%2Fbiome%402.5.8">Biome 2.5.8</a> is out with a new <code>useReactCompiler</code> nursery/experimental rule, although it&#8217;s an initial version and there&#8217;s <a href="https://github.com/biomejs/biome/issues/10974">remaining work</a> to be done such as splitting the rule into many smaller ones.</p></li><li><p><a href="https://github.com/oven-sh/bun/issues/24356#issuecomment-5276435139">Bun 1.4 will include React Compiler support</a> through <code>--react-compiler</code> and <code>Bun.build({reactCompiler: true})</code>.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hvDo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hvDo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hvDo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0099611e-900e-479b-81c2-b525d68ee955_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hvDo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://go.posthog.com/twir-aug19">build mode - Why we&#8217;re bullish on loops</a></p></li><li><p>&#128064; <a href="https://github.com/react/react/pull/37290">React PR - Enable parallel transitions flag everywhere</a> - Parallel transitions are already used in production at Meta, and are likely to come in v19.3 for both React and React Native.</p></li><li><p>&#128064; <a href="https://github.com/TanStack/router/discussions/8087">TanStack Router reimplemented</a> - Prominent Node.js contributor Yagiz Nizipli reimplemented TanStack Router APIs, claiming a drop-in replacement up to 19x faster. Tanner Linsley answers.</p></li><li><p>&#128172; Next.js team - <a href="https://www.reddit.com/r/nextjs/comments/1vnlcsk/were_the_nextjs_team_ask_us_anything/">Ask us anything on Reddit</a> and <a href="https://x.com/timneutkens/status/2090068164860117058">Ask us anything on X</a>- Apart from the many Next.js-related discussions, happy to hear that Fragment refs and ViewTransition will be stable in React 19.3! Also gives a preview of upcoming features such as granular prerendering and new data fetching primitives.</p></li><li><p>&#128172; <a href="https://github.com/remix-run/react-router/discussions/15371">React Router - Changes planned for v9</a> - This discussion will keep track of what&#8217;s coming in the next major, scheduled for mid-2027.</p></li><li><p>&#128038; <a href="https://x.com/poteto/status/2089227731305464150">Cursor completed its migration from Solid (v1) to React and StyleX</a> - In practice, signal-based approaches created perf footguns. Their new product &#8220;Bot&#8221; forbids the direct usage of <code>useEffect</code>.</p></li><li><p>&#128467;&#65039; <a href="https://reactsummit.us/?utm_source=thisweekinreact">React Summit US</a> - &#127482;&#127480; New York - 17 &amp; 20 Nov. Incredible lineup announced featuring Kent C. Dodds, Shaundai Person, Ken Wheeler, Tanner Linsley, and Seth Webster! Get a 10% discount with code &#8220;TWIR&#8221;.</p></li><li><p>&#128220; <a href="https://julesblom.com/writing/hoistable-svg-defs-ii">Impersonating the DOM</a> - A quite interesting lib design technique used by React Aria. <code>createPortal(children, fakeDocument)</code> lets you eavesdrop on the reconciler operations and get access to the rendered children. This pattern lets you do various things, such as hoisting/deduplicating SVG <code>&lt;defs&gt;</code>.</p></li><li><p>&#128220; <a href="https://lovable.dev/blog/how-we-migrated-lovable-dev-away-from-nextjs">How Lovable.dev moved from Next.js to TanStack Start</a> - Lovable builds and hosts primarily TanStack Start apps, so they decided to adopt the framework for their flagship app to dogfood their own platform and turn it into a typical Lovable app. This describes the incremental migration approach: making the code framework-agnostic, using agents, migrating related routes together, and ensuring both frameworks can run simultaneously. The migration brought better DX/AX and simpler abstractions, but TanStack Start requires more bundler customization.</p></li><li><p>&#128220; <a href="https://nextjs.org/blog/making-v0-navigations-instant">Making Navigations Instant in v0</a> - Next.js 16.3 now supports pre-rendering dynamic content at runtime, making navigation feel instantaneous. Assert this behavior with a new Playwright <code>instant()</code> helper, and let your AI agents fix the failing tests with the provided skill.</p></li><li><p>&#128220; <a href="https://tkdodo.eu/blog/reliable-query-prefetching-with-tanstack-router">Reliable Query Prefetching with TanStack Router</a> - Reliable prefetching requires using the same query options in the route loader prefetches and component queries, which may diverge at scale. Put query options in Route Context to keep them in sync.</p></li><li><p>&#128220; <a href="https://tanstack.com/blog/tanstack-router-navigation-lanes">Inside a TanStack Router Navigation</a> - Explains the lifecycle of a navigation and how edge cases are handled, such as using a transaction and private lane system to handle race conditions.</p></li><li><p>&#128220; <a href="https://nextjs.org/blog/building-app-like-experiences-with-nextjs-16-3">Building App-like Experiences with Next.js 16.3</a> - A nice overview of all the cutting-edge Next.js features useful to build modern web apps, illustrated through 4 open source app demos.</p></li><li><p>&#128220; <a href="https://aurorascharff.no/posts/coordinating-optimistic-updates-in-nextjs/">Coordinating Optimistic Updates in Next.js</a> - Use <code>useActionState</code> and <code>useOptimistic</code> to coordinate overlapping transitions with an Action queue, a reducer, and optimistic state with automatic rollbacks. Not so easy to wire, but this pattern can be learned once and applied in many places.</p></li><li><p>&#128220; <a href="https://next-intl.dev/blog/nextjs-root-params">Using </a><code>next/root-params</code><a href="https://next-intl.dev/blog/nextjs-root-params"> in Next.js 16.3</a> - A game-changer for <code>next-intl</code>, that can now read a <code>[locale]</code> param of a root layout in all Server Components.</p></li><li><p>&#128184; <a href="https://trustedrouter.com/openai-compatible-llm-api?utm_source=thisweekinreact&amp;utm_medium=sponsored_newsletter&amp;utm_campaign=react_link_20260819&amp;utm_content=react_link_every_model">TrustedRouter - Add every AI model to your React app through one OpenAI-compatible API with automatic failover and no prompt or output logs</a></p></li><li><p>&#128230; <a href="https://compiled.run/oxc-tsrx">OXC for TSRX - Parse, lint, format </a><code>.tsrx</code><a href="https://compiled.run/oxc-tsrx"> files with Oxc</a> - This promising spiritual successor to JSX now has a fast Rust-based toolchain.</p></li><li><p>&#128230; <a href="https://gtkx.dev/blog/gtkx-1-0">GTKX 1.0 - The React framework for Linux, declarative layer on top of GTK4</a></p></li><li><p>&#128230; <a href="https://github.com/unjs/unhead/releases/tag/v3.3.0">Unhead 3.3 - Framework-agnostic </a><code>&lt;head&gt;</code><a href="https://github.com/unjs/unhead/releases/tag/v3.3.0"> component - Support </a><code>&lt;Fragment&gt;</code><a href="https://github.com/unjs/unhead/releases/tag/v3.3.0">, various React fixes</a></p></li><li><p>&#128230; <a href="https://github.com/facebook/astryx/releases">Astryx 0.3 &amp; 0.4 - Meta&#8217;s fully customizable design system based on StyleX</a></p></li><li><p>&#128230; <a href="https://github.com/react-hook-form/react-hook-form/releases/tag/v7.85.0">React-Hook-Form 7.85 - Support React </a><code>&lt;Activity&gt;</code></p></li><li><p>&#128230; <a href="https://ui.shadcn.com/docs/changelog/2026-08-questionnaire">shadcn React 0.3 - New </a><code>&lt;Questionnaire&gt;</code><a href="https://ui.shadcn.com/docs/changelog/2026-08-questionnaire"> component for multi-step question flows</a></p></li><li><p>&#128230; <a href="https://www.bengubler.com/posts/2026-08-14-introducing-fig-ui-runtime">Fig - A small TypeScript UI runtime based on React Fiber.</a></p></li><li><p>&#128230; <a href="https://github.com/rshono/rshono">Rshono - Minimalist web framework based on Hono, Rspack and React Server Components</a></p></li><li><p>&#128230; <a href="https://github.com/huozhi/sugar-high/releases/tag/v2.0.0">Sugar High 2.0 - Lightweight, composable syntax highlighter with React bindings</a></p></li><li><p>&#128230; <a href="https://tanstack.com/blog/announcing-tanstack-form-v2-alpha">TanStack Form 2.0 alpha - Redesigned APIs, new validation pipeline, performance and type-safety improvements</a></p></li><li><p>&#128230; <a href="https://github.com/preactjs/preact/releases/tag/11.0.0-rc.0">Preact 11.0 RC - </a><code>use()</code><a href="https://github.com/preactjs/preact/releases/tag/11.0.0-rc.0">, </a><code>createPortal()</code><a href="https://github.com/preactjs/preact/releases/tag/11.0.0-rc.0">, </a><code>useEffectEvent()</code><a href="https://github.com/preactjs/preact/releases/tag/11.0.0-rc.0">, and more</a></p></li><li><p>&#128230; <a href="https://thoughtbot.com/blog/humid-1-0-react-server-side-rendering-in-rails-can-be-easy">Humid 1.0 - React server-side rendering in Rails using V8 / mini_racer</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=397MsJf8HGg">Lucas Barake - The state library that made me drop Zustand</a> - Effect v4 is <a href="https://www.effect.website/blog/releases/effect/40-rc">now in RC</a>, comes with a reactive Atom implementation including first-class React bindings.</p></li><li><p>&#127897;&#65039; <a href="https://share.transistor.fm/s/55d1846a">This Month in React - July 2026 - React-alikes, governance, and state management</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-RJT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ddc625-a159-469a-ad53-e54a85d2c62d_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-RJT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ddc625-a159-469a-ad53-e54a85d2c62d_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-RJT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ddc625-a159-469a-ad53-e54a85d2c62d_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-RJT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ddc625-a159-469a-ad53-e54a85d2c62d_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-RJT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ddc625-a159-469a-ad53-e54a85d2c62d_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-RJT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ddc625-a159-469a-ad53-e54a85d2c62d_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d4ddc625-a159-469a-ad53-e54a85d2c62d_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;William Candillon&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="William Candillon" title="William Candillon" srcset="https://substackcdn.com/image/fetch/$s_!-RJT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ddc625-a159-469a-ad53-e54a85d2c62d_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-RJT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ddc625-a159-469a-ad53-e54a85d2c62d_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-RJT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ddc625-a159-469a-ad53-e54a85d2c62d_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-RJT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ddc625-a159-469a-ad53-e54a85d2c62d_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/wcandillon">William Candillon</a></strong><a href="https://twitter.com/wcandillon">React-Native animations expert - Youtuber</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hvDo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hvDo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hvDo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0099611e-900e-479b-81c2-b525d68ee955_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hvDo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!S-Kh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd990c49e-c9eb-4911-9bad-ae6b71ebe787_1200x600.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!S-Kh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd990c49e-c9eb-4911-9bad-ae6b71ebe787_1200x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!S-Kh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd990c49e-c9eb-4911-9bad-ae6b71ebe787_1200x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!S-Kh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd990c49e-c9eb-4911-9bad-ae6b71ebe787_1200x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!S-Kh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd990c49e-c9eb-4911-9bad-ae6b71ebe787_1200x600.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!S-Kh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd990c49e-c9eb-4911-9bad-ae6b71ebe787_1200x600.jpeg" width="1200" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d990c49e-c9eb-4911-9bad-ae6b71ebe787_1200x600.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;New Speakers &amp; Pre-Conference Workshop&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="New Speakers &amp; Pre-Conference Workshop" title="New Speakers &amp; Pre-Conference Workshop" srcset="https://substackcdn.com/image/fetch/$s_!S-Kh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd990c49e-c9eb-4911-9bad-ae6b71ebe787_1200x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!S-Kh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd990c49e-c9eb-4911-9bad-ae6b71ebe787_1200x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!S-Kh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd990c49e-c9eb-4911-9bad-ae6b71ebe787_1200x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!S-Kh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd990c49e-c9eb-4911-9bad-ae6b71ebe787_1200x600.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://www.agent.sh/?utm_campaign=agent&amp;utm_source=twir&amp;utm_medium=email=utm_content=aug19">New Speakers &amp; Pre-Conference Workshop</a></strong></p><p><strong>Carl Ross</strong> (<strong>OpenAI)</strong> and <strong>Nick Miller</strong> (<strong>Cursor)</strong> have recently joined the lineup, alongside other top AI engineers from <strong>Google</strong>, <strong>Meta</strong>, <strong>Amazon</strong>, <strong>Expo</strong> and other tech giants.</p><p>Agenda is now almost full with talks covering 4 main angles:</p><ul><li><p>Vibe Coding</p></li><li><p>Agentic Engineering Fundamentals</p></li><li><p>Orchestration &amp; Multi-Agent Systems</p></li><li><p>Adoption &amp; Case Studies</p></li></ul><p>The last few spots are still available for the free workshop hosted by Amazon on September 16: <em><strong>Build Your Own Software (re)Factory</strong></em>. First come, first served! Book your spot at <a href="https://www.agent.sh/workshop?utm_campaign=agent&amp;utm_source=twir&amp;utm_medium=email&amp;utm_content=program">agent.sh/workshop.</a></p><p>Join Agent Conf in Warsaw on September 17&#8211;18 to get better at coding with AI agents.</p><p>Conference tickets are available at <a href="https://www.agent.sh/">agent.sh</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hvDo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hvDo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hvDo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0099611e-900e-479b-81c2-b525d68ee955_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hvDo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128241; React-Native</strong></h2><p><strong><a href="https://reactnative.dev/blog/2026/08/11/react-native-0.87">React Native 0.87</a></strong></p><p>Like clockwork, React Native 0.87 is out! It&#8217;s the biggest step towards RN 1.0 in a long time, coming with intentional breaking changes, so it deserves more than a routine upgrade note.</p><ul><li><p><strong>Strict TypeScript API by default</strong>: Types are generated automatically from source and scoped to the package&#8217;s root, so internal file changes are no longer breaking changes. Dedicated <code>*Instance</code> types (e.g. <code>ViewInstance</code>, <code>TextInputInstance</code>) improve <code>ref</code> typing of built-in components, and doc comments now flow straight into your IDE. Alex Hunt <a href="https://x.com/huntie/status/2087221384422592629">goes into detail</a> about the work that went into this: compatibility fixes for Tailwind, Uniwind, and Expo Web, plus an upstream TypeScript fix for hidden <code>Libraries/</code> subpaths.</p></li><li><p><strong>Faster, leaner Metro</strong>: Source map generation is now 2x faster and uses half of the memory. Support for TypeScript and ESM config files.<br><strong>Experimental Swift Package Manager support for iOS</strong>: Opt-in and additive: Xcode is enough &#8212; no Ruby, no Bundler, no CocoaPods. CocoaPods remains the default path.</p></li><li><p><strong>Android Gradle Plugin (AGP) v9</strong>: First RN release to support AGP 9, with recommended opt-outs for built-in Kotlin and the new DSL until AGP 10.x.</p></li><li><p><strong>API surface cleanup</strong>: Many deprecated APIs have been removed, including flagship ones like <code>InteractionManager</code>. New APIs are marked as deprecated and scheduled to be removed later. <code>AbortController</code> is now complete and <code>backgroundImage: linear-gradient/radial-gradient</code> is now stable.</p></li><li><p><strong>New requirements</strong>: The minimum toolchain requirements is now Node.js 22, AGP 9, and Kotlin 2.0+.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hvDo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hvDo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hvDo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0099611e-900e-479b-81c2-b525d68ee955_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hvDo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://crisp.chat/?utm_source=twir&amp;utm_medium=newsletter&amp;utm_campaign=crisp_q3_nl&amp;utm_content=19aug26">Crisp - Add in-app customer support to your React Native or Expo app in just a few lines of code</a></p></li><li><p>&#128214; <a href="https://github.com/react/react-native-website/pull/5111">RN docs - Strict TypeScript API guide updated for 0.87: ref types, setup-env, FAQs</a></p></li><li><p>&#128467;&#65039; <a href="https://reactnativeconnection.io/?utm_source=thisweekinreact.com">React Native Connection</a> - &#127467;&#127479; Paris - 24 Sept. Deep dive into mobile development with top-tier experts from Expo, Software Mansion and Callstack. Regular ticket window closing August 31. Save 15% on your ticket with code &#8220;TWIR&#8221;.</p></li><li><p>&#128220; <a href="https://margelo.com/blog/fitting-RAG-in-your-pocket">Fitting RAG in Your Pocket: Local Retrieval in React Native</a> - How to build on-device data retrieval for your apps using <code>@react-native-ai/llama</code> and native vector search with <code>nitro-sqlite</code> + <code>sqlite-vec</code></p></li><li><p>&#128220; <a href="https://swmansion.com/blog/the-memory-hermes-cant-see-stale-shadow-nodes-in-react-native/">The Memory Hermes Can&#8217;t See: Stale Shadow Nodes in React Native</a> - Recent Hermes V1 memory regression triggered additional experiments that surfaced a fascinating finding about the Shadow Tree. Unmounting views causes the React component and the objects attached to it to still exist in memory, which can only be cleaned up by GC run.</p></li><li><p>&#128220; <a href="https://shopify.engineering/mobile-e2e-testing">How we raised mobile end-to-end test stability to 98%</a> - Shopify stopped patching their Appium E2E suite to fix flaky tests with an opinionated wrapper. They moved away from testing implementation details with TestIDs to using computer vision.</p></li><li><p>&#128220; <a href="https://expo.dev/blog/how-to-build-a-resilient-activity-tracker-with-expo">How to build a resilient activity tracker with Expo</a> - Build an Expo app with sessions that survive backgrounding, app kills, and crashes.</p></li><li><p>&#128220; <a href="https://margelo.com/blog/react-native-barcode-scanner">Scanning Barcodes in React Native Apps: The Complete Guide (2026)</a></p></li><li><p>&#128220; <a href="https://expo.dev/blog/fable-5-vs-gpt-5-6-sol-expo-apps">Fable 5 vs GPT-5.6 Sol: I spent $2,000 and 2 billion tokens to find out who wins</a></p></li><li><p>&#128220; <a href="https://swmansion.com/blog/haptic-feedback-on-the-web-why-the-web-deliberately-refuses-to-be-as-tactile-as-native-apps/">Haptic Feedback on the Web: Why the Web Deliberately Refuses to Be as Tactile as Native Apps</a></p></li><li><p>&#128184; <a href="https://configcat.com/blog/ab-testing-react-native-apps-with-feature-flags/?utm_source=thisweekinreact_newsletter&amp;utm_medium=sponsor&amp;utm_campaign=reactnative_20260819">ConfigCat - Release React Native Features with Feature Flags, Without Redeploying</a></p></li><li><p>&#128230; <a href="https://invertase.io/blog/react-native-firebase-v26-release">Firebase 26 - New architecture foundation: TurboModules, TypeScript parity, modular API</a></p></li><li><p>&#128230; <a href="https://github.com/Shopify/react-native-skia/releases/tag/v2.11.0">Skia 2.11 - Updates Skia engine, drive multiple animated props from one shared value</a></p></li><li><p>&#128230; <a href="https://github.com/callstackincubator/rozenite/releases/tag/v2.1.0">Rozenite 2.1 - Unified plugin UI, feature flags plugin, agent skills CLI</a></p></li><li><p>&#128230; <a href="https://github.com/getsentry/sentry-react-native/releases/tag/8.23.0">Sentry 8.23 - Swift pod migration</a> - Action required for RN &lt; 0.75, <code>use_modular_headers!</code> is required in the Podfile now that RNSentry ships Swift</p></li><li><p>&#128230; <a href="https://github.com/software-mansion/react-native-screens/releases/tag/4.27.0">Screens 4.27 - RN 0.87 support, experimental </a><code>ScrollToTopGuard</code></p></li><li><p>&#128230; <a href="https://maestro.dev/blog/maestro-cli-2-8-0">Maestro 2.8 - Swipe from a point inside an element, variables in permissions, screenshot tresholds, and Maestro Cloud improvements</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion/enriched-markdown/releases/tag/v1.0.0">Enriched Markdown 1.0 - First stable release: block-editing input pipeline, iOS SwiftUI renderer</a></p></li><li><p>&#128230; <a href="https://github.com/callstack/react-native-pager-view/releases/tag/v9.0.0">Pager View 9.0 - Replaces legacy pager implementation with Jetpack Compose on Android</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion/react-native-gesture-handler/releases/tag/v3.2.0">Gesture Handler 3.2 - </a><code>Pressable</code><a href="https://github.com/software-mansion/react-native-gesture-handler/releases/tag/v3.2.0"> on </a><code>Touchable</code><a href="https://github.com/software-mansion/react-native-gesture-handler/releases/tag/v3.2.0">, hover callbacks, Strict TS API, AGP 9</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion/react-native-reanimated/releases/tag/worklets-0.12.0">Worklets 0.12 - WeakRef on worklet runtimes, Bundle Mode loading on par with RN, </a><code>enableLocking</code><a href="https://github.com/software-mansion/react-native-reanimated/releases/tag/worklets-0.12.0"> option</a></p></li><li><p>&#128230; <a href="https://github.com/margelo/react-native-nitro-fetch/releases/tag/v1.6.0">Nitro Fetch 1.6 - tvOS support, shared iOS URLCache, prefetch cache fixes</a></p></li><li><p>&#128230; <a href="https://github.com/JubaKitiashvili/expo-pretext/releases/tag/v1.2.0">Expo Pretext 1.2 - Fixes Android module that never compiled, web font measurement fix</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion/argent/releases/tag/v0.20.0">Argent 0.20 - Concurrent flow recordings, Chromium per launch step, MCP registry, .env secrets</a></p></li><li><p>&#128230; <a href="https://github.com/appandflow/react-native-safe-area-context/releases/tag/v5.9.0">Safe Area Context 5.9 - AGP 9 support, web resize/inset fixes</a></p></li><li><p>&#129302; <a href="https://expo.dev/services/tuft">Expo Tuft - Higher-order agent reachable from Slack/iMessage, runs on an always-on machine</a> - Technical preview of a new Expo AI product.</p></li><li><p>&#129302; <a href="https://github.com/margelo/ai-chat-demo">MargeloChat - Open-source ChatGPT-style RN AI chat app with RAG and streaming</a></p></li><li><p>&#129302; <a href="https://github.com/joshuayoes/ios-simulator-mcp/releases/tag/v2.1.0">iOS Simulator MCP 2.1 - App lifecycle tools: terminate_app, open_url, list_apps</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=eiGcqvji4nk">Callstack - Can a Specialized Model Beat Frontier Models at React Native?</a></p></li><li><p>&#127897;&#65039; <a href="https://infinite.red/react-native-radio/rnr-369-rnr-explains-appregistry">RNR 369 - AppRegistry Explained</a> - Breaks down RN&#8217;s AppRegistry. What&#8217;s under the hood. From Expo and app entry points to brownfield apps and more.</p></li><li><p>&#127897;&#65039; <a href="https://infinite.red/react-native-radio/rnr-370-copilotkit-with-mike-ryan">RNR 370 - CopilotKit with Mike Ryan</a> - Bringing AI agents to RN apps. Breaks down of AG-UI, generative UI, shared state, and the guardrails needed for trustworthy experiences.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hvDo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hvDo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hvDo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0099611e-900e-479b-81c2-b525d68ee955_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hvDo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128256; Other</strong></h2><ul><li><p>&#128220; <a href="https://portswigger.net/research/css-the-bomb-inside-your-inbox">CSS: the bomb inside your inbox</a> - Novel hacking techniques showing how CSS sanitizers in Gmail/Outlook/Fastmail can be worked around to steal tokens, hijack clicks, or keylog passwords.</p></li><li><p>&#128220; <a href="https://green.sapphi.red/blog/how-variable-mangling-works-in-oxc-minifier">How Variable Mangling Works in Oxc Minifier</a> - Replacing original variable names with shorter ones with a slot assignment algorithm.</p></li><li><p>&#128230; <a href="https://nodejs.org/en/blog/release/v26.7.0">Node.js 26.7 - Perfetto tracing support</a></p></li><li><p>&#128230; <a href="https://astro.build/blog/astro-720/">Astro 7.2 - Incremental static builds, opt out of session support</a></p></li><li><p>&#128230; <a href="https://pnpm.io/blog/whats-different-in-pnpm-12">pnpm 12.0 RC</a> - pnpm 12 has been rewritten in Rust and should be easy to adopt, apart from 5 things that differ.</p></li><li><p>&#128230; <a href="https://main.vitest.dev/guide/migration.html#vitest-5">Vitest 5.0 RC - Clear mocks by default, fake timers now mock Temporal, and more</a> - Stable version expected in 2-3 weeks, check the full v5 migration guide.</p></li><li><p>&#128230; <a href="https://www.solidjs.com/blog/solid-2-0-rc-the-big-reveal">Solid 2.0 RC - First-class async support, new Rust-based compiler toolchain, simpler API surface</a></p></li><li><p>&#128230; <a href="https://svelte.dev/blog/sveltekit-3-release-candidate">SvelteKit 3.0 RC - Vite 8 + Rolldown, error boundaries, validated env vars, remote functions</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hvDo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hvDo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hvDo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0099611e-900e-479b-81c2-b525d68ee955_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hvDo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!hvDo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0099611e-900e-479b-81c2-b525d68ee955_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#129325; Fun</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3dIK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad142e02-e778-4f4b-8f85-7c3611b461d2_1000x687.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3dIK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad142e02-e778-4f4b-8f85-7c3611b461d2_1000x687.jpeg 424w, https://substackcdn.com/image/fetch/$s_!3dIK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad142e02-e778-4f4b-8f85-7c3611b461d2_1000x687.jpeg 848w, https://substackcdn.com/image/fetch/$s_!3dIK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad142e02-e778-4f4b-8f85-7c3611b461d2_1000x687.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!3dIK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad142e02-e778-4f4b-8f85-7c3611b461d2_1000x687.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3dIK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad142e02-e778-4f4b-8f85-7c3611b461d2_1000x687.jpeg" width="1000" height="687" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ad142e02-e778-4f4b-8f85-7c3611b461d2_1000x687.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:687,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!3dIK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad142e02-e778-4f4b-8f85-7c3611b461d2_1000x687.jpeg 424w, https://substackcdn.com/image/fetch/$s_!3dIK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad142e02-e778-4f4b-8f85-7c3611b461d2_1000x687.jpeg 848w, https://substackcdn.com/image/fetch/$s_!3dIK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad142e02-e778-4f4b-8f85-7c3611b461d2_1000x687.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!3dIK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad142e02-e778-4f4b-8f85-7c3611b461d2_1000x687.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ddny!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e6ef8d1-b74a-428c-82de-33445d1b32db_1000x867.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ddny!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e6ef8d1-b74a-428c-82de-33445d1b32db_1000x867.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ddny!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e6ef8d1-b74a-428c-82de-33445d1b32db_1000x867.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ddny!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e6ef8d1-b74a-428c-82de-33445d1b32db_1000x867.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ddny!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e6ef8d1-b74a-428c-82de-33445d1b32db_1000x867.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ddny!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e6ef8d1-b74a-428c-82de-33445d1b32db_1000x867.jpeg" width="1000" height="867" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4e6ef8d1-b74a-428c-82de-33445d1b32db_1000x867.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:867,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!ddny!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e6ef8d1-b74a-428c-82de-33445d1b32db_1000x867.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ddny!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e6ef8d1-b74a-428c-82de-33445d1b32db_1000x867.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ddny!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e6ef8d1-b74a-428c-82de-33445d1b32db_1000x867.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ddny!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e6ef8d1-b74a-428c-82de-33445d1b32db_1000x867.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>See ya! &#128075;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[This Week In React 293]]></title><description><![CDATA[Next.js, TanStack, browser(), React Aria, MobX, SWR, WebMCP, R3F | PlainText, Vision Camera, Gesture Handler, Expo Simulators, Firebase, Voltra, AppControlBench | Stacked PRs, Flue, Node, script]]></description><link>https://substack.thisweekinreact.com/p/this-week-in-react-293</link><guid isPermaLink="false">https://substack.thisweekinreact.com/p/this-week-in-react-293</guid><dc:creator><![CDATA[Sébastien Lorber]]></dc:creator><pubDate>Fri, 14 Aug 2026 12:00:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!W9Fh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F993c2320-cf5a-4850-ae45-ac475aec4a21_2400x1256.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi everyone, Kasia and Kuba from <a href="https://swmansion.com/">Software Mansion</a> here.</p><p>This week, Next.js 16.3 officially shipped, bringing Instant Navigations to the App Router and cutting dev server RAM usage by up to 90%.</p><p>On the React Native side, a new, faster PlainText component and a deep dive into Vision Camera v5.</p><p>Across the broader dev ecosystem, GitHub stacked PRs finally entered public preview with native base retargeting and a gh-stack CLI.</p><p>Let&#8217;s dive in!</p><p><strong>&#127965;&#65039;FYI: we&#8217;re taking a break next week; see you soon!</strong></p><p>As always, thanks for supporting us on your favorite platform:</p><ul><li><p>&#129419; <a href="https://slo.im/last/b">Bluesky</a></p></li><li><p>&#10006;&#65039; <a href="https://slo.im/last/x">X / Twitter</a></p></li><li><p>&#128084; <a href="https://slo.im/last/l">LinkedIn</a></p></li><li><p>&#128125; <a href="https://slo.im/last/r">Reddit</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PF-E!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e444617-0af7-4826-b1eb-084cf9501791_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PF-E!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e444617-0af7-4826-b1eb-084cf9501791_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!PF-E!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e444617-0af7-4826-b1eb-084cf9501791_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!PF-E!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e444617-0af7-4826-b1eb-084cf9501791_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!PF-E!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e444617-0af7-4826-b1eb-084cf9501791_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PF-E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e444617-0af7-4826-b1eb-084cf9501791_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0e444617-0af7-4826-b1eb-084cf9501791_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Evan Bacon&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Evan Bacon" title="Evan Bacon" srcset="https://substackcdn.com/image/fetch/$s_!PF-E!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e444617-0af7-4826-b1eb-084cf9501791_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!PF-E!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e444617-0af7-4826-b1eb-084cf9501791_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!PF-E!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e444617-0af7-4826-b1eb-084cf9501791_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!PF-E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e444617-0af7-4826-b1eb-084cf9501791_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/Baconbrix">Evan Bacon</a></strong><a href="https://twitter.com/Baconbrix">Engineering Manager - Expo</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!N82c!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!N82c!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!N82c!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!N82c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/147953a0-dd3a-4d14-8347-94665becee45_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!N82c!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!N82c!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0fSj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6713081a-7796-46e2-a9cb-fa1b40bb8091_2816x1472.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0fSj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6713081a-7796-46e2-a9cb-fa1b40bb8091_2816x1472.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0fSj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6713081a-7796-46e2-a9cb-fa1b40bb8091_2816x1472.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0fSj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6713081a-7796-46e2-a9cb-fa1b40bb8091_2816x1472.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0fSj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6713081a-7796-46e2-a9cb-fa1b40bb8091_2816x1472.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0fSj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6713081a-7796-46e2-a9cb-fa1b40bb8091_2816x1472.jpeg" width="1456" height="761" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6713081a-7796-46e2-a9cb-fa1b40bb8091_2816x1472.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:761,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Ship AI generated code safely with Meticulous.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Ship AI generated code safely with Meticulous." title="Ship AI generated code safely with Meticulous." srcset="https://substackcdn.com/image/fetch/$s_!0fSj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6713081a-7796-46e2-a9cb-fa1b40bb8091_2816x1472.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0fSj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6713081a-7796-46e2-a9cb-fa1b40bb8091_2816x1472.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0fSj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6713081a-7796-46e2-a9cb-fa1b40bb8091_2816x1472.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0fSj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6713081a-7796-46e2-a9cb-fa1b40bb8091_2816x1472.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q3&amp;utm_content=1st">Ship AI generated code safely with Meticulous.</a></strong></p><p>Claude writes your code. Claude reviews your code. Claude fixes the review comments. And somehow, <em>you&#8217;re</em> the one getting paged at 2am when it breaks in prod.</p><p>Fortunately, top AI-driven teams like Dropbox, Notion, LaunchDarkly, and Wiz rely on Meticulous to run 1000s of e2e UI tests autonomously, covering every user flow, edge case, role and permutation. Built by ex-Palantir engineers, <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q2&amp;utm_content=1st">Meticulous gives you near-exhaustive coverage in weeks, without any developer effort</a>.</p><p>It works like magic in the background:</p><ul><li><p>Near-exhaustive coverage on every test run</p></li><li><p>No test creation</p></li><li><p>No maintenance (seriously)</p></li><li><p>Zero flakes (built on a deterministic browser)</p></li></ul><p><strong>Check it out</strong> - and see why one engineering leader at Dropbox said that &#8220;<a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q2&amp;utm_content=1st#:~:text=Once%20we%20started%20using%20Meticulous%2C%20we%20couldn%27t%20imagine%20working%20without%20it.">once we started using Meticulous, we couldn&#8217;t imagine working without it</a>.&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!N82c!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!N82c!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!N82c!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!N82c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/147953a0-dd3a-4d14-8347-94665becee45_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!N82c!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!N82c!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#9883;&#65039; React</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!W9Fh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F993c2320-cf5a-4850-ae45-ac475aec4a21_2400x1256.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!W9Fh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F993c2320-cf5a-4850-ae45-ac475aec4a21_2400x1256.jpeg 424w, https://substackcdn.com/image/fetch/$s_!W9Fh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F993c2320-cf5a-4850-ae45-ac475aec4a21_2400x1256.jpeg 848w, https://substackcdn.com/image/fetch/$s_!W9Fh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F993c2320-cf5a-4850-ae45-ac475aec4a21_2400x1256.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!W9Fh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F993c2320-cf5a-4850-ae45-ac475aec4a21_2400x1256.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!W9Fh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F993c2320-cf5a-4850-ae45-ac475aec4a21_2400x1256.jpeg" width="1456" height="762" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/993c2320-cf5a-4850-ae45-ac475aec4a21_2400x1256.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:762,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Next.js 16.3 Released: Instant Navigations &amp; 90% RAM Reduction&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Next.js 16.3 Released: Instant Navigations &amp; 90% RAM Reduction" title="Next.js 16.3 Released: Instant Navigations &amp; 90% RAM Reduction" srcset="https://substackcdn.com/image/fetch/$s_!W9Fh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F993c2320-cf5a-4850-ae45-ac475aec4a21_2400x1256.jpeg 424w, https://substackcdn.com/image/fetch/$s_!W9Fh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F993c2320-cf5a-4850-ae45-ac475aec4a21_2400x1256.jpeg 848w, https://substackcdn.com/image/fetch/$s_!W9Fh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F993c2320-cf5a-4850-ae45-ac475aec4a21_2400x1256.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!W9Fh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F993c2320-cf5a-4850-ae45-ac475aec4a21_2400x1256.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://nextjs.org/blog/next-16-3">Next.js 16.3 - Instant Navigations and 90% less RAM in dev</a></strong></p><p>Next.js 16.3 officially shipped with major engine and runtime upgrades. Long dev sessions now use up to 90% less RAM. Turbopack now supports Vite-like <code>import.meta.glob()</code>, and rebuilds get faster thanks to artifact caching. SSR handles up to 22% more requests. TypeScript 7 is supported by default through a new <code>tsc</code> CLI integration. Various AI improvements include versioned docs for agents, skills, and actionable errors. There are also new APIs such as <code>catchError</code> to create custom error boundaries, and <code>next/root-params</code> useful for i18n.</p><p>The core release focuses on Instant Navigations (built on top of Cache Components) to give server-driven apps the snappy responsiveness of an SPA. This signals a clear architectural shift for Next.js: returning to a dynamic-by-default model with fully explicit, predictable caching.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!N82c!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!N82c!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!N82c!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!N82c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/147953a0-dd3a-4d14-8347-94665becee45_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!N82c!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!N82c!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!67dI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37e86963-8eba-4f9d-8da8-cacacc1ca927_1200x630.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!67dI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37e86963-8eba-4f9d-8da8-cacacc1ca927_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!67dI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37e86963-8eba-4f9d-8da8-cacacc1ca927_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!67dI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37e86963-8eba-4f9d-8da8-cacacc1ca927_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!67dI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37e86963-8eba-4f9d-8da8-cacacc1ca927_1200x630.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!67dI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37e86963-8eba-4f9d-8da8-cacacc1ca927_1200x630.jpeg" width="1200" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/37e86963-8eba-4f9d-8da8-cacacc1ca927_1200x630.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;TanStack Table V9&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="TanStack Table V9" title="TanStack Table V9" srcset="https://substackcdn.com/image/fetch/$s_!67dI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37e86963-8eba-4f9d-8da8-cacacc1ca927_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!67dI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37e86963-8eba-4f9d-8da8-cacacc1ca927_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!67dI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37e86963-8eba-4f9d-8da8-cacacc1ca927_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!67dI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37e86963-8eba-4f9d-8da8-cacacc1ca927_1200x630.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://tanstack.com/blog/announcing-tanstack-table-v9">TanStack Table V9</a></strong></p><p>This new major version is finally here, after more than 2 years of work. It lays a new foundation for years to come, with a tree-shakable plugin architecture, state management powered by TanStack Store, new features, major performance improvements, hundreds of bug fixes, and more.</p><p>As a framework-agnostic lib, it comes with many framework-specific adapters, including new ones. The existing ones have been refreshed around a new reactivity model. For React developers specifically, it now supports React 18+, works well with the React Compiler, and unlocks more granular reads based on atoms/selectors to avoid useless re-renders.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!N82c!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!N82c!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!N82c!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!N82c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/147953a0-dd3a-4d14-8347-94665becee45_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!N82c!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!N82c!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://trustedrouter.com/openai-compatible-llm-api?utm_source=thisweekinreact&amp;utm_medium=sponsored_newsletter&amp;utm_campaign=react_link_20260805&amp;utm_content=react_link_openai_compatible">TrustedRouter - Build AI features with hundreds of models through one OpenAI-compatible API with failover and no prompt or output logs</a></p></li><li><p>&#128064; <a href="https://github.com/react/react/pull/37143">React Core PR - </a><code>browser()</code><a href="https://github.com/react/react/pull/37143"> API</a> - Exposes a client-only react-dom API to safely suspend SSR for browser-specific components, eliminating hacky server error-suppression workarounds.</p></li><li><p>&#128220; <a href="https://shubhra.dev/tutorials/react-19-useactionstate">React 19&#8217;s useActionState: Preventing Sequenced Double Submits</a> - Explains how React 19&#8217;s useActionState queue behaves and how to handle <code>isPending</code> states to prevent duplicate submits.</p></li><li><p>&#128220; <a href="https://shubhra.dev/tutorials/nextjs-16-useoptimistic-rollback-pattern">Next.js 16 useOptimistic: Fixing Rapid-Click Race Conditions &amp; Auto-Rollbacks</a> - Covers React 19 optimistic UI edge cases, demonstrating why manual rollback logic is redundant, how to prevent overlapping requests per item, and how to handle Next.js 16 cache revalidation with updateTag.</p></li><li><p>&#128220; <a href="https://howtotestfrontend.com/resources/visual-regression-testing-introduction-guide">Visual Regression Testing: The Most Important Test You&#8217;re Not Running</a> - demonstrates how visual regression tests catch layout and CSS bugs missed by functional tests, with setup examples for E2E test runners and component environments.</p></li><li><p>&#128220; <a href="https://granat.blog/posts/2026-07-24-react-arven/">React Arven: Optimizing React Context Performance for Complex Local State</a> - Introduces a 1.4 kB dependency-free library that uses useSyncExternalStore and stable action refs to eliminate React Context re-renders when orchestrating complex local state.</p></li><li><p>&#128220; <a href="https://boda.sh/blog/generative-ui/">Architectural Patterns for Generative UI in React</a> - Breaks down 3 approaches to letting LLMs build UI dynamically &#8212; schema-constrained output, a declarative JSON spec (A2UI/AG-UI), and open-ended sandboxed code generation</p></li><li><p>&#128184; <a href="https://go.posthog.com/twir-aug5">build mode - Stop being the code review bottleneck</a></p></li><li><p>&#128230; <a href="https://github.com/TanStack/charts">TanStack Charts pre-alpha - Minimal ~8 KiB core, framework-agnostic charting primitives on D3, with first-class React bindings</a></p></li><li><p>&#128230; <a href="https://react-aria.adobe.com/releases/v1-20-0">React Aria 1.20 - Adds PreviewTrigger popovers, TokenField for inline tags, native context menus, interactive table rows, and Next.js 16 RSC collection support</a></p></li><li><p>&#128230; <a href="https://github.com/pmndrs/react-three-fiber/releases/tag/v9.7.0">React Three Fiber 9.7 - Hardens its reconciler to align with react-dom, fixing child desyncs, prop resets, and event priority</a></p></li><li><p>&#128230; <a href="https://github.com/GoogleChromeLabs/use-webmcp-tool">use-webmcp-tool - Experimental project from the Chrome team, a React abstraction for exposing client-side tools to browser AI agents via WebMCP</a></p></li><li><p>&#128230; <a href="https://github.com/mobxjs/mobx/releases/tag/mobx%407.0.0">MobX 7.0 - Drops legacy compatibility, reduces ESM bundle size while maintaining the mobx-react-lite vs mobx-react architecture</a></p></li><li><p>&#128230; <a href="https://github.com/vercel/swr/releases/tag/v2.5.0">SWR 2.5 - Adds experimental RSC data preloading to hydrate client cache without duplicate requests, plus a new </a><code>unload()</code><a href="https://github.com/vercel/swr/releases/tag/v2.5.0"> API to purge cache and abort in-flight queries</a></p></li><li><p>&#128230; <a href="https://github.com/react-hook-form/react-hook-form/releases/tag/v7.84.0">React Hook Form 7.84 - Enhances </a><code>&lt;Form /&gt;</code><a href="https://github.com/react-hook-form/react-hook-form/releases/tag/v7.84.0"> submit behavior, improves performance, reduces bundle size</a></p></li><li><p>&#128230; <a href="https://base-ui.com/react/overview/releases/v1-7-0">BaseUI 1.7 - Reduces bundle size (~3%), enhances mobile UX and </a><code>&lt;ScrollArea.Thumb&gt;</code><a href="https://base-ui.com/react/overview/releases/v1-7-0"> overscroll feedback, and bundles accessibility and bug fixes</a></p></li><li><p>&#128230; <a href="https://github.com/facebook/astryx/releases/tag/v0.2.0">Astryx 0.2 - RTL auto-mirroring with a dedicated ESLint rule, tooltip status variant for inputs, scriptable CLI engine APIs, removed TabList orientation and CLI JSON types</a></p></li><li><p>&#128230; <a href="https://reactbits.dev/">React Bits upgrade - 27 new React components for creative developers</a></p></li><li><p>&#128230; <a href="https://github.com/styled-components/styled-components/releases/tag/styled-components%406.5.0">Styled Components 6.5 - Much faster type-checking, stricter RN styles, new CustomStyle type helper</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!X2A0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b92ad92-f490-41a7-a5f1-85f5aab6337f_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!X2A0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b92ad92-f490-41a7-a5f1-85f5aab6337f_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!X2A0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b92ad92-f490-41a7-a5f1-85f5aab6337f_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!X2A0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b92ad92-f490-41a7-a5f1-85f5aab6337f_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!X2A0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b92ad92-f490-41a7-a5f1-85f5aab6337f_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!X2A0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b92ad92-f490-41a7-a5f1-85f5aab6337f_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5b92ad92-f490-41a7-a5f1-85f5aab6337f_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Mike Grabowski&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Mike Grabowski" title="Mike Grabowski" srcset="https://substackcdn.com/image/fetch/$s_!X2A0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b92ad92-f490-41a7-a5f1-85f5aab6337f_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!X2A0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b92ad92-f490-41a7-a5f1-85f5aab6337f_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!X2A0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b92ad92-f490-41a7-a5f1-85f5aab6337f_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!X2A0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b92ad92-f490-41a7-a5f1-85f5aab6337f_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/grabbou">Mike Grabowski</a></strong><a href="https://twitter.com/grabbou">CTO and founder - Callstack</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!N82c!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!N82c!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!N82c!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!N82c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/147953a0-dd3a-4d14-8347-94665becee45_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!N82c!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!N82c!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!L5ud!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff68c0e5f-9631-4a69-9f5a-f772e1ff41aa_1200x600.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!L5ud!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff68c0e5f-9631-4a69-9f5a-f772e1ff41aa_1200x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!L5ud!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff68c0e5f-9631-4a69-9f5a-f772e1ff41aa_1200x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!L5ud!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff68c0e5f-9631-4a69-9f5a-f772e1ff41aa_1200x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!L5ud!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff68c0e5f-9631-4a69-9f5a-f772e1ff41aa_1200x600.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!L5ud!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff68c0e5f-9631-4a69-9f5a-f772e1ff41aa_1200x600.jpeg" width="1200" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f68c0e5f-9631-4a69-9f5a-f772e1ff41aa_1200x600.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Stop Rebuilding Forms for Every Business Change&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Stop Rebuilding Forms for Every Business Change" title="Stop Rebuilding Forms for Every Business Change" srcset="https://substackcdn.com/image/fetch/$s_!L5ud!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff68c0e5f-9631-4a69-9f5a-f772e1ff41aa_1200x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!L5ud!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff68c0e5f-9631-4a69-9f5a-f772e1ff41aa_1200x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!L5ud!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff68c0e5f-9631-4a69-9f5a-f772e1ff41aa_1200x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!L5ud!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff68c0e5f-9631-4a69-9f5a-f772e1ff41aa_1200x600.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://surveyjs.io/?utm_source=this-week-in-react&amp;utm_medium=email">Stop Rebuilding Forms for Every Business Change</a></strong></p><p>Hardcoded forms create a costly cycle: every new field, workflow, validation rule or customer-specific variation becomes another development task, code review and deployment.</p><p>SurveyJS breaks that cycle. Developers <a href="https://surveyjs.io/try/reactjs">embed a JSON-powered form builder</a> and reusable form runtime into their React application once. Business teams can then create and update forms through configuration rather than application code.</p><ul><li><p>Ship new forms faster</p></li><li><p>Reduce repetitive frontend work</p></li><li><p>Launch form changes without waiting for a release cycle</p></li><li><p>Keep full control over your backend, data, security, and branding</p></li></ul><p>Your developers own the platform. Your business teams manage the forms. &#128578;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!N82c!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!N82c!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!N82c!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!N82c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/147953a0-dd3a-4d14-8347-94665becee45_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!N82c!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!N82c!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128241; React-Native</strong></h2><ul><li><p>&#128184; <a href="https://crisp.chat/?utm_source=twir&amp;utm_medium=newsletter&amp;utm_campaign=crisp_q3_nl&amp;utm_content=5aug26">Crisp - Add customer support chat to your React Native app with our SDK for iOS, Android and Expo</a></p></li><li><p>&#128038; <a href="https://x.com/swmansion/status/2082488629167841415?s=20">Faster touchables in Gesture Handler coming soon</a> - RNGH&#8217;s Touchable rendered ~300ms faster than RN&#8217;s Pressable in a list with 1000 buttons in one of the benchmarks, definitely worth keeping an eye on this!</p></li><li><p>&#128064; <a href="https://expo.dev/services/simulators">Simulators for agents from Expo coming soon</a> - Expo announced a waitlist for on-demand cloud simulators. This helps AI agents build, run, and visually verify app changes.</p></li><li><p>&#128214; <a href="https://docs.swmansion.com/react-native-gesture-handler/docs/fundamentals/callbacks-events/#gestureevent-callbacks">Gesture Handler Docs - New interactive docs on callbacks &amp; events</a> - You can now see the callbacks chain and get a better understanding of how they resolve.</p></li><li><p>&#128220; <a href="https://blog.margelo.com/on-device-face-recognition-react-native">Building a Real-Time Face Recognition App in React Native with VisionCamera</a> - a full on-device pipeline built on VisionCamera&#8217;s frame processors, ONNX Runtime, and OpenCV - with real benchmarks and hard-won lessons like mirrored-frame bugs.</p></li><li><p>&#128220; <a href="https://www.callstack.com/blog/migration-to-react-native-in-2026-starts-with-a-delivery-question">Migration to React Native in 2026 Starts With a Delivery Question</a>: brownfield vs. greenfield migration is a choice around how you ship. Also, a useful take on where AI agents help the port - and where they don&#8217;t.</p></li><li><p>&#128184; <a href="https://configcat.com/blog/ab-testing-react-native-apps-with-feature-flags/?utm_source=thisweekinreact_newsletter&amp;utm_medium=sponsor&amp;utm_campaign=reactnative_20260805">ConfigCat - Run A/B Tests in React Native Apps with Feature Flags and Amplitude</a></p></li><li><p>&#128230; <a href="https://github.com/mdjastrzebski/react-native-plain-text">React Native Plain Text</a> - A faster, lower memory alternative to use for simple texts, currently limited to static, single-style text. It&#8217;s faster than RN&#8217;s core `&lt;Text&gt;` component, and also outperforms the raw <code>NativeText/RCTText</code> according to &#120143; <a href="https://x.com/mdj_dev/status/2082461349196534119">the author&#8217;s benchmark</a>.</p></li><li><p>&#128230; <a href="https://github.com/software-mansion/react-native-enriched-html/releases/tag/v1.1.0%20">Enriched HTML 1.1 - Stable web support with full feature parity</a></p></li><li><p>&#128230; <a href="https://github.com/invertase/react-native-firebase/blob/main/packages/app/CHANGELOG.md%20">React Native Firebase App 26.1 - migrated to turbo Modules, requires new architecture</a></p></li><li><p>&#128230; <a href="https://github.com/kadiraydinli/react-native-system-navigation-bar/releases/tag/v3.0.0">React Native System Navigation Bar 3.0 - Rewritten on new architecture</a></p></li><li><p>&#128230; <a href="https://github.com/sbaiahmed1/react-native-blur/releases/tag/v5.0.0">React Native Blur 5.0 - Requires new architecture and RN 0.80+, raw native components deprecated, added ref forwarding and react-native-web support</a></p></li><li><p>&#128230; <a href="https://github.com/getsentry/sentry-react-native/releases/tag/8.21.0%20">Sentry 8.21 - Improved session replay details</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion/argent/releases/tag/v0.18.0">Argent 0.18 - Rotate directive for flow automation, single-element snapshot diffs, human-readable tool-server logging, CSS combinator flow selectors</a></p></li><li><p>&#128230; <a href="https://github.com/callstackincubator/voltra/releases/tag/v2.2.0">Voltra 2.2 - Improved build stability, runtime props support</a></p></li><li><p>&#128230; <a href="https://github.com/RevenueCat/react-native-purchases/releases/tag/10.6.0">React Native Purchases 10.6 - Supports multipage paywalls</a></p></li><li><p>&#128230; <a href="https://github.com/appandflow/react-native-ease/releases/tag/v0.8.0">React Native Ease 0.8 - Initial velocity for spring transitions, iOS retain-cycle fix</a></p></li><li><p>&#129302; <a href="https://appcontrolbench.swmansion.com/">AppControlBench - Compare models, tools, cost, and test runs across real iOS app-control tasks</a> - AI benchmark comparing the performance of tools such as Argent and Agent-Device with various models.</p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=fEn-PQXBp28">Callstack - Build a React Native News Agent With Eve</a></p></li><li><p>&#127897;&#65039; <a href="https://www.callstack.com/podcasts/visioncamera-v5-with-marc-rousavy">React Universe on Air - VisionCamera V5 With Marc Rousavy</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!N82c!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!N82c!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!N82c!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!N82c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/147953a0-dd3a-4d14-8347-94665becee45_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!N82c!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!N82c!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128256; Other</strong></h2><ul><li><p>&#128227; <a href="https://github.blog/changelog/2026-07-30-stacked-pull-requests-are-now-in-public-preview/">GitHub stacked PRs now in public preview</a> - Adding native PR stacking with automatic base retargeting, partial merges, and official CLI (gh-stack) integration.</p></li><li><p>&#128220; <a href="https://www.bram.us/2026/07/30/styling-the-navigation-declarative-route-and-navigation-matching-in-css/">Declarative Route and Navigation Matching in CSS</a> - A proposed W3C CSS spec that moves route-based view-transition logic out of JS.</p></li><li><p>&#128220; <a href="https://github.blog/security/supply-chain-security/disrupting-supply-chain-attacks-on-npm-and-github-actions/">Disrupting supply chain attacks on npm and GitHub Actions</a> - Summary of the changes shipped across npm and GitHub Actions in the past few months, aimed to disrupt supply chain attack techniques and limit their impact.</p></li><li><p>&#128230; <a href="https://flueframework.com/blog/flue-2/">Flue 2.0 - &#8220;React for Agents&#8221;</a> - introduces a hooks-based architecture (useModel, useTool, usePersistentState) that replaces static configuration with dynamic agents capable of swapping models and capabilities at runtime.</p></li><li><p>&#128230; <a href="https://github.com/solidjs/solid-start/discussions/2281">SolidStart 2.0 - Modernizes the foundation for building full-stack applications with Solid v1</a></p></li><li><p>&#128230; <a href="https://nodejs.org/en/blog/release/v24.19.0">Node 24.19 - Stabilized </a><code>stream.compose</code><a href="https://nodejs.org/en/blog/release/v24.19.0">, new TLS/TCP configuration options, </a><code>--experimental-import-text flag</code><a href="https://nodejs.org/en/blog/release/v24.19.0">, custom buffers in </a><code>fs.readFile()</code></p></li><li><p>&#128230; <a href="https://scriptc.dev/">scriptc - Compile TypeScript to tiny native binaries (no Node/V8)</a></p></li><li><p>&#128230; <a href="https://github.com/vitejs/vite/blob/v8.2.0/packages/vite/CHANGELOG.md#820-2026-07-30">Vite 8.2 - Top-level </a><code>input</code><a href="https://github.com/vitejs/vite/blob/v8.2.0/packages/vite/CHANGELOG.md#820-2026-07-30"> option (bypassing </a><code>build.rolldownOptions</code><a href="https://github.com/vitejs/vite/blob/v8.2.0/packages/vite/CHANGELOG.md#820-2026-07-30">), warns for unsupported native loader features, PostCSS config types, and dev URLs labeled by interface</a></p></li><li><p>&#128230; <a href="https://github.com/honojs/hono/releases/tag/v4.13.0">Hono 4.13 - Up to 1.25x perf gains, adds HTTP QUERY method support, a Method Not Allowed middleware, and various improvements</a></p></li><li><p>&#128230; <a href="https://pnpm.io/blog/releases/11.20">pnpm 11.20 - Fixes multi-registry package substitution vulnerability with registry-qualified keys</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!N82c!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!N82c!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!N82c!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!N82c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/147953a0-dd3a-4d14-8347-94665becee45_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!N82c!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!N82c!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!N82c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F147953a0-dd3a-4d14-8347-94665becee45_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#129325; Fun</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2rhM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb097e103-c913-4962-8a1e-0c4b73939eaf_1070x940.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2rhM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb097e103-c913-4962-8a1e-0c4b73939eaf_1070x940.jpeg 424w, https://substackcdn.com/image/fetch/$s_!2rhM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb097e103-c913-4962-8a1e-0c4b73939eaf_1070x940.jpeg 848w, https://substackcdn.com/image/fetch/$s_!2rhM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb097e103-c913-4962-8a1e-0c4b73939eaf_1070x940.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!2rhM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb097e103-c913-4962-8a1e-0c4b73939eaf_1070x940.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2rhM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb097e103-c913-4962-8a1e-0c4b73939eaf_1070x940.jpeg" width="1070" height="940" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b097e103-c913-4962-8a1e-0c4b73939eaf_1070x940.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:940,&quot;width&quot;:1070,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!2rhM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb097e103-c913-4962-8a1e-0c4b73939eaf_1070x940.jpeg 424w, https://substackcdn.com/image/fetch/$s_!2rhM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb097e103-c913-4962-8a1e-0c4b73939eaf_1070x940.jpeg 848w, https://substackcdn.com/image/fetch/$s_!2rhM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb097e103-c913-4962-8a1e-0c4b73939eaf_1070x940.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!2rhM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb097e103-c913-4962-8a1e-0c4b73939eaf_1070x940.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>See ya! &#128075;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[This Week In React 292]]></title><description><![CDATA[Octane, TanStack, StableRef, Next.js, Canvas UI, Reassure, CSS-in-JS | Workers, SafeAreaView, backgroundImage, WebGPU, VisionCamera, React Navigation, Canvas Kit, Nitro | TC39, Web Vitals, Playwright]]></description><link>https://substack.thisweekinreact.com/p/this-week-in-react-292</link><guid isPermaLink="false">https://substack.thisweekinreact.com/p/this-week-in-react-292</guid><dc:creator><![CDATA[Sébastien Lorber]]></dc:creator><pubDate>Fri, 31 Jul 2026 16:07:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!c5r8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb01eb7f-892a-43d5-b2e4-575d2f8b5557_1200x630.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi everyone, <a href="https://x.com/sebastienlorber">Seb</a> and <a href="https://x.com/jaworek3211">Jan</a> here &#128075;!</p><p>This week we have an interesting React challenger, keeping its mental model but compiled ahead of time. Also various major announcements from the TanStack side.</p><p>On the mobile side, we have interesting RN 0.87 PRs to look at, discussions around workers / worklets, a WebGPU/Skia integration, and React Navigation 8 / Screens 5 progress.</p><p>Last week, many proposals progressed during a TC39 meeting. npm is going to scan for malware at publish time. Core Web Vitals will now measure SPA soft navigation.</p><p>Let&#8217;s dive in!</p><p>As always, thanks for supporting us on your favorite platform:</p><ul><li><p>&#129419; <a href="https://slo.im/last/b">Bluesky</a></p></li><li><p>&#10006;&#65039; <a href="https://slo.im/last/x">X / Twitter</a></p></li><li><p>&#128084; <a href="https://slo.im/last/l">LinkedIn</a></p></li><li><p>&#128125; <a href="https://slo.im/last/r">Reddit</a></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6BAJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba3b0380-68ad-45d4-a40a-48873718d93d_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6BAJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba3b0380-68ad-45d4-a40a-48873718d93d_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!6BAJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba3b0380-68ad-45d4-a40a-48873718d93d_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!6BAJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba3b0380-68ad-45d4-a40a-48873718d93d_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!6BAJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba3b0380-68ad-45d4-a40a-48873718d93d_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6BAJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba3b0380-68ad-45d4-a40a-48873718d93d_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ba3b0380-68ad-45d4-a40a-48873718d93d_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Jack Herrington&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Jack Herrington" title="Jack Herrington" srcset="https://substackcdn.com/image/fetch/$s_!6BAJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba3b0380-68ad-45d4-a40a-48873718d93d_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!6BAJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba3b0380-68ad-45d4-a40a-48873718d93d_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!6BAJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba3b0380-68ad-45d4-a40a-48873718d93d_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!6BAJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba3b0380-68ad-45d4-a40a-48873718d93d_400x400.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/jherr">Jack Herrington</a></strong><a href="https://twitter.com/jherr">Principal Engineer - Youtuber</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jTuM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jTuM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jTuM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jTuM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!z6WY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb70cdfe2-128f-4e73-b73b-7b9907f036f4_2816x1472.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!z6WY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb70cdfe2-128f-4e73-b73b-7b9907f036f4_2816x1472.jpeg 424w, https://substackcdn.com/image/fetch/$s_!z6WY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb70cdfe2-128f-4e73-b73b-7b9907f036f4_2816x1472.jpeg 848w, https://substackcdn.com/image/fetch/$s_!z6WY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb70cdfe2-128f-4e73-b73b-7b9907f036f4_2816x1472.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!z6WY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb70cdfe2-128f-4e73-b73b-7b9907f036f4_2816x1472.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!z6WY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb70cdfe2-128f-4e73-b73b-7b9907f036f4_2816x1472.jpeg" width="1456" height="761" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b70cdfe2-128f-4e73-b73b-7b9907f036f4_2816x1472.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:761,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Ship AI generated code safely with Meticulous.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Ship AI generated code safely with Meticulous." title="Ship AI generated code safely with Meticulous." srcset="https://substackcdn.com/image/fetch/$s_!z6WY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb70cdfe2-128f-4e73-b73b-7b9907f036f4_2816x1472.jpeg 424w, https://substackcdn.com/image/fetch/$s_!z6WY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb70cdfe2-128f-4e73-b73b-7b9907f036f4_2816x1472.jpeg 848w, https://substackcdn.com/image/fetch/$s_!z6WY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb70cdfe2-128f-4e73-b73b-7b9907f036f4_2816x1472.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!z6WY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb70cdfe2-128f-4e73-b73b-7b9907f036f4_2816x1472.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q3&amp;utm_content=1st">Ship AI generated code safely with Meticulous.</a></strong></p><p>Claude writes your code. Claude reviews your code. Claude fixes the review comments. And somehow, <em>you&#8217;re</em> the one getting paged at 2am when it breaks in prod.</p><p>Fortunately, top AI-driven teams like Dropbox, Notion, LaunchDarkly, and Wiz rely on Meticulous to run 1000s of e2e UI tests autonomously, covering every user flow, edge case, role and permutation. Built by ex-Palantir engineers, <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q3&amp;utm_content=1st">Meticulous gives you near-exhaustive coverage in weeks, without any developer effort</a>.</p><p>It works like magic in the background:</p><ul><li><p>Near-exhaustive coverage on every test run</p></li><li><p>No test creation</p></li><li><p>No maintenance (seriously)</p></li><li><p>Zero flakes (built on a deterministic browser)</p></li></ul><p><strong>Check it out</strong> - and see why one engineering leader at Dropbox said that &#8220;<a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q3&amp;utm_content=1st#:~:text=Once%20we%20started%20using%20Meticulous%2C%20we%20couldn%27t%20imagine%20working%20without%20it.">once we started using Meticulous, we couldn&#8217;t imagine working without it</a>.&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jTuM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jTuM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jTuM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jTuM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#9883;&#65039; React</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!c5r8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb01eb7f-892a-43d5-b2e4-575d2f8b5557_1200x630.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!c5r8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb01eb7f-892a-43d5-b2e4-575d2f8b5557_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!c5r8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb01eb7f-892a-43d5-b2e4-575d2f8b5557_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!c5r8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb01eb7f-892a-43d5-b2e4-575d2f8b5557_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!c5r8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb01eb7f-892a-43d5-b2e4-575d2f8b5557_1200x630.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!c5r8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb01eb7f-892a-43d5-b2e4-575d2f8b5557_1200x630.jpeg" width="1200" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fb01eb7f-892a-43d5-b2e4-575d2f8b5557_1200x630.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Octane &#8211; React's programming model, compiled&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Octane &#8211; React's programming model, compiled" title="Octane &#8211; React's programming model, compiled" srcset="https://substackcdn.com/image/fetch/$s_!c5r8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb01eb7f-892a-43d5-b2e4-575d2f8b5557_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!c5r8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb01eb7f-892a-43d5-b2e4-575d2f8b5557_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!c5r8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb01eb7f-892a-43d5-b2e4-575d2f8b5557_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!c5r8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb01eb7f-892a-43d5-b2e4-575d2f8b5557_1200x630.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://octanejs.dev/">Octane &#8211; React&#8217;s programming model, compiled</a></strong></p><p>Dominic Gannaway &#8211; former React/Svelte team member, creator of Inferno &#8211; unveiled his new project, Octane, as a successor to Inferno.</p><p>It keeps React&#8217;s programming model, but compiles Hooks, Suspense, and Actions ahead of time. It improves performance, removing the Virtual DOM and using native browser events. You don&#8217;t need to respect the rules of hooks or to maintain dependency arrays manually. You can use it with JSX/TSX, but it also supports <a href="https://tsrx.dev/">TSRX</a> to improve your developer experience.</p><p>This looks like a quite serious React challenger using the same mental model, already receiving contributions from maintainers of popular project. It comes from day 1 with integrations for libraries such as TanStack, React Three Fiber, Lynx, StyleX, NativeScript, and more.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jTuM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jTuM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jTuM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jTuM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://blog.sentry.io/logging-best-practices/?utm_source=thisweekinreact&amp;utm_medium=paid-community&amp;utm_campaign=logs-fy27q2-evergreen&amp;utm_content=newsletter-react-link-logging-blog-learnmore">Sentry - Stop logging everything. Learn what&#8217;s worth capturing and how to structure it properly.</a></p></li><li><p>&#128064; <a href="https://preview.nextjs.org/docs/app/guides/offline-support">Next.js docs preview - Offline support</a> - With <code>experimental.useOffline</code> enabled, Next.js will no longer throw when the network is down, keeping requests pending with a retry.</p></li><li><p>&#128467;&#65039; <a href="https://reactadvanced.com/?utm_source=thisweekinreact">React Advanced London</a> - &#127468;&#127463; London - 23 &amp; 26 Oct. First speakers announced: TanStack Maintainer, Engineer at Vercel, Apollo TypeScript Client maintainer &amp; more. All in a historic ex-brewery. Get 10% off with code &#8220;TWIR&#8221;.</p></li><li><p>&#128220; <a href="https://tanstack.com/blog/we-stopped-using-rsc-on-tanstack-com">TanStack - We Stopped Using RSC on</a> <a href="http://tanstack.com/">TanStack.com</a> - Tanner explains why the TanStack website adopted RSC in the first place, keeping heavy dependencies like the Shiki syntax highlighter on the server. But the maths change if the heavy libraries become smaller: it&#8217;s better to use SSR, ship a small lib once and render multiple times on the client than to render each blog post on the server and ship an RSC/Flight payload. To achieve better performance with SSR, TanStack had to introduce 2 new deliberately small projects: <a href="https://tanstack.com/blog/introducing-tanstack-markdown-and-highlight">TanStack Markdown and TanStack Highlight</a>, available in alpha. In TanStack Start, you can freely decide to use SSR or RSC when it makes sense.</p></li><li><p>&#128220; <a href="https://www.jovidecroock.com/blog/referential-stability-types/">Making Referential Stability a Type</a> - A really cool idea to tag memoized values directly in the type system with <code>Stable&lt;T&gt;</code>. With <code>stableref/react</code>, you can enforce APIs to use memoized values and get compilation errors if props or dependency array elements are not memoized.</p></li><li><p>&#128220; <a href="https://aurorascharff.no/posts/experimenting-with-rsc-for-performance-and-ux-in-nextjs/">Experimenting with RSCs for Performance and UX in Next.js</a> - 3 Next.js 16.3 experiments to keep work on the server: pagination via <code>?page=</code>, a search field that keeps focus while results stream, JSX from actions.</p></li><li><p>&#128220; <a href="https://xabierlameiro.com/blog/nextjs/nextjs-memory-leak-in-production">How to find a Next.js memory leak in production</a> - 3 memory leaks in Next.js and how to spot each in heap snapshots. These have recently been fixed by Dan Abramov for v16.3.</p></li><li><p>&#128220; <a href="https://dx-styles.dev/blog/state-of-zero-runtime-css-in-js/">The state of zero-runtime CSS-in-JS, mid-2026</a> - A recent field map of compile-time CSS-in-JS covering Vanilla-Extract, Panda CSS, StyleX, next-yak, Linaria, dx-styles.</p></li><li><p>&#128220; <a href="https://sergiodxa.com/tutorials/think-in-remix-ui-instead-of-react">How to Think in Remix UI Instead of React</a> - A pragmatic intro to Remix v3 from a React perspective. Components run once, return a render closure, and you re-render with <code>this.update()</code>. This gives you more control than React hooks, but requires more boilerplate.</p></li><li><p>&#128220; <a href="https://infrequently.org/2026/07/state-management/">The Absolute State of Management</a> - Alex Russel argues React&#8217;s state management libs don&#8217;t manage state; they only propagate it with pub/sub. Real state management needs time and ordering: CRDTs, sync engines, vector clocks.</p></li><li><p>&#128230; <a href="https://canvasui.dev/">Canvas UI - Creative components based on WebGPU and HTML-in-canvas</a> - A cool project for creative work. Framework-agnostic, coming with first-class React integration.</p></li><li><p>&#128230; <a href="https://tanstack.com/table/beta/docs/framework/react/guide/cell-selection">TanStack Table v9 beta.58 - Support Cell Selection and Keyboard Navigation</a></p></li><li><p>&#128230; <a href="https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v830">React Router 8.3 - RSC Entry Updates</a></p></li><li><p>&#128230; <a href="https://github.com/callstack/reassure/releases/tag/reassure%401.6.0">Reassure 1.6 - Performance testing for React and React Native - Stability measures</a></p></li><li><p>&#128230; <a href="https://github.com/facebook/astryx/releases#release-v0.1.9">Astryx 0.1.8 &amp; 0.1.9</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=2aKGR4RECj0">Jack Herrington - TanStack is Doing What?</a> - Stream announcing TanStack changes with guests. <a href="https://tanstack.com/blog/tanstack-has-a-new-look">TanStack now has a new look</a>, a design system, and a lead designer.</p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=B_w1xFbRvCg">Shruti Kapoor - React Debugging with Performance Tracks</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lmRV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3606451-c23b-4c63-b659-474daabe79f7_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lmRV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3606451-c23b-4c63-b659-474daabe79f7_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!lmRV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3606451-c23b-4c63-b659-474daabe79f7_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!lmRV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3606451-c23b-4c63-b659-474daabe79f7_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!lmRV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3606451-c23b-4c63-b659-474daabe79f7_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lmRV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3606451-c23b-4c63-b659-474daabe79f7_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e3606451-c23b-4c63-b659-474daabe79f7_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Evan Bacon&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Evan Bacon" title="Evan Bacon" srcset="https://substackcdn.com/image/fetch/$s_!lmRV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3606451-c23b-4c63-b659-474daabe79f7_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!lmRV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3606451-c23b-4c63-b659-474daabe79f7_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!lmRV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3606451-c23b-4c63-b659-474daabe79f7_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!lmRV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3606451-c23b-4c63-b659-474daabe79f7_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/Baconbrix">Evan Bacon</a></strong><a href="https://twitter.com/Baconbrix">Engineering Manager - Expo</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jTuM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jTuM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jTuM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jTuM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!h5tW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff81b7bd4-1183-4e4b-8b94-528508f0eebd_1200x600.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!h5tW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff81b7bd4-1183-4e4b-8b94-528508f0eebd_1200x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!h5tW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff81b7bd4-1183-4e4b-8b94-528508f0eebd_1200x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!h5tW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff81b7bd4-1183-4e4b-8b94-528508f0eebd_1200x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!h5tW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff81b7bd4-1183-4e4b-8b94-528508f0eebd_1200x600.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!h5tW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff81b7bd4-1183-4e4b-8b94-528508f0eebd_1200x600.jpeg" width="1200" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f81b7bd4-1183-4e4b-8b94-528508f0eebd_1200x600.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Stop Rebuilding Forms for Every Business Change&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Stop Rebuilding Forms for Every Business Change" title="Stop Rebuilding Forms for Every Business Change" srcset="https://substackcdn.com/image/fetch/$s_!h5tW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff81b7bd4-1183-4e4b-8b94-528508f0eebd_1200x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!h5tW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff81b7bd4-1183-4e4b-8b94-528508f0eebd_1200x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!h5tW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff81b7bd4-1183-4e4b-8b94-528508f0eebd_1200x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!h5tW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff81b7bd4-1183-4e4b-8b94-528508f0eebd_1200x600.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://surveyjs.io/?utm_source=this-week-in-react&amp;utm_medium=email">Stop Rebuilding Forms for Every Business Change</a></strong></p><p>Hardcoded forms create a costly cycle: every new field, workflow, validation rule or customer-specific variation becomes another development task, code review and deployment.</p><p>SurveyJS breaks that cycle. Developers <a href="https://surveyjs.io/try/reactjs">embed a JSON-powered form builder</a> and reusable form runtime into their React application once. Business teams can then create and update forms through configuration rather than application code.</p><ul><li><p>Ship new forms faster</p></li><li><p>Reduce repetitive frontend work</p></li><li><p>Launch form changes without waiting for a release cycle</p></li><li><p>Keep full control over your backend, data, security, and branding</p></li></ul><p>Your developers own the platform. Your business teams manage the forms. &#128578;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jTuM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jTuM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jTuM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jTuM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128241; React-Native</strong></h2><ul><li><p>&#128184; <a href="https://go.posthog.com/twir-jul29">PostHog - The do&#8217;s and don&#8217;ts of minimum viable product marketing</a></p></li><li><p>&#128172; <a href="https://github.com/react-native-community/discussions-and-proposals/pull/1014">React Native RFC - CSS </a><code>calc()</code><a href="https://github.com/react-native-community/discussions-and-proposals/pull/1014"> in React Native</a> - A proposal to add a C++ implementation, so host platforms do not need to be aware of its existence. Aligns more closely with the web, avoiding <code>onLayout</code> and useless render passes.</p></li><li><p>&#128064; <a href="https://github.com/react/react-native/pull/57500">React Native PR - Add SafeAreaProvider, safe-area hooks, and SafeAreaView edges/mode</a> - 2 recent PRs show that SafeAreaView will either be removed from core, or improved to catch up with <code>react-native-safe-area-context</code> features. We are still not sure which PR will be merged; stay tuned.</p></li><li><p>&#128064; <a href="https://github.com/software-mansion/react-native-screens/releases/tag/5.0.0-alpha.1">RN Screens 5.0 Alpha - Rewritten Stack implementation, Android based on Material Design 3</a> - The first release of an upcoming rewrite of RN Screens. The redesign of the Native Stack addresses shortcomings of the v4 model and will be an important piece for React Navigation v8.</p></li><li><p>&#128064; <a href="https://github.com/react/react-native-website/pull/5191">React Native PR - </a><code>backgroundImage</code><a href="https://github.com/react/react-native-website/pull/5191"> stable in RN 0.87</a> - linear and radial gradients will officially work without the need for 3rd-party dependencies.</p></li><li><p>&#128064; <a href="https://github.com/react-navigation/react-navigation/pull/13195">React Navigation PR - v8 will work on Web without React Native Web</a></p></li><li><p>&#128214; <a href="https://reactnavigation.org/docs/8.x/suspense/">React Navigation 8 - New docs on Suspense and pending UI</a></p></li><li><p>&#128220; <a href="https://expo.dev/blog/deferred-deep-linking-the-right-way">From Expo Router to Detour: Deferred deep linking the right way</a> - Standard deep links break at the store boundary, causing an Installation Gap when the app is not installed yet. The solution is to use deferred deep linking to capture user intent and replay it on the app&#8217;s first launch.</p></li><li><p>&#128220; <a href="https://x.com/mrousavy/status/2080675696335077457">Marc Rousavy just wanted to build react-native libraries but ended up fixing bugs in Apple/Swift compiler...</a> - A compiler bug caused iOS 16 to crash the app in production. The optimizer hoisted a weakly imported constant above its <code>#available</code> guard. Although the issue is real, it was possible to work around it, requiring an upstream compiler fix.</p></li><li><p>&#128220; <a href="https://expo.dev/blog/app-variants-side-by-side">Install dev and production side by side with app variants</a> - A guide to setting up app variants for improved dev experience.</p></li><li><p>&#128220; <a href="https://andrei-calazans.com/posts/2026-07-28-mmkv-writes-worklet-serialization-cost/">Why We Did Not Move MMKV Writes to a Worklet: The Serialization Cost</a></p></li><li><p>&#128184; <a href="https://configcat.com/blog/using-feature-flags-in-react-native/?utm_source=thisweekinreact_newsletter&amp;utm_medium=sponsor&amp;utm_campaign=reactnative_202607">ConfigCat - Release React Native Features with Feature Flags, Without Redeploying</a></p></li><li><p>&#128230; <a href="https://ammarahm-ed.github.io/react-native-workers/blog/introducing-react-native-workers/">RN Workers 1.0 Alpha</a> - Separate Hermes runtimes created on a dedicated thread to enable real multithreading. Each worker has its own bundle. Communication between them is using messages via a structured-clone codec. This <a href="https://x.com/tjzeldev/status/2081673853831430226">discussion</a> explain differences with Worklets. Hermes also <a href="https://x.com/tmikov/status/2081759040087151082">supports WebWorkers</a> out of the box (unstable) that will be in a public release soon.</p></li><li><p>&#128230; <a href="https://wcandillon.github.io/react-native-webgpu/docs/integrations/react-native-skia">React Native WebGPU 0.7 - </a><code>importDevice()</code> - This lets you import the RN Skia Graphite WebGPU device. It&#8217;s the foundation for zero-copy interop between the two worlds, letting you use WebGPU textures in Skia efficiently.</p></li><li><p>&#128230; <a href="https://github.com/Shopify/react-native-skia/releases/tag/v2.10.0">Skia 2.10 - Migrates from HostObject to JSI NativeState, requires Reanimated v4</a> - Related: Tzvetan Mikov previously explained <a href="https://x.com/tmikov/status/1820266381545468200">why the Hermes team strongly favors JSI NativeState over HostObject</a>.</p></li><li><p>&#128230; <a href="https://github.com/mrousavy/react-native-vision-camera/releases/tag/v5.2.0">VisionCamera 5.2 - New SkiaCamera controls (zoom, exposure, torch), stretch GPU Resizer mode</a></p></li><li><p>&#128230; <a href="https://github.com/mrousavy/nitro/releases#release-v0.36.3">Nitro 0.36.2 &amp; 0.36.3 - Faster Record&lt;K,V&gt; conversion, RN 0.87 support, drops @FastNative from Sync callbacks</a></p></li><li><p>&#128230; <a href="https://www.mercuretechnologies.com/blog/expo-open-ota-v3">Expo Open OTA 3.0 - Self-hosted Expo Updates server with multi-app, rollouts, A/B testing</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion/argent/releases/tag/v0.17.0">Argent 0.17 - Screen recording tools, pinch gesture, Windows support for Android and Chromium</a></p></li><li><p>&#128230; <a href="https://github.com/adithyavis/react-native-canvas-kit">Canvas Kit - A batteries-included 2D canvas framework built on RN Skia</a></p></li><li><p>&#128230; <a href="https://thoughtbot.com/blog/sign-in-with-google-for-react-native">React Native Social Auth - Sign in with Google for Android, iOS, Expo</a></p></li><li><p>&#128230; <a href="https://github.com/mdjastrzebski/react-native-memory-footprint">Memory Footprint - Measure React Native app&#8217;s memory footprint on iOS and Android</a></p></li><li><p>&#128230; <a href="https://maestro.dev/blog/maestro-cli-2-7-0">Maestro 2.7 - MCP tool to debug Cloud runs with your AI agent, per-flow debug artifacts</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion/radon-ide/releases/tag/v1.18.0">Radon 1.18 - Send props, styles, state &amp; errors from element inspector to AI chat context</a></p></li><li><p>&#128230; <a href="https://github.com/callstack/agent-device/releases/tag/v0.20.1">Agent Device 0.20.1 - Vega OS support, broader physical iOS support, secret-safe replay and recording improvements</a></p></li><li><p>&#128230; <a href="https://screen-transitions.esjr.org/changelog/updating-to-3-9">Screen Transitions 3.9 - Teleport-powered handoff and escapeClipping, simplified Boundary API, navigation zoom</a></p></li><li><p>&#128230; <a href="https://github.com/getsentry/sentry-react-native/releases/tag/8.20.0">Sentry 8.20 - iOS screenshot regression fix, Gradle Configuration Cache compatibility</a></p></li><li><p>&#128230; <a href="https://github.com/margelo/react-native-nitro-fetch/releases/tag/v1.5.3">Nitro Fetch 1.5.3 - 3x faster streaming via shared URLSession</a></p></li><li><p>&#129302; <a href="https://maestro.dev/blog/maestro-mcp-for-ai-coding-agents">Maestro CLI 2.7 - MCP for AI Coding Agents</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=3r_OHePTCcI">Expo - How to add an iOS Widget to your app</a></p></li><li><p>&#127897;&#65039; <a href="https://infinite.red/react-native-radio/rnr-368-rnr-explains-fabric">RNR 368 - RNR Explains: Fabric</a> - A look into how the Fabric renderer works. How it speeds up mobile apps and unlocks concurrent React features.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jTuM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jTuM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jTuM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jTuM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128256; Other</strong></h2><ul><li><p>&#129419; <a href="https://bsky.app/profile/tc39.es/post/3mrdjr6uq2t2i">TC39 advanced </a><code>Promise.allKeyed</code><a href="https://bsky.app/profile/tc39.es/post/3mrdjr6uq2t2i">, </a><code>Error.code</code><a href="https://bsky.app/profile/tc39.es/post/3mrdjr6uq2t2i">, </a><code>Map.take</code><a href="https://bsky.app/profile/tc39.es/post/3mrdjr6uq2t2i">, RegExp Linear Matching, and more</a> - I reply and explain why I&#8217;m excited about <code>allKeyed</code>, RegExp Linear Matching, and Composites moving to an interning-based approach (getting closer to the former Records &amp; Tuples proposal).</p></li><li><p>&#128227; <a href="https://developer.chrome.com/docs/web-platform/soft-navigations">Core Web Vitals - Measuring soft navigations</a> - Measuring SPA soft navigations (page transitions with <code>history.pushState</code>) will be enabled by default in Chrome 151, and integrated into DevTools, the <code>web-vitals</code> package, Lighthouse, PageSpeed Insights, and Real User Monitoring tools.</p></li><li><p>&#128227; <a href="https://github.blog/changelog/2026-07-28-npm-publish-time-malware-scanning-and-dual-use-metadata/">GitHub - npm publish-time malware scanning and dual-use metadata</a> - Newly published packages will be automatically scanned before they become available, introducing a delay of 5-15 minutes between publishing and availability.</p></li><li><p>&#128202; <a href="https://2026.stateofcss.com/en-US">State of CSS - Survey results</a></p></li><li><p>&#128220; <a href="https://nitayneeman.com/blog/introducing-import-defer-in-ecmascript/">ECMAScript Deferred Module Evaluation with </a><code>import defer</code> - This lazy module evaluation feature is stage 3, already implemented in most tools, and close to becoming part of the standard.</p></li><li><p>&#128220; <a href="https://denodell.com/blog/your-spa-is-leaking-memory-soak-test-it">Your SPA Is Leaking Memory. Soak Test It</a> - A practical Playwright recipe to catch SPA memory leaks. Loop a user flow, read Chrome&#8217;s node/listener counts before and after, assert.</p></li><li><p>&#128230; <a href="https://github.com/microsoft/playwright/releases/tag/v1.62.0">Playwright 1.62 - New component testing model, AbortSignal, WebP screenshots, isolated retries</a></p></li><li><p>&#128230; <a href="https://webpack.js.org/blog/2026-07-24-webpack-5-109/">Webpack 5.109 - Built-in CSS, HTML, TypeScript support enabled by default, Vite-compatible </a><code>import.meta</code><a href="https://webpack.js.org/blog/2026-07-24-webpack-5-109/"> APIs, asset query suffixes</a></p></li><li><p>&#128230; <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/153">Firefox 153 - Picture-in-Picture, import as text, popover=&#8221;hint&#8221;</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jTuM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jTuM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jTuM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jTuM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!jTuM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4ff8de7-6cea-4b00-9832-f1fabcf22df9_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#129325; Fun</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eVwc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80e13ad5-1bac-4fe6-a56c-1403efe7fe6c_1000x794.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eVwc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80e13ad5-1bac-4fe6-a56c-1403efe7fe6c_1000x794.jpeg 424w, https://substackcdn.com/image/fetch/$s_!eVwc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80e13ad5-1bac-4fe6-a56c-1403efe7fe6c_1000x794.jpeg 848w, https://substackcdn.com/image/fetch/$s_!eVwc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80e13ad5-1bac-4fe6-a56c-1403efe7fe6c_1000x794.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!eVwc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80e13ad5-1bac-4fe6-a56c-1403efe7fe6c_1000x794.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eVwc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80e13ad5-1bac-4fe6-a56c-1403efe7fe6c_1000x794.jpeg" width="1000" height="794" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/80e13ad5-1bac-4fe6-a56c-1403efe7fe6c_1000x794.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:794,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!eVwc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80e13ad5-1bac-4fe6-a56c-1403efe7fe6c_1000x794.jpeg 424w, https://substackcdn.com/image/fetch/$s_!eVwc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80e13ad5-1bac-4fe6-a56c-1403efe7fe6c_1000x794.jpeg 848w, https://substackcdn.com/image/fetch/$s_!eVwc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80e13ad5-1bac-4fe6-a56c-1403efe7fe6c_1000x794.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!eVwc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80e13ad5-1bac-4fe6-a56c-1403efe7fe6c_1000x794.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>See ya! &#128075;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[This Week In React 288]]></title><description><![CDATA[Next.js, React Compiler, use(), Astryx, TanStack Start, Takumi, nuqs | Expo, VisionCamera, Windows, Rollipop, LegendList, Nitro, AI, Maps | Node.js, pnpm, TS, Prettier, Deno, Webpack, Flow]]></description><link>https://substack.thisweekinreact.com/p/this-week-in-react-288</link><guid isPermaLink="false">https://substack.thisweekinreact.com/p/this-week-in-react-288</guid><dc:creator><![CDATA[Sébastien Lorber]]></dc:creator><pubDate>Fri, 03 Jul 2026 12:28:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!NX6Q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5a0913a-60fb-4497-a7c7-b273d5bec5fa_1000x523.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi everyone, <a href="https://x.com/sebastienlorber">Seb</a> and <a href="https://x.com/jaworek3211">Jan</a> here &#128075;!</p><p>This week, the Next.js 16.3 preview makes the headlines, while the React Compiler remains a hot topic.</p><p>On the React Native side, Expo unexpectedly shipped a new SDK.</p><p>Let&#8217;s dive in!</p><p>As always, thanks for supporting us on your favorite platform:</p><ul><li><p>&#129419; <a href="https://slo.im/last/b">Bluesky</a></p></li><li><p>&#10006;&#65039; <a href="https://slo.im/last/x">X / Twitter</a></p></li><li><p>&#128084; <a href="https://slo.im/last/l">LinkedIn</a></p></li><li><p>&#128125; <a href="https://slo.im/last/r">Reddit</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vlVf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F310c0fec-507f-4100-9e57-264fc574e96e_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vlVf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F310c0fec-507f-4100-9e57-264fc574e96e_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vlVf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F310c0fec-507f-4100-9e57-264fc574e96e_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vlVf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F310c0fec-507f-4100-9e57-264fc574e96e_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vlVf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F310c0fec-507f-4100-9e57-264fc574e96e_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vlVf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F310c0fec-507f-4100-9e57-264fc574e96e_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/310c0fec-507f-4100-9e57-264fc574e96e_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Addy Osmani&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Addy Osmani" title="Addy Osmani" srcset="https://substackcdn.com/image/fetch/$s_!vlVf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F310c0fec-507f-4100-9e57-264fc574e96e_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vlVf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F310c0fec-507f-4100-9e57-264fc574e96e_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vlVf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F310c0fec-507f-4100-9e57-264fc574e96e_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vlVf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F310c0fec-507f-4100-9e57-264fc574e96e_400x400.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/addyosmani">Addy Osmani</a></strong><a href="https://twitter.com/addyosmani">Head of Chrome DX - Google</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lgT8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lgT8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lgT8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lgT8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!E-C4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58fff75f-43a8-4390-a579-c6528c59cb80_2816x1472.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!E-C4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58fff75f-43a8-4390-a579-c6528c59cb80_2816x1472.jpeg 424w, https://substackcdn.com/image/fetch/$s_!E-C4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58fff75f-43a8-4390-a579-c6528c59cb80_2816x1472.jpeg 848w, https://substackcdn.com/image/fetch/$s_!E-C4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58fff75f-43a8-4390-a579-c6528c59cb80_2816x1472.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!E-C4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58fff75f-43a8-4390-a579-c6528c59cb80_2816x1472.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!E-C4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58fff75f-43a8-4390-a579-c6528c59cb80_2816x1472.jpeg" width="1456" height="761" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/58fff75f-43a8-4390-a579-c6528c59cb80_2816x1472.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:761,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Ship AI generated code safely with Meticulous.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Ship AI generated code safely with Meticulous." title="Ship AI generated code safely with Meticulous." srcset="https://substackcdn.com/image/fetch/$s_!E-C4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58fff75f-43a8-4390-a579-c6528c59cb80_2816x1472.jpeg 424w, https://substackcdn.com/image/fetch/$s_!E-C4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58fff75f-43a8-4390-a579-c6528c59cb80_2816x1472.jpeg 848w, https://substackcdn.com/image/fetch/$s_!E-C4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58fff75f-43a8-4390-a579-c6528c59cb80_2816x1472.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!E-C4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58fff75f-43a8-4390-a579-c6528c59cb80_2816x1472.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q2&amp;utm_content=1stjul">Ship AI generated code safely with Meticulous.</a></strong></p><p>Claude writes your code. Claude reviews your code. Claude fixes the review comments. And somehow, <em>you&#8217;re</em> the one getting paged at 2am when it breaks in prod.</p><p>Fortunately, top AI-driven teams like Dropbox, Notion, LaunchDarkly, and Wiz rely on Meticulous to run 1000s of e2e UI tests autonomously, covering every user flow, edge case, role and permutation. Built by ex-Palantir engineers, <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q2&amp;utm_content=1st">Meticulous gives you near-exhaustive coverage in weeks, without any developer effort</a>.</p><p>It works like magic in the background:</p><ul><li><p>Near-exhaustive coverage on every test run</p></li><li><p>No test creation</p></li><li><p>No maintenance (seriously)</p></li><li><p>Zero flakes (built on a deterministic browser)</p></li></ul><p><strong>Check it out</strong> - and see why one engineering leader at Dropbox said that &#8220;<a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q2&amp;utm_content=1st#:~:text=Once%20we%20started%20using%20Meticulous%2C%20we%20couldn%27t%20imagine%20working%20without%20it.">once we started using Meticulous, we couldn&#8217;t imagine working without it</a>.&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lgT8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lgT8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lgT8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lgT8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#9883;&#65039; React</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NX6Q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5a0913a-60fb-4497-a7c7-b273d5bec5fa_1000x523.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NX6Q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5a0913a-60fb-4497-a7c7-b273d5bec5fa_1000x523.jpeg 424w, https://substackcdn.com/image/fetch/$s_!NX6Q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5a0913a-60fb-4497-a7c7-b273d5bec5fa_1000x523.jpeg 848w, https://substackcdn.com/image/fetch/$s_!NX6Q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5a0913a-60fb-4497-a7c7-b273d5bec5fa_1000x523.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!NX6Q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5a0913a-60fb-4497-a7c7-b273d5bec5fa_1000x523.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NX6Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5a0913a-60fb-4497-a7c7-b273d5bec5fa_1000x523.jpeg" width="1000" height="523" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f5a0913a-60fb-4497-a7c7-b273d5bec5fa_1000x523.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:523,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Next.js 16.3 Preview - Instant Navigations&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Next.js 16.3 Preview - Instant Navigations" title="Next.js 16.3 Preview - Instant Navigations" srcset="https://substackcdn.com/image/fetch/$s_!NX6Q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5a0913a-60fb-4497-a7c7-b273d5bec5fa_1000x523.jpeg 424w, https://substackcdn.com/image/fetch/$s_!NX6Q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5a0913a-60fb-4497-a7c7-b273d5bec5fa_1000x523.jpeg 848w, https://substackcdn.com/image/fetch/$s_!NX6Q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5a0913a-60fb-4497-a7c7-b273d5bec5fa_1000x523.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!NX6Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5a0913a-60fb-4497-a7c7-b273d5bec5fa_1000x523.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://nextjs.org/blog/next-16-3-instant-navigations">Next.js 16.3 Preview - Instant Navigations</a></strong></p><p>Next.js 16.3 is now in preview and will be stabilized in the coming weeks. This sneak peek focuses on a new opt-in feature called Instant Navigations, improving on top of Cache Components. This addresses the loudest criticism of the App Router: server-driven navigations feel like clicking a website, not an app.</p><p>With this new feature, you will have to make a very explicit choice whenever you <code>await</code> some data on the server, nicely presented in an Instant Insights dev panel to surface slow navigations:</p><ul><li><p>Stream with <code>&lt;Suspense&gt;</code></p></li><li><p>Cache with <code>&#8217;use cache&#8217;</code></p></li><li><p>Block with <code>export const instant = false;</code></p></li></ul><p>There&#8217;s more:</p><ul><li><p>Playwright <code>instant()</code> test helper - Assert what must be instantly visible after a link click.</p></li><li><p>Partial Prefetching - Instead of prefetching a page per link in the viewport, Next.js will now prefetch a reusable shell per route. You can still prefetch links more aggressively (opt-in).</p></li></ul><p>Also related:</p><ul><li><p>&#129419; <a href="https://bsky.app/profile/danabra.mov/post/3mp5b3nd3ws2k">Dan Abramov joined the Next.js team at Vercel, part-time</a></p></li><li><p>&#128220; <a href="https://nextjs.org/blog/next-16-3-ai-improvements">Next.js 16.3: AI Improvements</a> - Bundled docs, first-party skills, Agent Browser with React introspection, actionable errors, improved MCP server, and docs as Markdown.</p></li><li><p>&#128220; <a href="https://nextjs.org/blog/next-16-3-turbopack">Turbopack: What&#8217;s New in Next.js 16.3</a> - Reducing dev server memory by up to 90%, up to 5.5x faster rebuilds with persistent cache, experimental React Compiler in Rust, <code>import.meta.glob</code> API, faster HMR and dev startup.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lgT8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lgT8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lgT8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lgT8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128467;&#65039; <a href="https://reactsummit.us/?utm_source=thisweekinreact">React Summit US</a> - &#127482;&#127480; New York - 17 &amp; 20 Nov. Call for Papers is open until July 9! Don&#8217;t miss your chance to share your React stories on stage. Get a 10% discount with code &#8220;TWIR&#8221;.</p></li><li><p>&#128064; <a href="https://react.dev/reference/react/use">React Docs - </a><code>use()</code><a href="https://react.dev/reference/react/use"> API Reference</a> - This React API docs page has been entirely rewritten, also explaining important concepts such as how Promises must be cached on the client.</p></li><li><p>&#128064; <a href="https://github.com/jsx-eslint/eslint-plugin-react/pull/3979">ESLint Plugin React - ESLint v10 compatibility progress</a> - React users of this ESLint plugin have been stuck on ESLint v9 for a while. Thankfully, v10 support has just been merged into the Import plugin, which should also unlock the React plugin compatibility.</p></li><li><p>&#128064; <a href="https://vercel.com/blog/vercel-and-shopify-are-rebuilding-hydrogen">Vercel and Shopify are rebuilding Hydrogen</a> - Vercel is helping Shopify improve its proprietary Hydrogen e-commerce framework. Initially based on React/Remix, the new version should be more portable, supporting Svelte, Nuxt, Next.js, and various server runtimes.</p></li><li><p>&#128220; <a href="https://socket.dev/blog/rolldown-pulls-rust-react-compiler-integration">Rolldown Pulls Rust React Compiler Integration After Binary Size Increase</a> - Nicely summarize the tradeoffs of integrating Rust extensions in frontend tools, and whether it&#8217;s a good idea for a framework-agnostic tool to have a first-class integration with React. Oxc blocked the integration until it&#8217;s slimmed down (in progress), while Rspack chose to ship the Compiler now and optimize incrementally.</p></li><li><p>&#128220; <a href="https://longho.dev/posts/react-compiler-is-a-retrofit/">React Compiler Is A Retrofit</a> - Argues that, unlike Solid/Svelte, the React Compiler optimizes a runtime model that was not initially designed around a compiler. It can increase bundle size and make the memoization contract of your APIs less explicit. It is safer to use it as a linter rather than a compiler.</p></li><li><p>&#128220; <a href="https://neciudan.dev/hydration-and-rendering-strategies">Different hydration and rendering strategies</a> - Explains how much JS runs between &#8220;looks ready&#8221; and &#8220;actually works&#8221;, across every rendering strategy, including non-React ones.</p></li><li><p>&#128220; <a href="https://howtotestfrontend.com/resources/react-testing-interview-questions">React Testing Questions That Trip Up Engineers</a> - Covering the role of <code>act()</code>, testing implementation details, overmocking, and challenges like testing IntersectionObserver or drag-and-drop.</p></li><li><p>&#128220; <a href="https://sergiodxa.com/tutorials/open-a-modal-dialog-in-react-with-the-invoker-commands-api">Open a Modal Dialog in React with the Invoker Commands API</a> - For simple modal dialogs, modern browsers support opening/closing of a <code>&lt;dialog&gt;</code> with a declarative HTML API, no need for <code>useState()</code> nor any JS.</p></li><li><p>&#128230; <a href="https://astryx.atmeta.com/">Astryx - Meta&#8217;s open-source design system, built on React and StyleX</a> - Meta released an OSS beta version of their design system, built over 8 years and powering 13000+ internal apps, using StyleX atomic CSS-in-JS library. It&#8217;s not a headless lib, but highly themable with design tokens and the ability to eject the components to customize them entirely.</p></li><li><p>&#128230; <a href="https://rspack.rs/blog/announcing-2-1">Rspack 2.1 - React Compiler in Rust, TanStack Start support, perf improvements, TypeScript 7, </a><code>import.meta.glob()</code><a href="https://rspack.rs/blog/announcing-2-1">, and more</a> - Rspack now has a first-class integration with the React Compiler through SWC, reporting it being 7-13x faster than the Babel version. Also, TanStack Start now supports Rsbuild 2.1 through a plugin.</p></li><li><p>&#128230; <a href="https://ui.shadcn.com/docs/changelog/2026-06-chat-components">shadcn/ui - Chat interface components, </a><code>@shadcn/react</code> - This Chat UI update also takes the opportunity to introduce a new package for unstyled, headless React components. For now, there&#8217;s only a single <code>&lt;MessageScroller&gt;</code> primitive, but more could come later?</p></li><li><p>&#128230; <a href="https://storybook.js.org/blog/storybook-for-tanstack-react/">Storybook for TanStack React</a> - A dedicated Storybook framework for TanStack-powered React apps. This provides first-class, type-safe support for TanStack Router, Start, and Query.</p></li><li><p>&#128230; <a href="https://takumi.kane.tw/">Takumi 2.0 RC - Render JSX to images with a single Rust binary</a> - A quite compelling alternative to Satori.</p></li><li><p>&#128230; <a href="https://github.com/cloudflare/vinext/releases/tag/vinext%400.2.0">Vinext 0.2 - Revamped init command, prerender, image optimizations, fixes</a> - Cloudflare&#8217;s fork of Next.js has been under active development since its initial announcement.</p></li><li><p>&#128230; <a href="https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v810">React-Router 8.1 - Agent Skills Installation, Observability Metadata</a></p></li><li><p>&#128230; <a href="https://github.com/47ng/nuqs/releases/tag/v2.9.0">nuqs 2.9 - Support for React-Router v8, add history to adapters </a><code>defaultOptions</code></p></li><li><p>&#128230; <a href="https://frondruntime.dev/">Frond - Effect-powered frontend runtime for React and MobX-facing application state</a></p></li><li><p>&#128230; <a href="https://github.com/redwoodjs/sdk/releases/tag/v1.5.0">RedwoodSDK 1.5 - Vite 8 support</a></p></li><li><p>&#127909; <a href="https://codetv.dev/series/build-log/miami/tanner-linsley">The Build Log S1E02 - Tanner Linsley Built TanStack to Outlive Him</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!B1Xm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F052a547e-4621-4ce7-80a2-621c51cdf798_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!B1Xm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F052a547e-4621-4ce7-80a2-621c51cdf798_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!B1Xm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F052a547e-4621-4ce7-80a2-621c51cdf798_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!B1Xm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F052a547e-4621-4ce7-80a2-621c51cdf798_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!B1Xm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F052a547e-4621-4ce7-80a2-621c51cdf798_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!B1Xm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F052a547e-4621-4ce7-80a2-621c51cdf798_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/052a547e-4621-4ce7-80a2-621c51cdf798_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Theo Browne&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Theo Browne" title="Theo Browne" srcset="https://substackcdn.com/image/fetch/$s_!B1Xm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F052a547e-4621-4ce7-80a2-621c51cdf798_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!B1Xm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F052a547e-4621-4ce7-80a2-621c51cdf798_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!B1Xm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F052a547e-4621-4ce7-80a2-621c51cdf798_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!B1Xm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F052a547e-4621-4ce7-80a2-621c51cdf798_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/theo">Theo Browne</a></strong><a href="https://twitter.com/theo">Founder of ping.gg - Youtuber</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lgT8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lgT8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lgT8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lgT8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bZIC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc9dc9e6-1bd1-42a3-88e8-d2a70599562b_1200x600.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bZIC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc9dc9e6-1bd1-42a3-88e8-d2a70599562b_1200x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!bZIC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc9dc9e6-1bd1-42a3-88e8-d2a70599562b_1200x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!bZIC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc9dc9e6-1bd1-42a3-88e8-d2a70599562b_1200x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!bZIC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc9dc9e6-1bd1-42a3-88e8-d2a70599562b_1200x600.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bZIC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc9dc9e6-1bd1-42a3-88e8-d2a70599562b_1200x600.jpeg" width="1200" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dc9dc9e6-1bd1-42a3-88e8-d2a70599562b_1200x600.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Atomic CRM: A CRM you won&#8217;t be ashamed of&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Atomic CRM: A CRM you won&#8217;t be ashamed of" title="Atomic CRM: A CRM you won&#8217;t be ashamed of" srcset="https://substackcdn.com/image/fetch/$s_!bZIC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc9dc9e6-1bd1-42a3-88e8-d2a70599562b_1200x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!bZIC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc9dc9e6-1bd1-42a3-88e8-d2a70599562b_1200x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!bZIC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc9dc9e6-1bd1-42a3-88e8-d2a70599562b_1200x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!bZIC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc9dc9e6-1bd1-42a3-88e8-d2a70599562b_1200x600.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://marmelab.com/atomic-crm/">Atomic CRM: A CRM you won&#8217;t be ashamed of</a></strong></p><p>Your company needs a new CRM? Point them to a popular open-source CRM written in React, built with battle-tested libraries (Tailwind CSS, react-router, TanStack Query, react-hook-form) and powered by Supabase.</p><p>Best of all: for every customization they&#8217;ll need, you can delegate the work to Atomic CRM&#8217;s agentic harness, an AI specially trained to build robust, maintainable and usable CRMs.</p><p>By the way, Atomic CRM ships with free SSO and you can host it anywhere, so your data stays yours. <a href="https://marmelab.com/atomic-crm/">Check out the demos!</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lgT8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lgT8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lgT8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lgT8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128241; React-Native</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!byVN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5d524f-0e01-4056-aec5-fa623bad76bf_2048x1152.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!byVN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5d524f-0e01-4056-aec5-fa623bad76bf_2048x1152.jpeg 424w, https://substackcdn.com/image/fetch/$s_!byVN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5d524f-0e01-4056-aec5-fa623bad76bf_2048x1152.jpeg 848w, https://substackcdn.com/image/fetch/$s_!byVN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5d524f-0e01-4056-aec5-fa623bad76bf_2048x1152.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!byVN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5d524f-0e01-4056-aec5-fa623bad76bf_2048x1152.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!byVN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5d524f-0e01-4056-aec5-fa623bad76bf_2048x1152.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/df5d524f-0e01-4056-aec5-fa623bad76bf_2048x1152.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Expo SDK 57&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Expo SDK 57" title="Expo SDK 57" srcset="https://substackcdn.com/image/fetch/$s_!byVN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5d524f-0e01-4056-aec5-fa623bad76bf_2048x1152.jpeg 424w, https://substackcdn.com/image/fetch/$s_!byVN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5d524f-0e01-4056-aec5-fa623bad76bf_2048x1152.jpeg 848w, https://substackcdn.com/image/fetch/$s_!byVN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5d524f-0e01-4056-aec5-fa623bad76bf_2048x1152.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!byVN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5d524f-0e01-4056-aec5-fa623bad76bf_2048x1152.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://expo.dev/changelog/sdk-57">Expo SDK 57</a></strong></p><p>It feels like Expo SDK 56 just got released, and we&#8217;re already on SDK 57, even skipping the beta phase!?</p><p>Since RN 0.86 got released with no breaking changes, the Expo team decided to cut the new release sooner than usual. It&#8217;s a test of a new release cadence that will follow RN releases more closely. React Native&#8217;s move towards stability should make it easier to offer the latest changes almost immediately. Why not do it as a part of the SDK 56 update, then? There are still many changes, and it&#8217;s better to make the upgrade intentional to avoid unexpected errors.</p><p>RN 0.86 features are now available in Expo: first-class edge-to-edge support on Android, light/dark mode emulation in React Native DevTools, and rendering, layout, and animation fixes. Expo 57 also comes with a list of various Expo-related improvements.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lgT8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lgT8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lgT8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lgT8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://go.posthog.com/twir-jul1">PostHog - Karpathy&#8217;s Autoresearch found a 3-year-old bug in our query engine (and improved performance by 11%)</a></p></li><li><p>&#128064; <a href="https://github.com/expo/expo/pull/47207">Expo PR - App Intents - iOS Apple Intelligence, App Shortcuts, Siri</a> - An early plan and work to support intents in Expo with data provided from JS.</p></li><li><p>&#128064; <a href="https://expo.dev/changelog/maestro-testing-improvements">Expo Workflow - Maestro Testing: Insights, Clearer Results, and Faster Retries</a></p></li><li><p>&#128214; <a href="https://www.callstack.com/ebooks/the-ultimate-guide-to-react-native-optimization">Callstack - Ultimate Guide to React Native Optimization - 2026 Edition</a></p></li><li><p>&#128467;&#65039; <a href="https://ti.to/chainreact/chainreact2026/discount/TWIR">Chain React</a> - &#127482;&#127480; Portland - 30-31 July. Last call to secure your ticket! Join the React Native community for 2 days of amazing talks and networking. Get a 15% discount with code &#8220;TWIR&#8221;.</p></li><li><p>&#128220; <a href="https://www.callstack.com/blog/less-boilerplate-more-type-safety-react-navigation-8s-typed-hooks">Less Boilerplate, More Type Safety: React Navigation 8&#8217;s Typed Hooks</a> - Explaining hooks type-safety improvements coming in React Navigation v8, a significant upcoming release currently in alpha.</p></li><li><p>&#128220; <a href="https://blog.margelo.com/profiling-skia-reanimated-low-end-android">Chasing a Phantom Jump: How We Made Pingo&#8217;s Animations Smooth on Low-End Android</a></p></li><li><p>&#128220; <a href="https://www.callstack.com/blog/how-expensify-uses-agent-device-for-mobile-bug-evidence-and-profiling">How Expensify Uses Agent-Device for Mobile Bug Evidence and Profiling</a></p></li><li><p>&#128220; <a href="https://lynxjs.org/next/blog/lynx-rspack-2">Lynx &#215; Rspack 2.0: Faster, Smaller, Closer to the Web</a></p></li><li><p>&#128184; <a href="https://www.drizz.dev/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=twir_w2&amp;utm_content=rn-testing">Drizz: E2E testing for React Native that doesn&#8217;t break every release. No selectors, no Appium, no XPaths. Just plain English + AI</a></p></li><li><p>&#128230; <a href="https://devblogs.microsoft.com/react-native/react-native-windows-v0-84-is-here/">React Native Windows 0.84 - Aligns with RN 0.84.1, onClick/onAuxClick, Imperative Focus, Theme-Aware Text, Input-Handling Parity</a></p></li><li><p>&#128230; <a href="https://github.com/mrousavy/react-native-vision-camera/releases/tag/v5.1.0">VisionCamera 5.1 - Better support for external Cameras, Scan QR codes in images, native default Camera selection</a></p></li><li><p>&#128230; <a href="https://github.com/rollipop-dev/rollipop">Rollipop - Rolldown-Powered Metro Alternative for React Native (Alpha)</a></p></li><li><p>&#128230; <a href="https://github.com/LegendApp/legend-list/releases/tag/v3.2.0">Legend List 3.2 &amp; 3.3 - onFirstVisibleItemChanged, experimental_adaptiveRender improvements, Fabric performance improvements</a></p></li><li><p>&#128230; <a href="https://github.com/facebook/hermes/blob/static_h/doc/blog/2026-06-05-new-hermes-stable-release.md">Hermes 260318099 - JSON 2.7-3.4x Faster, Set Ops, Iterator Helpers, TS Transform</a></p></li><li><p>&#128230; <a href="https://github.com/uni-stack/uniwind/releases/tag/v1.10.0">Uniwind 1.10 - RTL safe area classes, CSS min()</a></p></li><li><p>&#128230; <a href="https://github.com/mrousavy/nitro/releases/tag/v0.36.0">Nitro 0.36 - Union Enum Variants Support</a></p></li><li><p>&#128230; <a href="https://github.com/getsentry/sentry-react-native/releases/tag/8.16.0">Sentry 8.16 - Expo Router ErrorBoundary Capture</a></p></li><li><p>&#128230; <a href="https://github.com/react-native-community/cli/releases/tag/v20.2.0">RN CLI 20.2 - Support DeviceHub for Xcode 27+, CVE and Bug Fixes</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion/argent/releases/tag/v0.13.0">Argent 0.12 &amp; 0.12 - Physical Android support, Vega device support, Electron support, </a><code>await-ui-element</code><a href="https://github.com/software-mansion/argent/releases/tag/v0.13.0"> tool</a></p></li><li><p>&#128230; <a href="https://github.com/callstack/agent-device/releases/tag/v0.18.0">Agent Device 0.18 - CDP Remote Bridge, Web Screen Recording, Device Leasing</a></p></li><li><p>&#128230; <a href="https://github.com/gmi-software/react-native-better-maps">Better Maps 1.0 - Nitro Modules Maps Library, Native Marker Clustering, Unified Map API</a></p></li><li><p>&#128230; <a href="https://github.com/gmi-software/react-native-better-clustering">Better Clustering 1.0 - Nitro Powered Alternative for react-native-map-clustering with the Same API</a></p></li><li><p>&#128230; <a href="https://github.com/afonsojramos/super-calendar/">Super Calendar 2.0 - Universal, gesture-driven, virtualized calendar and date picker, built on top of Reanimated and Legend List</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=dYEaN7ZqFmo">Callstack - Redraw for Effects Beyond Skia | Interview With William Candillon</a></p></li><li><p>&#127897;&#65039; <a href="https://www.youtube.com/watch?v=I4Wlu2BZEsw">Software Mention Podcast - How Partiful Became Google&#8217;s Best App &amp; Why They Chose React Native | Alex Chou &amp; Tomek Zawadzki</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lgT8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lgT8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lgT8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lgT8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128256; Other</strong></h2><ul><li><p>&#128220; <a href="https://code.visualstudio.com/blogs/2026/06/26/iterating-faster-with-ts-7">VSCode - Iterating faster with TypeScript 7</a> - VSCode migrated to the TS 7 native compiler incrementally, type checking dropped from 36s to 5s.</p></li><li><p>&#128220; <a href="https://nodesource.com/blog/npm-v12-install-scripts-not-a-silver-bullet">Blocking Install Scripts Is Not a Silver Bullet</a> - Package managers blocking postinstall scripts prevent a whole class of supply chain attacks, but malware can move to import time.</p></li><li><p>&#128230; <a href="https://nodejs.org/en/blog/release/v26.4.0">Node.js 26.4 - Package Maps, VirtualFileSystem</a> - New exciting experimental features just landed! Providing a Package Map, emitted by your package manager, can make Node.js module resolution more reliable and skip costly file-system scanning. VirtualFileSystem lets you create module graphs in-memory that you can import.</p></li><li><p>&#128230; <a href="https://pnpm.io/blog/releases/11.8">pnpm 11.8 &amp; 11.9 - Dry runs, Node.js package maps, SBOM improvements, tarball integrity</a> - pnpm is following Yarn, bringing support for the Node.js Package Maps described above. pnpm is also working on <a href="https://pnpm.io/pnpr/">pnpr</a>, its own Rust-based registry server/proxy that can resolve dependency graphs server-side.</p></li><li><p>&#128230; <a href="https://prettier.io/blog/2026/06/27/3.9.0">Prettier 3.9 - Major parser upgrades (Markdown, YAML, Flow, GraphQL), Formatting improvements</a> - They are also working on upgrading the MDX parser to v3.</p></li><li><p>&#128230; <a href="https://deno.com/blog/v2.9">Deno 2.9 - Deno Desktop for WebView apps, Node.js and package managers compatibility, performance, CSS module imports, and more</a></p></li><li><p>&#128230; <a href="https://webpack.js.org/blog/2026-06-25-webpack-5-108/">Webpack 5.108 - Universal target, Bun and Deno targets, HTML entrypoints, and more</a></p></li><li><p>&#128230; <a href="https://medium.com/flow-type/flows-ocaml-to-rust-port-78b95bcf49e9">Flow 0.319 - Porting the Compiler from OCaml to Rust, 2x faster type-checking</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lgT8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lgT8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lgT8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lgT8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!lgT8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab050163-4ec4-492a-8315-7caf4ebc4392_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#129325; Fun</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_hxy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26d1cdd5-0b04-46d0-b4fa-18c25a9097e3_1288x1592.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_hxy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26d1cdd5-0b04-46d0-b4fa-18c25a9097e3_1288x1592.jpeg 424w, https://substackcdn.com/image/fetch/$s_!_hxy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26d1cdd5-0b04-46d0-b4fa-18c25a9097e3_1288x1592.jpeg 848w, https://substackcdn.com/image/fetch/$s_!_hxy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26d1cdd5-0b04-46d0-b4fa-18c25a9097e3_1288x1592.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!_hxy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26d1cdd5-0b04-46d0-b4fa-18c25a9097e3_1288x1592.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_hxy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26d1cdd5-0b04-46d0-b4fa-18c25a9097e3_1288x1592.jpeg" width="1288" height="1592" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/26d1cdd5-0b04-46d0-b4fa-18c25a9097e3_1288x1592.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1592,&quot;width&quot;:1288,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!_hxy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26d1cdd5-0b04-46d0-b4fa-18c25a9097e3_1288x1592.jpeg 424w, https://substackcdn.com/image/fetch/$s_!_hxy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26d1cdd5-0b04-46d0-b4fa-18c25a9097e3_1288x1592.jpeg 848w, https://substackcdn.com/image/fetch/$s_!_hxy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26d1cdd5-0b04-46d0-b4fa-18c25a9097e3_1288x1592.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!_hxy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26d1cdd5-0b04-46d0-b4fa-18c25a9097e3_1288x1592.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PIDv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1cb9616-bf51-4733-8326-ba19e215df94_1000x872.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PIDv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1cb9616-bf51-4733-8326-ba19e215df94_1000x872.jpeg 424w, https://substackcdn.com/image/fetch/$s_!PIDv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1cb9616-bf51-4733-8326-ba19e215df94_1000x872.jpeg 848w, https://substackcdn.com/image/fetch/$s_!PIDv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1cb9616-bf51-4733-8326-ba19e215df94_1000x872.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!PIDv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1cb9616-bf51-4733-8326-ba19e215df94_1000x872.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PIDv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1cb9616-bf51-4733-8326-ba19e215df94_1000x872.jpeg" width="1000" height="872" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a1cb9616-bf51-4733-8326-ba19e215df94_1000x872.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:872,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!PIDv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1cb9616-bf51-4733-8326-ba19e215df94_1000x872.jpeg 424w, https://substackcdn.com/image/fetch/$s_!PIDv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1cb9616-bf51-4733-8326-ba19e215df94_1000x872.jpeg 848w, https://substackcdn.com/image/fetch/$s_!PIDv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1cb9616-bf51-4733-8326-ba19e215df94_1000x872.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!PIDv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1cb9616-bf51-4733-8326-ba19e215df94_1000x872.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>See ya! &#128075;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[This Week In React 287]]></title><description><![CDATA[Fragment ref, React Compiler, StyleX, React Router, cnfast, Base UI, Remotion, React Aria | Reanimated, Widgets, VisionCamera, Test Renderer, Worklets, Legend List, Metro, Boost | Vite, Astro, TypeScr]]></description><link>https://substack.thisweekinreact.com/p/this-week-in-react-287</link><guid isPermaLink="false">https://substack.thisweekinreact.com/p/this-week-in-react-287</guid><dc:creator><![CDATA[Sébastien Lorber]]></dc:creator><pubDate>Fri, 26 Jun 2026 12:29:05 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!9XJD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c320e37-936f-4fcd-b3a3-9bb1b60f4a9d_1200x619.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi everyone, <a href="https://x.com/sebastienlorber">Seb</a> and <a href="https://x.com/jaworek3211">Jan</a> here &#128075;!</p><p>This week, we&#8217;re shining a spotlight on the upcoming React Fragment ref feature. We also have React Compiler updates, StyleX community discussions and a boring React Router release.</p><p>On the React Native side, Renimated gets CSS pseudo-selector support and widget libraries gain momentum. VisionCamera unlocks new real-time processing capabilities with impressive demos.</p><p>Let&#8217;s dive in!</p><p>As always, thanks for supporting us on your favorite platform:</p><ul><li><p>&#129419; <a href="https://slo.im/last/b">Bluesky</a></p></li><li><p>&#10006;&#65039; <a href="https://slo.im/last/x">X / Twitter</a></p></li><li><p>&#128084; <a href="https://slo.im/last/l">LinkedIn</a></p></li><li><p>&#128125; <a href="https://slo.im/last/r">Reddit</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xvOI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a600e50-92a9-4510-8a10-141884db1044_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xvOI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a600e50-92a9-4510-8a10-141884db1044_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!xvOI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a600e50-92a9-4510-8a10-141884db1044_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!xvOI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a600e50-92a9-4510-8a10-141884db1044_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!xvOI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a600e50-92a9-4510-8a10-141884db1044_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xvOI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a600e50-92a9-4510-8a10-141884db1044_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9a600e50-92a9-4510-8a10-141884db1044_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Dominik Dorfmeister&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Dominik Dorfmeister" title="Dominik Dorfmeister" srcset="https://substackcdn.com/image/fetch/$s_!xvOI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a600e50-92a9-4510-8a10-141884db1044_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!xvOI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a600e50-92a9-4510-8a10-141884db1044_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!xvOI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a600e50-92a9-4510-8a10-141884db1044_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!xvOI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a600e50-92a9-4510-8a10-141884db1044_400x400.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/TkDodo">Dominik Dorfmeister</a></strong><a href="https://twitter.com/TkDodo">Web Developer - React-Query maintainer</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-xTf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-xTf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-xTf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-xTf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vIhM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32a364ea-287d-4fe6-9dc3-fe2117587e8a_1200x600.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vIhM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32a364ea-287d-4fe6-9dc3-fe2117587e8a_1200x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vIhM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32a364ea-287d-4fe6-9dc3-fe2117587e8a_1200x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vIhM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32a364ea-287d-4fe6-9dc3-fe2117587e8a_1200x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vIhM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32a364ea-287d-4fe6-9dc3-fe2117587e8a_1200x600.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vIhM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32a364ea-287d-4fe6-9dc3-fe2117587e8a_1200x600.jpeg" width="1200" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/32a364ea-287d-4fe6-9dc3-fe2117587e8a_1200x600.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;React Native Devs Are Sleeping on&#8239;TV&#8239;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="React Native Devs Are Sleeping on&#8239;TV&#8239;" title="React Native Devs Are Sleeping on&#8239;TV&#8239;" srcset="https://substackcdn.com/image/fetch/$s_!vIhM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32a364ea-287d-4fe6-9dc3-fe2117587e8a_1200x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vIhM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32a364ea-287d-4fe6-9dc3-fe2117587e8a_1200x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vIhM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32a364ea-287d-4fe6-9dc3-fe2117587e8a_1200x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vIhM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32a364ea-287d-4fe6-9dc3-fe2117587e8a_1200x600.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://fandf.co/43u5vgM">React Native Devs Are Sleeping on&#8239;TV&#8239;</a></strong></p><p>You&#8217;ve&#8239;optimized&#8239;for mobile. Maybe&#8239;tablet. But&#8239;the big screen&#8239;might feel&#8239;intimidating. Amazon Devices Builder Tools (ADBT)&#8239;for AI&#8239;gives your agent (Claude, Cursor, Kiro) Fire TV context&#8239;for&#8239;onboarding, performance debugging, and crash analysis,&#8239;so you can resolve blockers and&#8239;ship&#8239;apps&#8239;for&#8239;Fire TV faster.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-xTf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-xTf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-xTf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-xTf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#9883;&#65039; React</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9XJD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c320e37-936f-4fcd-b3a3-9bb1b60f4a9d_1200x619.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9XJD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c320e37-936f-4fcd-b3a3-9bb1b60f4a9d_1200x619.jpeg 424w, https://substackcdn.com/image/fetch/$s_!9XJD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c320e37-936f-4fcd-b3a3-9bb1b60f4a9d_1200x619.jpeg 848w, https://substackcdn.com/image/fetch/$s_!9XJD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c320e37-936f-4fcd-b3a3-9bb1b60f4a9d_1200x619.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!9XJD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c320e37-936f-4fcd-b3a3-9bb1b60f4a9d_1200x619.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9XJD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c320e37-936f-4fcd-b3a3-9bb1b60f4a9d_1200x619.jpeg" width="1200" height="619" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1c320e37-936f-4fcd-b3a3-9bb1b60f4a9d_1200x619.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:619,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;React Docs - <Fragment ref>&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="React Docs - <Fragment ref>" title="React Docs - <Fragment ref>" srcset="https://substackcdn.com/image/fetch/$s_!9XJD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c320e37-936f-4fcd-b3a3-9bb1b60f4a9d_1200x619.jpeg 424w, https://substackcdn.com/image/fetch/$s_!9XJD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c320e37-936f-4fcd-b3a3-9bb1b60f4a9d_1200x619.jpeg 848w, https://substackcdn.com/image/fetch/$s_!9XJD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c320e37-936f-4fcd-b3a3-9bb1b60f4a9d_1200x619.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!9XJD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c320e37-936f-4fcd-b3a3-9bb1b60f4a9d_1200x619.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://react.dev/reference/react/Fragment">React Docs - </a></strong><code>&lt;Fragment ref&gt;</code></p><p>In an upcoming version of React, the <code>ref</code> prop will expose a new <code>FragmentInstance</code> type that lets you interact with the fragment first-level children, unlocking new composition patterns. This exciting feature has just been documented more exhaustively, including 5 example use cases to get inspired from.</p><p>This feature is already available in canary, has gone through extensive testing in production, and is <a href="https://github.com/react/react/pull/34720">likely scheduled for React v19.3</a>.</p><p>Note that React Native will also get a similar feature (<a href="https://github.com/react/react-native-website/pull/5012">draft docs PR</a>). I don&#8217;t know if React / React Native will have full feature parity, but it&#8217;s clear that this will enable cross-platform usage on at least a subset of these APIs.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-xTf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-xTf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-xTf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-xTf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://svar.dev/react/gantt/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=june_2026">SVAR React Gantt Chart - Try React Gantt component for project scheduling with dependencies, critical path, and resource planning</a></p></li><li><p>&#128064; <a href="https://github.com/oven-sh/bun/pull/32504">Bun PR - React Compiler integration</a> - The upcoming Bun 1.4 should come with a <code>bun build --react-compiler</code> flag that runs the React Compiler in Rust, up to 20x faster than the Babel variant.</p></li><li><p>&#128038; <a href="https://x.com/sebastienlorber/status/2069670573555249498">The React Compiler in Rust removed from Rolldown/Vite</a> - The React Compiler in Rust needs to be integrated natively into Oxc to maximize performance, rather than shipped as a plugin. Unfortunately, this increased the binary size too much for all Rolldown/Vite users, so the integration has been temporarily withdrawn while it gets slimmed down.</p></li><li><p>&#128220; <a href="https://www.skovhus.dev/blog/moving-linear-from-styled-components-to-stylex">Moving Linear from styled&#8209;components to StyleX</a> - The Linear team has been looking to adopt an alternative to Styled Components (in maintenance mode). They settled on StyleX for its static extraction, minimal runtime, strong encapsulation, deterministic style resolution, ecosystem, developer and agent experience. They use an incremental migration strategy using AI and codemods.</p></li><li><p>&#128220; <a href="https://tanstack.com/blog/tanstack-table-v9-memory-performance">How an Underrated Refactor Saved 90% Memory Usage</a> - TanStack Table v9 significantly reduced memory usage for large tables by migrating row object methods to shared prototypes.</p></li><li><p>&#128220; <a href="https://newsletter.daishikato.com/p/waku-s-unique-feature-slices">Waku&#8217;s Unique Feature: Slices</a> - A short intro to Slices, a unique Waku feature inspired by Gatsby, easy to understand and yet quite powerful.</p></li><li><p>&#128220; <a href="https://dev.to/subito/how-we-cut-slow-responses-by-80-migrating-to-nextjs-app-router-37da">How We Cut Slow Responses by 80% Migrating to Next.js App Router</a> - The leading italian classifieds marketplace upgraded from the Pages Router to the App Router, using an incremental side-by-side strategy</p></li><li><p>&#128220; <a href="https://neciudan.dev/component-communication-patterns-in-react">Component Communication Patterns in React Applications</a></p></li><li><p>&#128184; <a href="https://sentry.io/resources/react-native-workshop-2026/?utm_source=thisweekinreact&amp;utm_medium=paid-community&amp;utm_campaign=mobile-fy27q2-reactnativeworkshop&amp;utm_content=newsletter-react-link-simon-grimm-register">Sentry - Join Simon Grimm as he triages a real React Native crash live in production using replays, logs, and Seer</a></p></li><li><p>&#128230; <a href="https://remix.run/blog/react-router-v8">React Router 8.0 - Turns v8 future flags on, ESM-only, upgrades React/Vite/Node min versions</a> - This release is &#8220;boring&#8221; on purpose to make the upgrade easy. It essentially enabling by default behavior changes that were previously released as opt-in future flags in v7. React Server Components are still being worked on and unstable.</p></li><li><p>&#128230; <a href="https://github.com/aidenybai/cnfast">cnfast - Fast drop in replacement for </a><code>clsx</code><a href="https://github.com/aidenybai/cnfast"> + </a><code>tailwind-merge</code> - Tailwind users, maybe this hasn&#8217;t crossed your mind, but using <code>tailwind-merge</code> means you&#8217;ve added a <a href="https://x.com/jjenzz/status/2068018844229087400">quite slow runtime CSS-in-JS layer</a> to your React app. This new project is a 4x faster alternative, although it remains a bottleneck.</p></li><li><p>&#128230; <a href="https://stylexjs.com/blog/v0.19.0">StyleX 0.19 - Inline atomic styles, ESLint 10 compatibility, expands shorthand autofixes</a></p></li><li><p>&#128230; <a href="https://base-ui.com/react/overview/releases/v1-6-0">Base UI 1.6 - OTPField stable, Drawer improvements, Combobox perf, docs redesign, many fixes</a></p></li><li><p>&#128230; <a href="https://www.remotion.dev/docs/effects">Remotion 4.0.464 - Composable effects for canvas-based components</a></p></li><li><p>&#128230; <a href="https://react-aria.adobe.com/releases/v1-19-0">React Aria 1.19 - Autocomplete @mentions, support Popover position relative to cursor</a></p></li><li><p>&#128230; <a href="https://github.com/react-hook-form/react-hook-form/releases/tag/v7.80.0">React Hook Form 7.80 - </a><code>useFieldArray({disabled})</code><a href="https://github.com/react-hook-form/react-hook-form/releases/tag/v7.80.0">, perf improvements</a></p></li><li><p>&#128230; <a href="https://foresightjs.com/">ForesightJS 4.0 - Predicts user intent based on mouse/keyboard inputs - First-class React integration</a></p></li><li><p>&#128230; <a href="https://polycss.com/">PolyCSS - CSS 3D engine for the DOM, with React bindings</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=FneS7tCWBMU">Lucas Barake - React Hooks Are Just a Linked List</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=cSDKkD_6kCo">Simeon Griggs - Next.js 16.3 got good (if you care)</a></p></li><li><p>&#127897;&#65039; <a href="https://www.youtube.com/watch?v=YVs2KWvMjLM">Se&#241;ors at Scale - Newsletters with Sebastian Lorber: RSS Curation, Acquisition, RSC</a> - I give you a glimpse behind the scenes of this newsletter!</p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WlFB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a4a89b-0582-446f-8a88-18621e54deba_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WlFB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a4a89b-0582-446f-8a88-18621e54deba_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!WlFB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a4a89b-0582-446f-8a88-18621e54deba_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!WlFB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a4a89b-0582-446f-8a88-18621e54deba_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!WlFB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a4a89b-0582-446f-8a88-18621e54deba_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WlFB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a4a89b-0582-446f-8a88-18621e54deba_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c2a4a89b-0582-446f-8a88-18621e54deba_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Addy Osmani&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Addy Osmani" title="Addy Osmani" srcset="https://substackcdn.com/image/fetch/$s_!WlFB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a4a89b-0582-446f-8a88-18621e54deba_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!WlFB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a4a89b-0582-446f-8a88-18621e54deba_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!WlFB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a4a89b-0582-446f-8a88-18621e54deba_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!WlFB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a4a89b-0582-446f-8a88-18621e54deba_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/addyosmani">Addy Osmani</a></strong><a href="https://twitter.com/addyosmani">Head of Chrome DX - Google</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-xTf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-xTf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-xTf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-xTf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4PAl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0dcdab9-3005-48ff-9cb7-0cdee982a476_2816x1472.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4PAl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0dcdab9-3005-48ff-9cb7-0cdee982a476_2816x1472.jpeg 424w, https://substackcdn.com/image/fetch/$s_!4PAl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0dcdab9-3005-48ff-9cb7-0cdee982a476_2816x1472.jpeg 848w, https://substackcdn.com/image/fetch/$s_!4PAl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0dcdab9-3005-48ff-9cb7-0cdee982a476_2816x1472.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!4PAl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0dcdab9-3005-48ff-9cb7-0cdee982a476_2816x1472.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4PAl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0dcdab9-3005-48ff-9cb7-0cdee982a476_2816x1472.jpeg" width="1456" height="761" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b0dcdab9-3005-48ff-9cb7-0cdee982a476_2816x1472.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:761,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Ship AI generated code safely with Meticulous.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Ship AI generated code safely with Meticulous." title="Ship AI generated code safely with Meticulous." srcset="https://substackcdn.com/image/fetch/$s_!4PAl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0dcdab9-3005-48ff-9cb7-0cdee982a476_2816x1472.jpeg 424w, https://substackcdn.com/image/fetch/$s_!4PAl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0dcdab9-3005-48ff-9cb7-0cdee982a476_2816x1472.jpeg 848w, https://substackcdn.com/image/fetch/$s_!4PAl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0dcdab9-3005-48ff-9cb7-0cdee982a476_2816x1472.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!4PAl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0dcdab9-3005-48ff-9cb7-0cdee982a476_2816x1472.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q2&amp;utm_content=2nd">Ship AI generated code safely with Meticulous.</a></strong></p><p>Claude writes your code. Claude reviews your code. Claude fixes the review comments. And somehow, <em>you&#8217;re</em> the one getting paged at 2am when it breaks in prod.</p><p>Fortunately, top AI-driven teams like Dropbox, Notion, LaunchDarkly, and Wiz rely on Meticulous to run 1000s of e2e UI tests autonomously, covering every user flow, edge case, role and permutation. Built by ex-Palantir engineers, <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q2&amp;utm_content=1st">Meticulous gives you near-exhaustive coverage in weeks, without any developer effort</a>.</p><p>It works like magic in the background:</p><ul><li><p>Near-exhaustive coverage on every test run</p></li><li><p>No test creation</p></li><li><p>No maintenance (seriously)</p></li><li><p>Zero flakes (built on a deterministic browser)</p></li></ul><p><strong>Check it out</strong> - and see why one engineering leader at Dropbox said that &#8220;<a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q2&amp;utm_content=1st#:~:text=Once%20we%20started%20using%20Meticulous%2C%20we%20couldn%27t%20imagine%20working%20without%20it.">once we started using Meticulous, we couldn&#8217;t imagine working without it</a>.&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-xTf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-xTf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-xTf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-xTf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128241; React-Native</strong></h2><ul><li><p>&#128184; <a href="https://go.posthog.com/twir-jun24">PostHog - We put PostHog in Slack and now everyone&#8217;s an engineer</a></p></li><li><p>&#128220; <a href="https://blog.margelo.com/building-videocall-app-with-filters">Building a Video Call App with Filters</a> - A deep dive from Margelo into using VisionCamera and WebRTC to build a communication app with real-time image processing. The demos are impressive and clearly push the limits of what we can do in React Native today.</p></li><li><p>&#128220; <a href="https://www.callstack.com/blog/writing-custom-renderers-for-react">Writing Custom Renderers for React</a> - The maintainer of React Native Testing Library had to create a custom renderer after React v19 deprecated its own React Test Renderer. He explains how he did so, and how the React Native reconciler differs from the DOM reconciler.</p></li><li><p>&#128220; <a href="https://expo.dev/blog/ios-widgets-and-live-activities-in-expo">iOS widgets and Live Activities are stable in Expo SDK 56</a></p></li><li><p>&#128220; <a href="https://expo.dev/blog/how-to-apply-professional-design-principles-in-ai-app-development">How to apply professional design principles in AI app development</a></p></li><li><p>&#128184; <a href="https://www.drizz.dev/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=wave1_rn">Drizz - Test your React Native app visually with AI. No locators, no flaky selectors, one suite for both platforms</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion/react-native-reanimated/releases/tag/4.5.0">Reanimated 4.5 - CSS Animations pseudo-selectors, </a><code>&lt;SharedTransitionBoundary&gt;</code><a href="https://github.com/software-mansion/react-native-reanimated/releases/tag/4.5.0">, Core Animation for shadow/background/border</a> - You can now use <code>:hover</code>, <code>:active</code>, and <code>:focus</code> in your CSS animations the same way you would in a browser.</p></li><li><p>&#128230; <a href="https://github.com/callstackincubator/voltra/releases/tag/v2.0.0">Voltra 2.0 - Rewrite from Expo Modules to Turbo Modules, now works with bare RN, modular packages for smaller server install</a></p></li><li><p>&#128230; <a href="https://github.com/react/metro/releases/tag/v0.85.0">Metro 0.85 - Require Node 22+, resolution self-referencing, perf and various fixes</a></p></li><li><p>&#128230; <a href="https://github.com/zykeco/react-native-ble-nitro/releases/tag/v1.14.0">Nitro BLE 1.14 - Advertised service data is now exposed on scan results</a></p></li><li><p>&#128230; <a href="https://github.com/EvanBacon/serve-sim">Serve Sim - The npx serve of Apple Simulators</a> - Hosts iOS Simulators for use with agent tools.</p></li><li><p>&#128230; <a href="https://github.com/watadarkstar/react-native-nsfw-detector">NSFW Detector - On-device CoreML model to detect nudity and unsafe visual content in images</a></p></li><li><p>&#128230; <a href="https://github.com/react-native-webview/react-native-webview/releases/tag/v14.0.0">WebView 14.0 - Drops Android &lt;7.0 support, 13.17 adds </a><code>removeIosKeyboardObserver</code><a href="https://github.com/react-native-webview/react-native-webview/releases/tag/v14.0.0"> prop</a></p></li><li><p>&#128230; <a href="https://github.com/AppAndFlow/react-native-transformer-text-input/releases/tag/v0.4.0">Transformer Text Input 0.4 - Add Web support</a></p></li><li><p>&#128230; <a href="https://github.com/getsentry/sentry-react-native/releases/tag/8.15.0">Sentry 8.15 - NativeLinkedErrors JVM stack traces, record XHR headers/bodies in Mobile Session Replay</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion/react-native-reanimated/releases/tag/worklets-0.10.0">Worklets 0.10 - Bundle Mode stable, API for module import forwarding, ArrayBufferView native serialization</a></p></li><li><p>&#128230; <a href="https://github.com/kuatsu/react-native-boost/releases">Boost 1.2-4 - Babel optimizing plugin - Text optimizations, translate View accessibility props, style inlining</a></p></li><li><p>&#128230; <a href="https://sheet.lodev09.com/blog/release-3-11">True Sheet 3.11 - Web renderer rewrite, iOS accessibility improvements, Android gesture fixes</a></p></li><li><p>&#128230; <a href="https://github.com/LegendApp/legend-list/releases/tag/v3.1.0">Legend List 3.1 - Experimental adaptive rendering during scroll, setItemSize API, sticky header fixes</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion-labs/react-native-nano-icons/releases/tag/v0.2.0">Nano Icons 0.2 - tvOS support, dynamic font linking, web specific createIconSet, RN 0.79 compat, a11y props</a></p></li><li><p>&#128230; <a href="https://github.com/hryhoriiK97/expo-paperkit">Expo PaperKit - Apple PaperKit for Expo/React Native</a></p></li><li><p>&#128230; <a href="https://github.com/callstackincubator/rozenite/releases/tag/v1.13.0">Rozenite 1.13 - getTree/getComponent agent tools, Redux improvements</a></p></li><li><p>&#127897;&#65039; <a href="https://infinite.red/react-native-radio/rnr-366-securing-react-native-apps-in-the-ai-era">RNR 366 - Securing React Native Apps in the AI Era</a> - discussion about AI-powered security threats, practical ways to secure RN apps, and reduce risk</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-xTf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-xTf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-xTf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-xTf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128256; Other</strong></h2><ul><li><p>&#128064; <a href="https://drafts.csswg.org/css-link-params-1/">CSS Linked Params</a> - This early W3C spec from Google/Mozilla solves a long-standing limitation, letting you pass CSS values into external linked resources. This means you can customize <code>&lt;img src=&#8221;icon.svg&#8221;&gt;</code> with CSS.</p></li><li><p>&#128220; <a href="https://www.jayfreestone.com/writing/share-the-policy-not-the-code/">Ship the policy, not the code</a> - Instead of duplicating business logic across frontend/backend, you can use an isomorphic rules engine (such as <a href="https://casl.js.org/v7/en/">CASL</a>) and let the backend serialize the rules to the frontend.</p></li><li><p>&#128230; <a href="https://vite.dev/blog/announcing-vite8-1">Vite 8.1 - Experimental Bundled Dev Mode, Chunk Import Map, Wasm ESM integration</a> - It&#8217;s now possible to use the &#8220;Full Bundle Mode&#8221; in dev and get much faster startup/HMR in very large apps.</p></li><li><p>&#128230; <a href="https://astro.build/blog/astro-7/">Astro 7.0 - Vite 8, Rolldown, and Rust to process </a><code>.astro</code><a href="https://astro.build/blog/astro-7/"> , </a><code>.md</code><a href="https://astro.build/blog/astro-7/">, </a><code>.mdx</code><a href="https://astro.build/blog/astro-7/"> files, Advanced Routing, Route Caching, and more</a> - All about speed, Astro builds are now ~61% faster!</p></li><li><p>&#128230; <a href="https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-rc/">TypeScript 7.0 RC</a> - The faster Go rewrite is almost production-ready; the upgrade should be relatively easy. TS7 can be run alongside TS6.</p></li><li><p>&#128230; <a href="https://nubjs.com/blog/introducing-nub">Nub - An all-in-one toolkit for Node.js</a> - A Rust CLI that augments the Node instead of replacing it, adding Bun&#8217;s best features on top of it.</p></li><li><p>&#128230; <a href="https://sharp.pixelplumbing.com/changelog/v0.35.0/">Sharp 0.35 - Remove install script</a> - The popular image processing library now ships with pre-built binaries. This aligns with package managers now blocking install scripts by default, and other projects (<a href="https://github.com/swc-project/swc/issues/11898">SWC</a>, <a href="https://github.com/evanw/esbuild/issues/4475">esbuild</a>) are considering doing the same.</p></li><li><p>&#128230; <a href="https://github.blog/changelog/2026-06-18-safer-pull_request_target-defaults-for-github-actions-checkout/">actions/checkout 7.0 - Prevents common </a><code>pull_request_target</code><a href="https://github.blog/changelog/2026-06-18-safer-pull_request_target-defaults-for-github-actions-checkout/"> pwn request patterns</a> - Good news for supply chain security. GitHub tightened security for this popular action, refusing to check out pull request code unless you opt in with <code>allow-unsafe-pr-checkout: true</code>. This attack vector recently led to many compromised npm packages, including TanStack, Nx, PostHog, LiteLLM, and more.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-xTf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-xTf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-xTf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-xTf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!-xTf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa069ff2e-105c-43ba-ab16-477a92c212fc_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#129325; Fun</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xEAC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F775af84a-95ac-4fb3-a1ff-3afdf57df22f_1000x1403.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xEAC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F775af84a-95ac-4fb3-a1ff-3afdf57df22f_1000x1403.jpeg 424w, https://substackcdn.com/image/fetch/$s_!xEAC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F775af84a-95ac-4fb3-a1ff-3afdf57df22f_1000x1403.jpeg 848w, https://substackcdn.com/image/fetch/$s_!xEAC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F775af84a-95ac-4fb3-a1ff-3afdf57df22f_1000x1403.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!xEAC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F775af84a-95ac-4fb3-a1ff-3afdf57df22f_1000x1403.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xEAC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F775af84a-95ac-4fb3-a1ff-3afdf57df22f_1000x1403.jpeg" width="1000" height="1403" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/775af84a-95ac-4fb3-a1ff-3afdf57df22f_1000x1403.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1403,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!xEAC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F775af84a-95ac-4fb3-a1ff-3afdf57df22f_1000x1403.jpeg 424w, https://substackcdn.com/image/fetch/$s_!xEAC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F775af84a-95ac-4fb3-a1ff-3afdf57df22f_1000x1403.jpeg 848w, https://substackcdn.com/image/fetch/$s_!xEAC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F775af84a-95ac-4fb3-a1ff-3afdf57df22f_1000x1403.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!xEAC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F775af84a-95ac-4fb3-a1ff-3afdf57df22f_1000x1403.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!u_XY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab85bee3-51cc-4a8f-ba1b-7bba692973db_1000x975.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!u_XY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab85bee3-51cc-4a8f-ba1b-7bba692973db_1000x975.jpeg 424w, https://substackcdn.com/image/fetch/$s_!u_XY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab85bee3-51cc-4a8f-ba1b-7bba692973db_1000x975.jpeg 848w, https://substackcdn.com/image/fetch/$s_!u_XY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab85bee3-51cc-4a8f-ba1b-7bba692973db_1000x975.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!u_XY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab85bee3-51cc-4a8f-ba1b-7bba692973db_1000x975.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!u_XY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab85bee3-51cc-4a8f-ba1b-7bba692973db_1000x975.jpeg" width="1000" height="975" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab85bee3-51cc-4a8f-ba1b-7bba692973db_1000x975.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:975,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!u_XY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab85bee3-51cc-4a8f-ba1b-7bba692973db_1000x975.jpeg 424w, https://substackcdn.com/image/fetch/$s_!u_XY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab85bee3-51cc-4a8f-ba1b-7bba692973db_1000x975.jpeg 848w, https://substackcdn.com/image/fetch/$s_!u_XY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab85bee3-51cc-4a8f-ba1b-7bba692973db_1000x975.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!u_XY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab85bee3-51cc-4a8f-ba1b-7bba692973db_1000x975.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>See ya! &#128075;</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[This Week In React 286]]></title><description><![CDATA[React Compiler, StyleX, TSRX, WordPress, TanStack, Remotion, Hydrogen | RN 0.86, Enriched, Gesture Handler, Crypto, Morph View, Compressor, Data Detector, Hermes | Package Maps, Babel, Biome, Zod Comp]]></description><link>https://substack.thisweekinreact.com/p/this-week-in-react-286</link><guid isPermaLink="false">https://substack.thisweekinreact.com/p/this-week-in-react-286</guid><dc:creator><![CDATA[Sébastien Lorber]]></dc:creator><pubDate>Fri, 19 Jun 2026 12:49:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!uHlz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad98d44e-968c-4ed0-9848-41b30899ecc9_1000x525.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi everyone, <a href="https://x.com/sebastienlorber">Seb</a> and <a href="https://x.com/jaworek3211">Jan</a> here &#128075;!</p><p>This week, the React Compiler in Rust is rolling out, and early adopters have already reported significant speedups.</p><p>React Native 0.86 finally came out with edge-to-edge fixes in core. It&#8217;s retro-compatible, and Expo SDK 56 should be able to upgrade.</p><p>Let&#8217;s dive in!</p><p>As always, thanks for supporting us on your favorite platform:</p><ul><li><p>&#129419; <a href="https://slo.im/last/b">Bluesky</a></p></li><li><p>&#10006;&#65039; <a href="https://slo.im/last/x">X / Twitter</a></p></li><li><p>&#128084; <a href="https://slo.im/last/l">LinkedIn</a></p></li><li><p>&#128125; <a href="https://slo.im/last/r">Reddit</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Vz20!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcadcf428-8858-4ce7-97c0-52ed46004c10_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Vz20!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcadcf428-8858-4ce7-97c0-52ed46004c10_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Vz20!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcadcf428-8858-4ce7-97c0-52ed46004c10_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Vz20!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcadcf428-8858-4ce7-97c0-52ed46004c10_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Vz20!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcadcf428-8858-4ce7-97c0-52ed46004c10_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Vz20!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcadcf428-8858-4ce7-97c0-52ed46004c10_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cadcf428-8858-4ce7-97c0-52ed46004c10_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;William Candillon&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="William Candillon" title="William Candillon" srcset="https://substackcdn.com/image/fetch/$s_!Vz20!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcadcf428-8858-4ce7-97c0-52ed46004c10_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Vz20!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcadcf428-8858-4ce7-97c0-52ed46004c10_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Vz20!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcadcf428-8858-4ce7-97c0-52ed46004c10_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Vz20!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcadcf428-8858-4ce7-97c0-52ed46004c10_400x400.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/wcandillon">William Candillon</a></strong><a href="https://twitter.com/wcandillon">React-Native animations expert - Youtuber</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RKXc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RKXc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RKXc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RKXc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KeKk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed0e8fe3-f0a8-4e7b-b3be-b0165e5454c3_2816x1472.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KeKk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed0e8fe3-f0a8-4e7b-b3be-b0165e5454c3_2816x1472.jpeg 424w, https://substackcdn.com/image/fetch/$s_!KeKk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed0e8fe3-f0a8-4e7b-b3be-b0165e5454c3_2816x1472.jpeg 848w, https://substackcdn.com/image/fetch/$s_!KeKk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed0e8fe3-f0a8-4e7b-b3be-b0165e5454c3_2816x1472.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!KeKk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed0e8fe3-f0a8-4e7b-b3be-b0165e5454c3_2816x1472.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KeKk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed0e8fe3-f0a8-4e7b-b3be-b0165e5454c3_2816x1472.jpeg" width="1456" height="761" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ed0e8fe3-f0a8-4e7b-b3be-b0165e5454c3_2816x1472.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:761,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Ship AI generated code safely with Meticulous.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Ship AI generated code safely with Meticulous." title="Ship AI generated code safely with Meticulous." srcset="https://substackcdn.com/image/fetch/$s_!KeKk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed0e8fe3-f0a8-4e7b-b3be-b0165e5454c3_2816x1472.jpeg 424w, https://substackcdn.com/image/fetch/$s_!KeKk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed0e8fe3-f0a8-4e7b-b3be-b0165e5454c3_2816x1472.jpeg 848w, https://substackcdn.com/image/fetch/$s_!KeKk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed0e8fe3-f0a8-4e7b-b3be-b0165e5454c3_2816x1472.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!KeKk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed0e8fe3-f0a8-4e7b-b3be-b0165e5454c3_2816x1472.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q2&amp;utm_content=1st">Ship AI generated code safely with Meticulous.</a></strong></p><p>Claude writes your code. Claude reviews your code. Claude fixes the review comments. And somehow, <em>you&#8217;re</em> the one getting paged at 2am when it breaks in prod.</p><p>Fortunately, top AI-driven teams like Dropbox, Notion, LaunchDarkly, and Wiz rely on Meticulous to run 1000s of e2e UI tests autonomously, covering every user flow, edge case, role and permutation. Built by ex-Palantir engineers, <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q2&amp;utm_content=1st">Meticulous gives you near-exhaustive coverage in weeks, without any developer effort</a>.</p><p>It works like magic in the background:</p><ul><li><p>Near-exhaustive coverage on every test run</p></li><li><p>No test creation</p></li><li><p>No maintenance (seriously)</p></li><li><p>Zero flakes (built on a deterministic browser)</p></li></ul><p><strong>Check it out</strong> - and see why one engineering leader at Dropbox said that &#8220;<a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q2&amp;utm_content=1st#:~:text=Once%20we%20started%20using%20Meticulous%2C%20we%20couldn%27t%20imagine%20working%20without%20it.">once we started using Meticulous, we couldn&#8217;t imagine working without it</a>.&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RKXc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RKXc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RKXc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RKXc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#9883;&#65039; React</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uHlz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad98d44e-968c-4ed0-9848-41b30899ecc9_1000x525.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uHlz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad98d44e-968c-4ed0-9848-41b30899ecc9_1000x525.jpeg 424w, https://substackcdn.com/image/fetch/$s_!uHlz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad98d44e-968c-4ed0-9848-41b30899ecc9_1000x525.jpeg 848w, https://substackcdn.com/image/fetch/$s_!uHlz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad98d44e-968c-4ed0-9848-41b30899ecc9_1000x525.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!uHlz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad98d44e-968c-4ed0-9848-41b30899ecc9_1000x525.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uHlz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad98d44e-968c-4ed0-9848-41b30899ecc9_1000x525.jpeg" width="1000" height="525" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ad98d44e-968c-4ed0-9848-41b30899ecc9_1000x525.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:525,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;React Compiler in Rust&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="React Compiler in Rust" title="React Compiler in Rust" srcset="https://substackcdn.com/image/fetch/$s_!uHlz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad98d44e-968c-4ed0-9848-41b30899ecc9_1000x525.jpeg 424w, https://substackcdn.com/image/fetch/$s_!uHlz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad98d44e-968c-4ed0-9848-41b30899ecc9_1000x525.jpeg 848w, https://substackcdn.com/image/fetch/$s_!uHlz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad98d44e-968c-4ed0-9848-41b30899ecc9_1000x525.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!uHlz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad98d44e-968c-4ed0-9848-41b30899ecc9_1000x525.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>React Compiler in Rust rollout</strong></p><p>The integration has finally started to land in mainstream libs, starting with Oxlint, but may others are following:</p><ul><li><p>&#128230; <a href="https://oxc.rs/docs/guide/usage/linter/rules/react/react-compiler.html">Oxlint 1.70 - Add a </a><code>react/react-compiler</code><a href="https://oxc.rs/docs/guide/usage/linter/rules/react/react-compiler.html"> rule</a> - This experimental rule leverages the Rust port of the React Compiler and surfaces the same diagnostics as <code>eslint-plugin-react-compiler</code>. Early adopters (<a href="https://github.com/adobe/react-spectrum/pull/10203">React Spectrum</a>, <a href="https://github.com/sanity-io/sanity/pull/13114">Sanity</a>) have already reported significant (x5-6) performance improvements.</p></li><li><p>&#128064; <a href="https://github.com/rolldown/rolldown/pull/9801">Rolldown PR - Expose React Compiler options</a> - PR already merged, so Vite and Rolldown users will soon be able to use the <code>transform.reactCompiler</code> option.</p></li><li><p>&#128064; <a href="https://github.com/swc-project/swc/pull/11917">SWC PR - Add React Compiler</a> - The PR has been merged and released in Rust crate v68.1, exposing a new <code>jsc.transform.reactCompiler</code> configuration option.</p></li><li><p>&#128064; <a href="https://github.com/web-infra-dev/rspack/pull/14435">Rspack PR - Bump SWC to support the React Compiler</a> - In the next v2.1 release (the beta drops tomorrow), <code>builtin:swc-loader</code> will support the React Compiler in Rust. The Rspack team reported that the Rust version is 7-13x faster than the Babel one (<a href="https://x.com/jiahan_c/status/2067120712587092090">tweet</a>).</p></li><li><p>&#128064; <a href="https://github.com/vercel/next.js/pull/94573">Next.js PR - Add experimental Turbopack React Compiler support</a> - This adds a new <code>experimental.turbopackRustReactCompiler</code> option. Available in Next.js v16.3.0-canary.52, and likely to be released very soon in Next.js 16.4.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RKXc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RKXc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RKXc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RKXc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://go.posthog.com/twir-jun17">Product for Engineers - The stuff nobody tells you about startup marketing</a></p></li><li><p>&#128064; <a href="https://github.com/whatwg/html/issues/12591">HTML proposal - Localized time formatting without JavaScript</a> - Have you ever come across date-related SSR/SSG hydration errors in React or any other framework? Apparently, browser vendors agree that these problems need to be solved, and here&#8217;s an initial proposal based on declarative HTML attributes.</p></li><li><p>&#128064; <a href="https://make.wordpress.org/core/2026/06/05/react-19-upgrade-temporarily-reverted-in-gutenberg/">WordPress - React 19 upgrade temporarily reverted in Gutenberg</a> - WordPress initially announced a React 19 upgrade for the Gutenberg plugin and WordPress. They encountered JSX runtime compatibility issues between React v18/v19 and had to revert. Support for v19 is still planned for WordPress 7.1.</p></li><li><p>&#128220; <a href="https://tsrx.dev/blog/rethinking-tsrx">Rethinking TSRX</a> - The TSRX (TypeScript Render Extensions) syntax has been redesigned to be backward-compatible with JSX, easing its adoption and making its proprietary features more explicit. An interesting project to watch this year, coming from Dominic Gannaway (React, Svelte, Inferno), offering an ergonomic shared UI syntax compatible with various framework runtimes.</p></li><li><p>&#128220; <a href="https://www.adarsha.dev/blog/tanstack-mental-model-for-nextjs-developers">TanStack Start: A Mental Model for Next.js Developers</a> - A deep dive into the differences, covering typesafety, isomorphic loaders, RSC-as-data mental model, and more.</p></li><li><p>&#128220; <a href="https://www.jayfreestone.com/writing/module-level-dependency-injection-react/">Module System Dependency Injection in React &amp; Friends</a> - An interesting overview of Dependency Injection across React meta-frameworks, and a critique of Next.js suggestion to use the module system for DI in RSCs.</p></li><li><p>&#128220; <a href="https://polar.sh/blog/orbit-llm-safe-design-system">Building an LLM safe design system</a> - Polar&#8217;s new design system relies on a single polymorphic <code>&lt;Box&gt;</code> component with typesafe props accepting StyleX design tokens. They forbid the usage of Tailwind or primitive HTML elements, so that AI agents always respect their design decisions.</p></li><li><p>&#128184; <a href="https://certificates.dev/react/free-weekend?utm_source=twir&amp;utm_medium=newsletter&amp;utm_campaign=react_free_weekend_june_2026&amp;friend=TWIR">Certificates.dev: Free React Weekend. Unlimited access to 9 chapters, 49 quiz questions, 13 coding challenges, and a trial exam. 27-28 June</a></p></li><li><p>&#128230; <a href="https://hydrogen.shopify.dev/update/hydrogen-developer-preview">Hydrogen developer preview</a> - Shopify&#8217;s framework, initially leaning on Remix/React, is becoming a framework/runtime agnostic toolkit, designed in partnership with the Next.js team.</p></li><li><p>&#128230; <a href="https://github.com/facebook/stylex/blob/main/CHANGELOG.md#0190-jun-14-2026">StyleX 0.19 - </a><code>@stylexjs/atoms</code><a href="https://github.com/facebook/stylex/blob/main/CHANGELOG.md#0190-jun-14-2026"> for Tailwind-like inline atomic styles, ESLint 10 compatibility</a></p></li><li><p>&#128230; <a href="https://www.react.doctor/docs/ci-and-prs/github-actions-setup">React Doctor GitHub Action</a></p></li><li><p>&#128230; <a href="https://github.com/airbnb/visx/releases/tag/v4.0.0">Visx 4.0 - Low-level visualization components from Airbnb - Support for React 19</a></p></li><li><p>&#128230; <a href="https://github.com/remotion-dev/remotion/releases/v4.0.475">Remotion 4.0.475 - Interactively change your code with Remotion Studio</a></p></li><li><p>&#128230; <a href="https://github.com/rstackjs/rsbuild-plugin-react-router/releases/tag/rsbuild-plugin-react-router%400.2.0">Rsbuild Plugin React Router 0.2 - Support for Rsbuild/Rspack v2</a></p></li><li><p>&#128230; <a href="https://github.com/vadimdemedes/ink">Ink 7.1 - CLI renderer - Add </a><code>suspendTerminal()</code><a href="https://github.com/vadimdemedes/ink"> to hand the terminal to a child process</a></p></li><li><p>&#128230; <a href="https://tanstack.com/blog/tanstack-ai-beta">TanStack AI Beta - The Switzerland of AI Tooling Grows Up</a> - Comes with first-class React support.</p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!p8bM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F556767f5-3669-403a-b0d4-6e011414fbc3_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!p8bM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F556767f5-3669-403a-b0d4-6e011414fbc3_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!p8bM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F556767f5-3669-403a-b0d4-6e011414fbc3_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!p8bM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F556767f5-3669-403a-b0d4-6e011414fbc3_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!p8bM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F556767f5-3669-403a-b0d4-6e011414fbc3_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!p8bM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F556767f5-3669-403a-b0d4-6e011414fbc3_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/556767f5-3669-403a-b0d4-6e011414fbc3_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Dominik Dorfmeister&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Dominik Dorfmeister" title="Dominik Dorfmeister" srcset="https://substackcdn.com/image/fetch/$s_!p8bM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F556767f5-3669-403a-b0d4-6e011414fbc3_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!p8bM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F556767f5-3669-403a-b0d4-6e011414fbc3_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!p8bM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F556767f5-3669-403a-b0d4-6e011414fbc3_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!p8bM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F556767f5-3669-403a-b0d4-6e011414fbc3_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/TkDodo">Dominik Dorfmeister</a></strong><a href="https://twitter.com/TkDodo">Web Developer - React-Query maintainer</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RKXc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RKXc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RKXc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RKXc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jhEE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4633d93-0103-4ad3-a9da-ee42383e7bf0_1430x715.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jhEE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4633d93-0103-4ad3-a9da-ee42383e7bf0_1430x715.jpeg 424w, https://substackcdn.com/image/fetch/$s_!jhEE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4633d93-0103-4ad3-a9da-ee42383e7bf0_1430x715.jpeg 848w, https://substackcdn.com/image/fetch/$s_!jhEE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4633d93-0103-4ad3-a9da-ee42383e7bf0_1430x715.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!jhEE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4633d93-0103-4ad3-a9da-ee42383e7bf0_1430x715.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jhEE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4633d93-0103-4ad3-a9da-ee42383e7bf0_1430x715.jpeg" width="1430" height="715" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e4633d93-0103-4ad3-a9da-ee42383e7bf0_1430x715.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:715,&quot;width&quot;:1430,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Make your logs queryable, not just readable&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Make your logs queryable, not just readable" title="Make your logs queryable, not just readable" srcset="https://substackcdn.com/image/fetch/$s_!jhEE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4633d93-0103-4ad3-a9da-ee42383e7bf0_1430x715.jpeg 424w, https://substackcdn.com/image/fetch/$s_!jhEE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4633d93-0103-4ad3-a9da-ee42383e7bf0_1430x715.jpeg 848w, https://substackcdn.com/image/fetch/$s_!jhEE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4633d93-0103-4ad3-a9da-ee42383e7bf0_1430x715.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!jhEE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4633d93-0103-4ad3-a9da-ee42383e7bf0_1430x715.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://sentry.io/cookbook/structured-logging-logtape/?utm_source=thisweekinreact&amp;utm_medium=paid-community&amp;utm_campaign=logs-fy27q1-cookbook&amp;utm_content=newsletter-logtape-secondary-trysentry">Make your logs queryable, not just readable</a></strong></p><p><code>console.log("here")</code>doesn&#8217;t cut it in production. Structured logs do.</p><p>Use this tutorial to connect LogTape + Sentry and make every log searchable, queryable, and connected to your traces. When something breaks, you&#8217;ll get the full picture: log events, error context, and Session Replay, all linked by trace ID.</p><ul><li><p>Filter by user ID, order ID, or any custom field</p></li><li><p>Attach context once, inherit it everywhere</p></li><li><p>Alert when log patterns spike before users notice</p></li></ul><p><a href="https://sentry.io/cookbook/structured-logging-logtape/?utm_source=thisweekinreact&amp;utm_medium=paid-community&amp;utm_campaign=logs-fy27q1-cookbook&amp;utm_content=newsletter-logtape-secondary-trysentry">See the full recipe &#10145;&#65039;</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RKXc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RKXc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RKXc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RKXc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128241; React-Native</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yyxG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39b6218a-43e0-4dbf-bac0-35d87322e0b9_1000x525.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yyxG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39b6218a-43e0-4dbf-bac0-35d87322e0b9_1000x525.jpeg 424w, https://substackcdn.com/image/fetch/$s_!yyxG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39b6218a-43e0-4dbf-bac0-35d87322e0b9_1000x525.jpeg 848w, https://substackcdn.com/image/fetch/$s_!yyxG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39b6218a-43e0-4dbf-bac0-35d87322e0b9_1000x525.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!yyxG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39b6218a-43e0-4dbf-bac0-35d87322e0b9_1000x525.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yyxG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39b6218a-43e0-4dbf-bac0-35d87322e0b9_1000x525.jpeg" width="1000" height="525" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/39b6218a-43e0-4dbf-bac0-35d87322e0b9_1000x525.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:525,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;React Native 0.86&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="React Native 0.86" title="React Native 0.86" srcset="https://substackcdn.com/image/fetch/$s_!yyxG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39b6218a-43e0-4dbf-bac0-35d87322e0b9_1000x525.jpeg 424w, https://substackcdn.com/image/fetch/$s_!yyxG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39b6218a-43e0-4dbf-bac0-35d87322e0b9_1000x525.jpeg 848w, https://substackcdn.com/image/fetch/$s_!yyxG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39b6218a-43e0-4dbf-bac0-35d87322e0b9_1000x525.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!yyxG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39b6218a-43e0-4dbf-bac0-35d87322e0b9_1000x525.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://reactnative.dev/blog/2026/06/11/react-native-0.86">React Native 0.86</a></strong></p><p>The new React Native release is out! This time, there are no major features or changes. It&#8217;s focused on fixes and stability improvements. Although it might not seem that exciting, the good news is that there are no breaking changes, which should make upgrading that much easier. Especially, with all the AI tools that can assist in it. &#128521;</p><p>Here are the highlights:</p><ul><li><p>The React Native repository has moved to the <a href="https://github.com/react">/react GitHub org</a> under the <a href="https://react.foundation/">React Foundation</a>, alongside other core projects. It&#8217;s a major step toward a more independent foundation focused on stewarding React&#8217;s future.</p></li><li><p>Comprehensive edge-to-edge support on Android 15+.</p></li><li><p>Performance tracing improvements in React Native DevTools.</p></li></ul><p>Related news:</p><ul><li><p>&#128038; <a href="https://x.com/cortinico/status/2067181532138152308">The RN repository transition resulted in forks being locked</a> - See how to unlock your fork so that you can continue contributing.</p></li><li><p>&#128038; <a href="https://x.com/zoontek/status/2066490044605436337">Expo SDK 56 will soon be updated to RN 0.86</a></p></li><li><p>&#128038; <a href="https://x.com/zoontek/status/2066466699985989874">With RN 0.86, you don&#8217;t need react-native-edge-to-edge anymore</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RKXc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RKXc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RKXc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RKXc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://docs.maestro.dev/get-started/maestro-mcp?utm_source=this-week-in-react&amp;utm_medium=newsletter&amp;utm_campaign=mcp-viewer-jun17">Maestro - Write React Native UI tests with Cursor or Claude Code, see them run live in Maestro Viewer.</a></p></li><li><p>&#128467;&#65039; <a href="https://ti.to/chainreact/chainreact2026/discount/TWIR">Chain React</a> - &#127482;&#127480; Portland - 30-31 July. Don&#8217;t miss talks from experts at Expo, React Foundation, Software Mansion, and Infinite Red! Get a 15% discount with code &#8220;TWIR&#8221;.</p></li><li><p>&#128220; <a href="https://blog.margelo.com/four-years-of-react-native-quick-crypto">Four Years of React Native Quick Crypto: From Wallets to Node Parity</a> - A history of a JSI-based hash-and-HMAC library written for Web3 boom, its evolution into full Node crypto implementation on mobile, Nitro rewrite, and more.</p></li><li><p>&#128220; <a href="https://sighery.com/posts/patching-kindle-homepage/">React Native, Hermes bytecode, and the Kindle homepage</a> - Amazon e-readers use RN to power their homepage. The author, a Kindle modder, dives into Hermes bytecode to patch the Kindle homepage and remove carousel ads.</p></li><li><p>&#128220; <a href="https://expo.dev/blog/faster-ios-builds-with-precompiled-xcframeworks">Faster iOS Builds with Precompiled XCFrameworks</a> - prebuild Expo modules are now enabled by default, a step towards moving away from CocoaPods and reducing the amount of native compilation steps. It&#8217;s a part of a broader modernization effort.</p></li><li><p>&#128220; <a href="https://medium.com/@pumpdotfun_/how-we-improved-the-startup-time-of-our-app-by-50-b3107bed1bf9">How We Improved the Startup Time of Our App by 50%</a> - Case study on how to profile native and JS code, what optimisations had the biggest impact, and how to protect against regressions.</p></li><li><p>&#128220; <a href="https://swmansion.com/blog/moqkit-native-mobile-sdk-moq-ios-android/">MoQKit: A Native Mobile SDK for MoQ on iOS and Android</a> - Media over QUIC is a live media protocol. SWM is working on adding support, starting with native SDKs, with RN coming next.</p></li><li><p>&#128220; <a href="https://expo.dev/blog/introducing-observe">EAS Observe: Performance monitoring for Expo apps</a></p></li><li><p>&#128220; <a href="https://codewithbeto.dev/blog/still-betting-on-react-native">Native got easy. I&#8217;m still betting on React Native.</a></p></li><li><p>&#128220; <a href="https://www.callstack.com/blog/ai-assisted-react-native-migration-for-tv-lessons-from-zattoo">AI-Assisted React Native Migration for TV: Lessons From Zattoo</a></p></li><li><p>&#128220; <a href="https://expo.dev/blog/how-a-kotlin-compiler-plugin-cut-android-time-to-first-render">How a Kotlin compiler plugin cut Android time to first render by 30%</a></p></li><li><p>&#128220; <a href="https://swmansion.com/blog/app-js-conf-2026-recap-gesture-handler-3-0-type-gpu-cli-screens-5-0-and-more/">App.js Conf 2026 Recap - Gesture Handler 3.0, TypeGPU CLI, Screens 5.0, and More</a></p></li><li><p>&#128230; <a href="https://github.com/blazejkustra/react-native-morph-view">Morph View - Morph one image into another with a smooth gooey effect, on the GPU</a></p></li><li><p>&#128230; <a href="https://github.com/uni-stack/uniwind/releases/tag/v1.9.0">Uniwind 1.9 - Layout direction component, RTL support</a></p></li><li><p>&#128230; <a href="https://github.com/getsentry/sentry-react-native/releases/tag/8.14.0">Sentry 8.14 - Deep link correlation, Android profiling improvements, Expo Router instrumentation</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion/react-native-gesture-handler/releases/tag/v2.32.0">Gesture Handler 2.32 - React Native 0.86 support, fix </a><code>RNRenderer</code><a href="https://github.com/software-mansion/react-native-gesture-handler/releases/tag/v2.32.0"> import</a></p></li><li><p>&#128230; <a href="https://github.com/N0ku/react-native-nitro-healthkit">Nitro HealthKit - Single TypeScript API over Apple HealthKit and Android Health Connect</a></p></li><li><p>&#128230; <a href="https://github.com/JoaoPauloCMarra/react-native-nitro-markdown/releases/tag/v0.8.0">Nitro Markdown 0.8 - Custom </a><code>renderMarkdown</code><a href="https://github.com/JoaoPauloCMarra/react-native-nitro-markdown/releases/tag/v0.8.0"> for MarkdownStream, TypeScript improvements, iOS crash fixes</a></p></li><li><p>&#128230; <a href="https://github.com/numandev1/react-native-compressor/releases/tag/v2.0.0">Compressor 2.0 - Nitro Modules migration, min RN 0.75+</a></p></li><li><p>&#128230; <a href="https://github.com/pablogdcr/react-native-data-detector">Data Detector - Cross-platform text data detection of phone numbers, URLs, emails, dates, and addresses</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion/react-native-enriched-html/releases/tag/v1.0.0">Enriched HTML 1.0 - Stable release, renamed from </a><code>react-native-enriched</code><a href="https://github.com/software-mansion/react-native-enriched-html/releases/tag/v1.0.0"> to </a><code>react-native-enriched-html</code></p></li><li><p>&#128230; <a href="https://github.com/callstack/react-native-builder-bob/releases/tag/create-react-native-library%400.63.0">CRNL 0.63 / Builder Bob 0.43 - use a unique name for the exports condition for source, metro-config dropped</a></p></li><li><p>&#128230; <a href="https://github.com/LegendApp/legend-list/releases/tag/v3.0.6">Legend List 3.0.6 - </a><code>clearCaches</code><a href="https://github.com/LegendApp/legend-list/releases/tag/v3.0.6"> rechecks visible rows, scroll perf, KeyboardAware insets</a></p></li><li><p>&#128230; <a href="https://github.com/zoontek/react-native-permissions/releases/tag/5.6.0">Permissions 5.6 - </a><code>openContactPicker</code><a href="https://github.com/zoontek/react-native-permissions/releases/tag/5.6.0"> for iOS 18+ limited contacts</a></p></li><li><p>&#128230; <a href="https://github.com/callstack/agent-device/releases/tag/v0.17.6">Agent Device 0.17.6 - Rslib perf, external xctest runner, Maestro reporter improvements</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=HmFvvd5bLSo&amp;list=PLkOyNuxGl9jy5hgF3xR64k9reOM5jHDHl">William Candillon - Learn React Native Declarative Gestures and Animations</a> - William&#8217;s animation course is now freely available. It&#8217;s based on Reanimated v2, but it&#8217;s still worth it for learning evergreen animation techniques. By the way, William has a new website where he has published an <a href="https://wcandillon.dev/article/hello-project-redraw">intro to Redraw</a>.</p></li><li><p>&#127909; <a href="https://www.youtube.com/playlist?list=PLSk21zn8fFZCE_TlHUVnTVMm7mNl_fzxl">App.js Conf 2026 - Full conference playlist</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=4j6NvCNPGtE">Beto - Expo UI Crash Course: Render Real SwiftUI &amp; Jetpack Compose from React Native</a></p></li><li><p>&#127897;&#65039; <a href="https://infinite.red/react-native-radio/rnr-365-chain-react-2026">React Native Radio 365 - Chain React 2026 behind the scenes, AI trends</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RKXc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RKXc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RKXc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RKXc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128256; Other</strong></h2><ul><li><p>&#128064; <a href="https://github.com/nodejs/node/pull/62239">Node.js PR - Experimental support for package maps</a> - Node.js can now resolve packages using a static JSON file generated by a package manager, instead of walking <code>node_modules</code> directories. This can make resolution more reliable, decoupled, and performant. Already supported by <a href="https://github.com/yarnpkg/berry/releases/tag/@yarnpkg/cli/4.17.0">Yarn 4.17</a>, and possibly <a href="https://github.com/pnpm/pnpm/pull/12430">soon in pnpm</a>?</p></li><li><p>&#128220; <a href="https://olliewilliams.xyz/blog/dark-mode/">Dark mode with web standards</a> - An overview of <code>color-scheme</code>, its current limits, and what&#8217;s coming.</p></li><li><p>&#128220; <a href="https://www.prisma.io/blog/bun-rust-rewrite-prisma-compute">We put Bun&#8217;s Rust rewrite in production on Prisma Compute</a> - &#8220;the Rust rewrite behaved better than the stable release&#8221;.</p></li><li><p>&#128220; <a href="https://tanstack.com/blog/tanstack-table-v9-typescript-performance">TypeScript Performance in TanStack Table V9</a> - Advanced TS perf lessons for lib authors used to reduce TS workload by up to 86%.</p></li><li><p>&#128230; <a href="https://nerdy.dev/prop-for-that">Prop For That - JS library that backfills what CSS doesn&#8217;t provide, yet</a> - This lets you define dynamic CSS variables through declarative HTML attributes.</p></li><li><p>&#128230; <a href="https://babeljs.io/blog/2026/06/16/8.0.0/">Babel 8.0 - ESM-only, drop ES5 default, and a smooth migration path</a></p></li><li><p>&#128230; <a href="https://biomejs.dev/blog/biome-v2-5/">Biome 2.5 - 500 Lint Rules, Plugin Code Fix, and Cross-File Linting</a></p></li><li><p>&#128230; <a href="https://github.com/npm/cli/releases/tag/v11.17.0">npm 11.17 - add </a><code>min-release-age-exclude</code><a href="https://github.com/npm/cli/releases/tag/v11.17.0"> config</a></p></li><li><p>&#128230; <a href="https://pnpm.io/blog/releases/11.7">pnpm 11.7 - Full resolution in Rust, </a><code>--frozen-store</code><a href="https://pnpm.io/blog/releases/11.7">, scope-specific auth tokens</a></p></li><li><p>&#128230; <a href="https://github.com/gajus/zod-compiler">Zod Compiler - Compile Zod schemas into zero-overhead validation functions at build time</a></p></li><li><p>&#128230; <a href="http://github.com/microsoft/playwright/releases/tag/v1.61.0">Playwright 1.61 - WebAuthn passkeys API, Web Storage API</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RKXc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RKXc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RKXc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RKXc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!RKXc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22247e69-0917-4320-ae1f-ea8a2fbec79c_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#129325; Fun</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2dU9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe453694d-97b8-4fd8-8409-183cfa5ba93f_1000x1064.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2dU9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe453694d-97b8-4fd8-8409-183cfa5ba93f_1000x1064.jpeg 424w, https://substackcdn.com/image/fetch/$s_!2dU9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe453694d-97b8-4fd8-8409-183cfa5ba93f_1000x1064.jpeg 848w, https://substackcdn.com/image/fetch/$s_!2dU9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe453694d-97b8-4fd8-8409-183cfa5ba93f_1000x1064.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!2dU9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe453694d-97b8-4fd8-8409-183cfa5ba93f_1000x1064.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2dU9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe453694d-97b8-4fd8-8409-183cfa5ba93f_1000x1064.jpeg" width="1000" height="1064" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e453694d-97b8-4fd8-8409-183cfa5ba93f_1000x1064.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1064,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!2dU9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe453694d-97b8-4fd8-8409-183cfa5ba93f_1000x1064.jpeg 424w, https://substackcdn.com/image/fetch/$s_!2dU9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe453694d-97b8-4fd8-8409-183cfa5ba93f_1000x1064.jpeg 848w, https://substackcdn.com/image/fetch/$s_!2dU9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe453694d-97b8-4fd8-8409-183cfa5ba93f_1000x1064.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!2dU9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe453694d-97b8-4fd8-8409-183cfa5ba93f_1000x1064.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>See ya! &#128075;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[This Week In React 285]]></title><description><![CDATA[React.foundation, Rust Compiler, S&#228;tteri, Motion, TanStack Table, React Router, Flow, NavLink | Runtimes, JSI, Standard Navigation, Testing Library, Static Hermes, BottomTabs, AGP, AI, Windows |]]></description><link>https://substack.thisweekinreact.com/p/this-week-in-react-285</link><guid isPermaLink="false">https://substack.thisweekinreact.com/p/this-week-in-react-285</guid><dc:creator><![CDATA[Sébastien Lorber]]></dc:creator><pubDate>Fri, 12 Jun 2026 12:38:35 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!GfoR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabaf1315-6668-4e4d-8145-0c26a916e7fb_1280x640.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi everyone, <a href="https://x.com/sebastienlorber">Seb</a> and <a href="https://x.com/jaworek3211">Jan</a> here &#128075;!</p><p>This week, we&#8217;re taking a look at the new React Foundation website, as the React core repositories transition to their new home. All eyes on the React Compiler in Rust, coming soon in your everyday toolchain.</p><p>React Native 0.86 is almost here, but releases apparently like to land on Wednesday evenings &#128517; so we&#8217;ll cover it next week. Let&#8217;s focus on React Native Runtimes instead, a quite interesting multi-threading innovation.</p><p>Cloudflare has acquired VoidZero, and npm v12 will officially block postinstall scripts by default in July, improving our supply chain security.</p><p>Let&#8217;s dive in!</p><p>As always, thanks for supporting us on your favorite platform:</p><ul><li><p>&#129419; <a href="https://slo.im/last/b">Bluesky</a></p></li><li><p>&#10006;&#65039; <a href="https://slo.im/last/x">X / Twitter</a></p></li><li><p>&#128084; <a href="https://slo.im/last/l">LinkedIn</a></p></li><li><p>&#128125; <a href="https://slo.im/last/r">Reddit</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!orli!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ea2dcc-c8f5-48f4-bea8-b3c374f566d8_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!orli!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ea2dcc-c8f5-48f4-bea8-b3c374f566d8_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!orli!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ea2dcc-c8f5-48f4-bea8-b3c374f566d8_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!orli!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ea2dcc-c8f5-48f4-bea8-b3c374f566d8_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!orli!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ea2dcc-c8f5-48f4-bea8-b3c374f566d8_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!orli!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ea2dcc-c8f5-48f4-bea8-b3c374f566d8_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/12ea2dcc-c8f5-48f4-bea8-b3c374f566d8_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Mike Grabowski&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Mike Grabowski" title="Mike Grabowski" srcset="https://substackcdn.com/image/fetch/$s_!orli!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ea2dcc-c8f5-48f4-bea8-b3c374f566d8_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!orli!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ea2dcc-c8f5-48f4-bea8-b3c374f566d8_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!orli!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ea2dcc-c8f5-48f4-bea8-b3c374f566d8_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!orli!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ea2dcc-c8f5-48f4-bea8-b3c374f566d8_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/grabbou">Mike Grabowski</a></strong><a href="https://twitter.com/grabbou">CTO and founder - Callstack</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!V6Yw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!V6Yw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!V6Yw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oIeW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff98703b7-6b84-4ea9-8f47-8988a8cdcf6f_2816x1472.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oIeW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff98703b7-6b84-4ea9-8f47-8988a8cdcf6f_2816x1472.jpeg 424w, https://substackcdn.com/image/fetch/$s_!oIeW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff98703b7-6b84-4ea9-8f47-8988a8cdcf6f_2816x1472.jpeg 848w, https://substackcdn.com/image/fetch/$s_!oIeW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff98703b7-6b84-4ea9-8f47-8988a8cdcf6f_2816x1472.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!oIeW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff98703b7-6b84-4ea9-8f47-8988a8cdcf6f_2816x1472.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oIeW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff98703b7-6b84-4ea9-8f47-8988a8cdcf6f_2816x1472.jpeg" width="1456" height="761" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f98703b7-6b84-4ea9-8f47-8988a8cdcf6f_2816x1472.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:761,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Ship AI generated code safely with Meticulous.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Ship AI generated code safely with Meticulous." title="Ship AI generated code safely with Meticulous." srcset="https://substackcdn.com/image/fetch/$s_!oIeW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff98703b7-6b84-4ea9-8f47-8988a8cdcf6f_2816x1472.jpeg 424w, https://substackcdn.com/image/fetch/$s_!oIeW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff98703b7-6b84-4ea9-8f47-8988a8cdcf6f_2816x1472.jpeg 848w, https://substackcdn.com/image/fetch/$s_!oIeW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff98703b7-6b84-4ea9-8f47-8988a8cdcf6f_2816x1472.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!oIeW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff98703b7-6b84-4ea9-8f47-8988a8cdcf6f_2816x1472.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q2&amp;utm_content=1st">Ship AI generated code safely with Meticulous.</a></strong></p><p>Claude writes your code. Claude reviews your code. Claude fixes the review comments. And somehow, <em>you&#8217;re</em> the one getting paged at 2am when it breaks in prod.</p><p>Fortunately, top AI-driven teams like Dropbox, Notion, LaunchDarkly, and Wiz rely on Meticulous to run 1000s of e2e UI tests autonomously, covering every user flow, edge case, role and permutation. Built by ex-Palantir engineers, <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q2&amp;utm_content=1st">Meticulous gives you near-exhaustive coverage in weeks, without any developer effort</a>.</p><p>It works like magic in the background:</p><ul><li><p>Near-exhaustive coverage on every test run</p></li><li><p>No test creation</p></li><li><p>No maintenance (seriously)</p></li><li><p>Zero flakes (built on a deterministic browser)</p></li></ul><p><strong>Check it out</strong> - and see why one engineering leader at Dropbox said that &#8220;<a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q2&amp;utm_content=1st#:~:text=Once%20we%20started%20using%20Meticulous%2C%20we%20couldn%27t%20imagine%20working%20without%20it.">once we started using Meticulous, we couldn&#8217;t imagine working without it</a>.&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!V6Yw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!V6Yw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!V6Yw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#9883;&#65039; React</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!92Qe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dd51cf3-e8e8-4499-a0d5-ad8041fc104a_1400x955.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!92Qe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dd51cf3-e8e8-4499-a0d5-ad8041fc104a_1400x955.jpeg 424w, https://substackcdn.com/image/fetch/$s_!92Qe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dd51cf3-e8e8-4499-a0d5-ad8041fc104a_1400x955.jpeg 848w, https://substackcdn.com/image/fetch/$s_!92Qe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dd51cf3-e8e8-4499-a0d5-ad8041fc104a_1400x955.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!92Qe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dd51cf3-e8e8-4499-a0d5-ad8041fc104a_1400x955.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!92Qe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dd51cf3-e8e8-4499-a0d5-ad8041fc104a_1400x955.jpeg" width="1400" height="955" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4dd51cf3-e8e8-4499-a0d5-ad8041fc104a_1400x955.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:955,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;The React.Foundation website&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The React.Foundation website" title="The React.Foundation website" srcset="https://substackcdn.com/image/fetch/$s_!92Qe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dd51cf3-e8e8-4499-a0d5-ad8041fc104a_1400x955.jpeg 424w, https://substackcdn.com/image/fetch/$s_!92Qe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dd51cf3-e8e8-4499-a0d5-ad8041fc104a_1400x955.jpeg 848w, https://substackcdn.com/image/fetch/$s_!92Qe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dd51cf3-e8e8-4499-a0d5-ad8041fc104a_1400x955.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!92Qe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dd51cf3-e8e8-4499-a0d5-ad8041fc104a_1400x955.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://react.foundation/">The React.Foundation website</a></strong></p><p>The React Foundation was <a href="https://react.dev/blog/2025/10/07/introducing-the-react-foundation">announced nearly a year ago</a>, and you may be wondering what actions it has taken so far. Did you know the React Foundation had a website? Although it&#8217;s still a work-in-progress (<a href="https://github.com/react-foundation-dev/react.foundation">source code</a>), it&#8217;s already up and running and worth taking a look at to discover what&#8217;s planned, such as:</p><ul><li><p>A system to fund maintainers of critical ecosystem libraries</p></li><li><p>An official React merchandise store with profits redistributed to maintainers</p></li><li><p>Quarterly transparent reports with revenue details, maintainer funding, and more</p></li><li><p>A logged-in &#8220;Contributor Status&#8221; page, adding a cool gamification layer</p></li></ul><p>Earlier today, most React-related repositories also moved from the <code>facebook</code> GitHub organization to the <code>react</code><a href="https://github.com/react"> GitHub organization</a>, reflecting the transition to the React Foundation. This includes React, React Native, Yoga, JSX, Metro, React-Strict-DOM, Create-React-App, and more.</p><p>It&#8217;s not <code>facebook/react</code> anymore, but <code>react/react</code>: end of an era!</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!V6Yw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!V6Yw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!V6Yw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://pscale.link/rw">PlanetScale - Low-latency queries, branch and deploy like code, and best-in-class reliability. All in one database.</a></p></li><li><p>&#128064; <a href="https://github.com/react/react/pull/36173">React Core PR - Port React Compiler to Rust</a> - The PR has been officially merged, although no Rust crate or npm package has been published yet. The <a href="https://github.com/oxc-project/oxc/pull/22942">Oxc integration</a> is available in Rust crate v0.135, and it&#8217;s being integrated <a href="https://github.com/rolldown/rolldown/pull/9671">in Rolldown</a> and <a href="https://github.com/oxc-project/oxc/pull/23202">in Oxlint</a>. See also the <a href="https://github.com/swc-project/swc/pull/11917">SWC integration PR</a> and the <a href="https://github.com/oven-sh/bun/pull/31785">Bun integration PR</a>.</p></li><li><p>&#128064; <a href="https://github.com/reactjs/rfcs/pull/278">React RFC - Support using disposable as useEffect cleanup</a> - A proposal for <code>useEffect</code> to integrate with the new ES feature Explicit Resource Management / <code>using</code>, allowing to return a disposable resource like <code>{[Symbol.dispose]: myEffectCleanupFunction}</code>.</p></li><li><p>&#128467;&#65039; <a href="https://reactadvanced.com/?utm_source=thisweekinreact">React Advanced London</a> - &#127468;&#127463; London - 23 &amp; 26 Oct. Call for Papers is open until June 22! Submit your talk and share your advanced React insights with the community. Get a 10% discount with code &#8220;TWIR&#8221;.</p></li><li><p>&#128220; <a href="https://medium.com/flow-type/flow-for-typescript-users-in-2026-ad07ac0a2d92">Flow for TypeScript Users in 2026</a> - Flow&#8217;s syntax has converged with TypeScript to the point where it&#8217;s hard to tell them apart anymore. It&#8217;s stricter and offers features TypeScript lacks, including pattern matching and component/hook/renders syntax. I don&#8217;t know if Flow is ready for an official comeback, but I like its direction. Note that its compiler is also being ported to Rust,</p></li><li><p>&#128220; <a href="https://aurorascharff.no/posts/building-an-active-navlink-component-in-nextjs/">Building an Active NavLink Component in Next.js</a> - Building a production-grade reusable <code>NavLink</code> component for the App Router with an <code>isActive/className</code> render prop API inspired by React Router. It&#8217;s surprisingly not so easy: you need to deal with initial paint flickering and need to use Suspense for Cache Components.</p></li><li><p>&#128220; <a href="https://jjenzz.com/best-loading-states-are-no-loading-states/">The Best Loading States Are No Loading States</a> - Route transitions, route loaders, preloading, and global fallbacks can make loading states mostly disappear.</p></li><li><p>&#128220; <a href="https://reactjs-maxxing.vercel.app/blog/how-react-server-component-integrate-with-bundler">How React Server Components Integrate with Bundler</a></p></li><li><p>&#128220; <a href="https://www.jayfreestone.com/writing/updating-react-parents-in-response-to-changes-in-children/">When React parent components need to know their children</a></p></li><li><p>&#128220; <a href="https://www.react.doctor/blog/the-problem-with-useeffect">The problem with useEffect &#8211; React Doctor can help</a></p></li><li><p>&#128184; <a href="https://frontendnation.com/workshops/inside-developer-certifications-an-ama-with-alain-chautard?utm_source=twir&amp;utm_medium=newsletter&amp;utm_campaign=frontend_nation_certification_workshop_2026&amp;friend=TWIR">Certificates.dev: Certification AMA Workshop. Ask our expert how exams are built, graded, proctored, and impacts careers. Join for free!</a></p></li><li><p>&#128230; <a href="https://satteri.bruits.org/">S&#228;tteri - Flexible Rust-based Markdown / MDX engine</a> - A faster Rust-based alternative to the Unified ecosystem and the JS-based implementation of MDX. It could <a href="https://github.com/withastro/roadmap/pull/1364">become Astro&#8217;s default parser</a> in the future, and already <a href="https://github.com/withastro/starlight/releases/tag/%40astrojs%2Fstarlight%400.40.0">integrates with Starlight</a>.</p></li><li><p>&#128230; <a href="https://motion.dev/docs/arc">Motion 12.40 - Support for </a><code>arc()</code><a href="https://motion.dev/docs/arc"> motions</a> - This lets you animate elements along curved paths.</p></li><li><p>&#128230; <a href="https://tanstack.com/blog/tanstack-table-v9-taking-form">TanStack Table 9.0 beta - State management and perf improvements, tree-shakable, extendable, composable</a> - TanStack Table took inspiration from TanStack Form state management to rebuild its state management on top of TanStack Store and atoms, preventing useless re-renders and becoming compatible with the React Compiler along the way.</p></li><li><p>&#128230; <a href="https://github.com/remix-run/react-router/blob/v8/CHANGELOG.md#v800-pre0">React Router 8.0 prerelease</a> - The next major version is now available for early adopters to try. It&#8217;s a relatively boring release, in a good way: the v8 future flags are gone, and their behaviors are now enabled by default. It also bumps runtime requirements, drops CJS and the <code>react-router-dom</code> package.</p></li><li><p>&#128230; <a href="https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7170">React Router 7.17 - Ship Markdown docs for AI agents</a></p></li><li><p>&#128230; <a href="https://github.com/facebook/react/releases/tag/v19.2.7">React 19.2.7, 19.1.8, 19.0.7 - Fix a Server Actions FormData regression</a></p></li><li><p>&#128279; <a href="https://share.transistor.fm/s/dd8e79de">This Month in React - Who even is on the Core team anymore, TanStack got pwn&#8217;d bad</a></p></li><li><p>&#128279; <a href="https://creators.spotify.com/pod/profile/dan-neciu/episodes/Routing-at-Scale-with-TanStack-Routers-Nicolas-Beaussart--React-Router-Migration--Monorepos--PayFit-e3keqv9">Se&#241;ors at Scale - Routing at Scale with TanStack Router&#8217;s Nicolas Beaussart</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9Iw3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F666fd9c4-b414-4e3c-a00b-065b5fd6f34e_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9Iw3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F666fd9c4-b414-4e3c-a00b-065b5fd6f34e_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!9Iw3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F666fd9c4-b414-4e3c-a00b-065b5fd6f34e_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!9Iw3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F666fd9c4-b414-4e3c-a00b-065b5fd6f34e_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!9Iw3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F666fd9c4-b414-4e3c-a00b-065b5fd6f34e_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9Iw3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F666fd9c4-b414-4e3c-a00b-065b5fd6f34e_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/666fd9c4-b414-4e3c-a00b-065b5fd6f34e_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;William Candillon&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="William Candillon" title="William Candillon" srcset="https://substackcdn.com/image/fetch/$s_!9Iw3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F666fd9c4-b414-4e3c-a00b-065b5fd6f34e_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!9Iw3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F666fd9c4-b414-4e3c-a00b-065b5fd6f34e_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!9Iw3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F666fd9c4-b414-4e3c-a00b-065b5fd6f34e_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!9Iw3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F666fd9c4-b414-4e3c-a00b-065b5fd6f34e_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/wcandillon">William Candillon</a></strong><a href="https://twitter.com/wcandillon">React-Native animations expert - Youtuber</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!V6Yw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!V6Yw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!V6Yw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Rlg4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2cc3a87-e93a-460e-b84f-24e8c3a514f8_1200x675.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Rlg4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2cc3a87-e93a-460e-b84f-24e8c3a514f8_1200x675.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Rlg4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2cc3a87-e93a-460e-b84f-24e8c3a514f8_1200x675.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Rlg4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2cc3a87-e93a-460e-b84f-24e8c3a514f8_1200x675.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Rlg4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2cc3a87-e93a-460e-b84f-24e8c3a514f8_1200x675.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Rlg4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2cc3a87-e93a-460e-b84f-24e8c3a514f8_1200x675.jpeg" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a2cc3a87-e93a-460e-b84f-24e8c3a514f8_1200x675.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Agent Conf 2026: Learn to Ship Cross-Platform with AI&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Agent Conf 2026: Learn to Ship Cross-Platform with AI" title="Agent Conf 2026: Learn to Ship Cross-Platform with AI" srcset="https://substackcdn.com/image/fetch/$s_!Rlg4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2cc3a87-e93a-460e-b84f-24e8c3a514f8_1200x675.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Rlg4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2cc3a87-e93a-460e-b84f-24e8c3a514f8_1200x675.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Rlg4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2cc3a87-e93a-460e-b84f-24e8c3a514f8_1200x675.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Rlg4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2cc3a87-e93a-460e-b84f-24e8c3a514f8_1200x675.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://www.agent.sh/?utm_campaign=agent_conf&amp;utm_source=twir&amp;utm_medium=email&amp;utm_content=ebt">Agent Conf 2026: Learn to Ship Cross-Platform with AI</a></strong></p><p>Callstack&#8217;s <a href="https://www.agent.sh/?utm_campaign=agent_conf&amp;utm_source=twir&amp;utm_medium=email&amp;utm_content=ebt">Agent Conf</a> (September 17-18, 2026, Warsaw) is bringing together hundreds of agentic engineering practitioners, with Nader Dabit, Levan Kvirkvelia, Tejas Kumar, Kent C. Dodds, Kitze, David Mokos, and more speakers to be announced soon. Learn how to work better with agents: build intuition for when to guide or let them run, understand loops, memory, cost, and failure modes, coordinate multi-agent systems, and hear what&#8217;s actually working for teams adopting agentic workflows today.</p><p>The last Early Bird Tickets are still available. Get an extra <strong>10% off</strong> with promo code <strong>TWIR</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!V6Yw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!V6Yw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!V6Yw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128241; React-Native</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GfoR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabaf1315-6668-4e4d-8145-0c26a916e7fb_1280x640.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GfoR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabaf1315-6668-4e4d-8145-0c26a916e7fb_1280x640.jpeg 424w, https://substackcdn.com/image/fetch/$s_!GfoR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabaf1315-6668-4e4d-8145-0c26a916e7fb_1280x640.jpeg 848w, https://substackcdn.com/image/fetch/$s_!GfoR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabaf1315-6668-4e4d-8145-0c26a916e7fb_1280x640.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!GfoR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabaf1315-6668-4e4d-8145-0c26a916e7fb_1280x640.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GfoR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabaf1315-6668-4e4d-8145-0c26a916e7fb_1280x640.jpeg" width="1280" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/abaf1315-6668-4e4d-8145-0c26a916e7fb_1280x640.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;React Native Runtimes&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="React Native Runtimes" title="React Native Runtimes" srcset="https://substackcdn.com/image/fetch/$s_!GfoR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabaf1315-6668-4e4d-8145-0c26a916e7fb_1280x640.jpeg 424w, https://substackcdn.com/image/fetch/$s_!GfoR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabaf1315-6668-4e4d-8145-0c26a916e7fb_1280x640.jpeg 848w, https://substackcdn.com/image/fetch/$s_!GfoR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabaf1315-6668-4e4d-8145-0c26a916e7fb_1280x640.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!GfoR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabaf1315-6668-4e4d-8145-0c26a916e7fb_1280x640.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://github.com/margelo/react-native-runtimes">React Native Runtimes</a></strong></p><p>Margelo, in collaboration with Callstack, introduced a new package to add a multi-runtime layer to React Native apps. It&#8217;s a great solution for performance-heavy features and business logic isolation to avoid blocking interaction.</p><p>If your app has features that jank on mount, slow first-open screens, background hydration or decoding, state logic competing with animation, it might be worth checking it out.</p><p>Key features:</p><ul><li><p>Run selected components, screens, and headless tasks.</p></li><li><p>Share state across runtimes through a native Zustand-style C++ singleton.</p></li><li><p>Prewarm runtimes to avoid cold-start lag.</p></li><li><p>Call a typed function on a specific runtime and await the result.</p></li><li><p>Expo support with a config plugin.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!V6Yw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!V6Yw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!V6Yw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://go.posthog.com/twir-jun10">Product for Engineers - The golden rules of agent-first product engineering</a></p></li><li><p>&#128064; <a href="https://github.com/react-native-community/discussions-and-proposals/pull/1006">React Native RFC - Android Gradle Plugin v9 adoption</a> - This drafts a three-phase AGP v9 adoption strategy to keep up with Android, doing the required changes to support <a href="https://developer.android.com/build/migrate-to-built-in-kotlin">built-in Kotlin</a> before the opt-outs are removed in AGP v10.</p></li><li><p>&#128064; <a href="https://github.com/facebook/hermes/blob/static_h/doc/blog/2026-06-05-new-hermes-stable-release.md">Static Hermes - What&#8217;s new in the next stable release</a> - This blog post announces many new ES features to be supported natively, including Set operations, Iterator helpers, <code>groupBy</code>, <code>TextDecoder</code>, and more. It will also be faster and support built-in TypeScript type-stripping!</p></li><li><p>&#128064; <a href="https://github.com/react-navigation/standard-navigation">Standard Navigation integration PRs</a> - Remember <a href="https://expo.dev/blog/expo-router-v56-decoupling-from-react-navigation">Expo Router 56 forking React Navigation</a>? Fortunately, we have a shared abstraction for creating navigators that can work with both routing libraries, and should help reduce ecosystem fragmentation. It has already been integrated into React Navigation (<a href="https://github.com/react-navigation/react-navigation/pull/13122">PR</a>) and Expo Router (<a href="https://github.com/expo/expo/pull/46456">PR</a>).</p></li><li><p>&#128467;&#65039; <a href="https://ti.to/chainreact/chainreact2026/discount/TWIR">Chain React</a> - &#127482;&#127480; Portland - 30-31 July. Incredible speaker lineup featuring Charlie Cheever (Expo), Seth Webster (React Foundation), Kacper Kapu&#347;ciak (Software Mansion), Mazen Chami (Infinite Red) and more. Get a 15% discount with code &#8220;TWIR&#8221;.</p></li><li><p>&#128467;&#65039; <a href="https://reactnativeconnection.io/?utm_source=thisweekinreact.com">React Native Connection</a> - &#127467;&#127479; Paris - 24 Sept. The premier French React Native conference is back! Secure your spot early and get a 15% discount with code &#8220;TWIR&#8221;. Call for Papers closes June 14.</p></li><li><p>&#128197; <a href="https://luma.com/20df5csq">React Native &amp; AI meet-up by Software Mansion</a> - June 18th, NYC &#127482;&#127480;</p></li><li><p>&#128220; <a href="https://expo.dev/blog/talking-to-jsi-in-swift">Talking to JSI in Swift: what changed in SDK 56</a> - In SDK 56, Expo&#8217;s native modules call JSI directly on Apple platforms. The Objective-C++ layer is gone, and calls are 1.6&#8211;2.3x faster.</p></li><li><p>&#128220; <a href="https://expo.dev/blog/moving-away-from-expo-vector-icons">Moving away from </a><code>@expo/vector-icons</code> - Explanation on why the icons package is deprecated in favor of a better alternative, and the benefits of switching.</p></li><li><p>&#128220; <a href="https://andrei-calazans.com/posts/2026-06-01-exploring-inlined-requires/">Exploring Inlined Requires</a> - A 3-part series of Metro&#8217;s <code>inlineRequires</code>: the transform mechanics, when flipping the flag doesn&#8217;t improve cold start, and how Expo Router solves it with lazy loading.</p></li><li><p>&#128220; <a href="https://www.callstack.com/blog/on-device-ai-after-wwdc-2026-whats-new">On-device AI after WWDC 2026: What&#8217;s new?</a> - A look into new AI features from Apple and how React Native will make use of them.</p></li><li><p>&#128220; <a href="https://www.callstack.com/blog/ai-supported-brownfield-migration-to-react-native">AI-Supported Brownfield Migration to React Native</a></p></li><li><p>&#128220; <a href="https://expo.dev/blog/expo-highlights-new-products-and-plans-for-the-future">What happened at AppJS 2026? Highlights, new products, and plans for the future</a></p></li><li><p>&#128230; <a href="https://github.com/callstack/react-native-testing-library/releases/tag/v14.0.0">React Native Testing Library 14.0 - React 19, async APIs, Test Renderer replacement</a></p></li><li><p>&#128230; <a href="https://devblogs.microsoft.com/react-native/%F0%9F%9A%80react-native-windows-v0-83-is-here/">React Native Windows 0.83 - Performance Testing Framework, Richer Pointer Event Support, Fabric Component Parity</a></p></li><li><p>&#128230; <a href="https://github.com/IronTony/react-native-docusign">React Native DocuSign - Native captive signing for React Native &amp; Expo</a></p></li><li><p>&#128230; <a href="https://lynxjs.org/next/blog/lynx-3-8">Lynx 3.8 - WebAssembly on Android, Adaptive Layout, Line-aware Auto Font Sizing, monthly release cadence</a></p></li><li><p>&#128230; <a href="https://github.com/brandtnewlabs/react-native-livechart">Livechart - High-performance live line &amp; candlestick charts for React Native, built on Skia and Reanimated</a></p></li><li><p>&#128230; <a href="https://github.com/margelo/react-native-nitro-fetch/releases/tag/v1.4.0">Nitro Fetch 1.4 - Support for local and non-HTTP URLs</a></p></li><li><p>&#128230; <a href="https://github.com/mrousavy/react-native-data-scanner">Data Scanner - Fast one-shot QR/Barcode scanning, powered by Nitro and native scanner UIs</a></p></li><li><p>&#128230; <a href="https://github.com/callstack/agent-device/releases/tag/v0.17.0">Agent Device 0.17 - iOS runner stability, perf metrics, replay test sharding</a></p></li><li><p>&#128230; <a href="https://github.com/callstackincubator/rozenite/releases/tag/v1.12.0">Rozenite 1.12 - DevTools middleware fixes, compose sections across hook instances, support Expo bundle asset listings</a></p></li><li><p>&#128230; <a href="https://github.com/callstack/react-native-bottom-tabs/releases/tag/react-native-bottom-tabs%401.3.0">Bottom Tabs 1.3 - Liquid Glass tint color improvements</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=j4V3XwQ65s8">Simon Grimm - I used Expo and Vega OS to make a Fire TV App</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=vons_XypdQw">Daniel Friyia Jr - Intro to 3D Graphics with WebGPU and Expo</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!V6Yw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!V6Yw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!V6Yw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128256; Other</strong></h2><ul><li><p>&#128227; <a href="https://voidzero.dev/posts/voidzero-cloudflare">VoidZero is Joining Cloudflare</a> - Cloudflare acquired the company behind Vite, Vitest, Rolldown, Oxc, Oxfmt, Oxlint, and Vite+. These tools will remain open-source, MIT-licensed, and community-driven. Cloudflare promises no lock-in and plans to build its new <code>cf</code> CLI around Vite.</p></li><li><p>&#128227; <a href="https://github.blog/changelog/2026-06-09-upcoming-breaking-changes-for-npm-v12/">GitHub - Upcoming breaking changes for npm v12</a> - GitHub announces that npm v12 (scheduled for July) will improve security-related default behaviors, blocking install lifecycle scripts by default!</p></li><li><p>&#128220; <a href="https://zackoverflow.dev/writing/why-does-tsgo-use-so-much-memory">Why does tsgo use so much memory?</a> - It runs one type checker per thread.</p></li><li><p>&#128230; <a href="https://github.com/rolldown/rolldown/releases/tag/v1.1.0">Rolldown 1.1 - Enables lazy barrel optimization, aligns TS </a><code>references</code><a href="https://github.com/rolldown/rolldown/releases/tag/v1.1.0"> resolution with tsc</a></p></li><li><p>&#128230; <a href="https://blog.angular.dev/announcing-angular-v22-c52bb83a4664">Angular 22.0 - Signal Forms, Angular Aria, OnPush-by-default, async DI, IA, and more</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!V6Yw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!V6Yw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!V6Yw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!V6Yw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fdb0671-3e93-4d4f-8156-e7d931babbb3_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#129325; Fun</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IXT8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5e532b-20a4-4c92-aa68-32a564d4211c_1448x1270.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IXT8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5e532b-20a4-4c92-aa68-32a564d4211c_1448x1270.jpeg 424w, https://substackcdn.com/image/fetch/$s_!IXT8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5e532b-20a4-4c92-aa68-32a564d4211c_1448x1270.jpeg 848w, https://substackcdn.com/image/fetch/$s_!IXT8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5e532b-20a4-4c92-aa68-32a564d4211c_1448x1270.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!IXT8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5e532b-20a4-4c92-aa68-32a564d4211c_1448x1270.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IXT8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5e532b-20a4-4c92-aa68-32a564d4211c_1448x1270.jpeg" width="1448" height="1270" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a5e532b-20a4-4c92-aa68-32a564d4211c_1448x1270.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1270,&quot;width&quot;:1448,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!IXT8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5e532b-20a4-4c92-aa68-32a564d4211c_1448x1270.jpeg 424w, https://substackcdn.com/image/fetch/$s_!IXT8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5e532b-20a4-4c92-aa68-32a564d4211c_1448x1270.jpeg 848w, https://substackcdn.com/image/fetch/$s_!IXT8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5e532b-20a4-4c92-aa68-32a564d4211c_1448x1270.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!IXT8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5e532b-20a4-4c92-aa68-32a564d4211c_1448x1270.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>See ya! &#128075;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[This Week In React 284]]></title><description><![CDATA[TanStack Start, Compiler, React Router, Forms, TypeGPU, React Aria, shadcn, XState | App.js, Gesture Handler, SPM, Expo, Runtimes, Legend List, Desktop | npm, Node.js, Astro]]></description><link>https://substack.thisweekinreact.com/p/this-week-in-react-284</link><guid isPermaLink="false">https://substack.thisweekinreact.com/p/this-week-in-react-284</guid><dc:creator><![CDATA[Sébastien Lorber]]></dc:creator><pubDate>Fri, 05 Jun 2026 12:49:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!BYl6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4cf1b7e-aacd-4918-b646-41b3db97f7e2_1000x545.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi everyone, Kacper and Filip from <a href="https://swmansion.com/">Software Mansion</a> here.</p><p>This week, TanStack Start is once again in the spotlight. The React Compiler in Rust is on its way. React Router and Remix shipped important security patches &#8211; update immediately. There&#8217;s also a fresh batch of releases from TanStack Form, XState Store, shadcn, React Aria, and more.</p><p>On the React Native side, this week was dominated by <a href="http://appjs.co/">App.js Conf 2026</a> in Krak&#243;w. Gesture Handler 3.0, Swift Package Manager support for React Native, and Legend List 3.0 were among the highlights, alongside Expo announcements like EAS Observe.</p><p>Let&#8217;s go!</p><p>As always, thanks for supporting us on your favorite platform:</p><ul><li><p>&#129419; <a href="https://slo.im/last/b">Bluesky</a></p></li><li><p>&#10006;&#65039; <a href="https://slo.im/last/x">X / Twitter</a></p></li><li><p>&#128084; <a href="https://slo.im/last/l">LinkedIn</a></p></li><li><p>&#128125; <a href="https://slo.im/last/r">Reddit</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CvQ9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9112fb11-1a75-4b26-86fb-644e8f60a537_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CvQ9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9112fb11-1a75-4b26-86fb-644e8f60a537_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CvQ9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9112fb11-1a75-4b26-86fb-644e8f60a537_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CvQ9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9112fb11-1a75-4b26-86fb-644e8f60a537_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CvQ9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9112fb11-1a75-4b26-86fb-644e8f60a537_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CvQ9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9112fb11-1a75-4b26-86fb-644e8f60a537_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9112fb11-1a75-4b26-86fb-644e8f60a537_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Evan Bacon&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Evan Bacon" title="Evan Bacon" srcset="https://substackcdn.com/image/fetch/$s_!CvQ9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9112fb11-1a75-4b26-86fb-644e8f60a537_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CvQ9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9112fb11-1a75-4b26-86fb-644e8f60a537_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CvQ9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9112fb11-1a75-4b26-86fb-644e8f60a537_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CvQ9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9112fb11-1a75-4b26-86fb-644e8f60a537_400x400.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/Baconbrix">Evan Bacon</a></strong><a href="https://twitter.com/Baconbrix">Engineering Manager - Expo</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cDon!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cDon!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!cDon!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cDon!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/efcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cDon!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!cDon!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!icCx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f3a3251-a466-4e6b-8c4e-557570c7a42a_2576x1270.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!icCx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f3a3251-a466-4e6b-8c4e-557570c7a42a_2576x1270.jpeg 424w, https://substackcdn.com/image/fetch/$s_!icCx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f3a3251-a466-4e6b-8c4e-557570c7a42a_2576x1270.jpeg 848w, https://substackcdn.com/image/fetch/$s_!icCx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f3a3251-a466-4e6b-8c4e-557570c7a42a_2576x1270.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!icCx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f3a3251-a466-4e6b-8c4e-557570c7a42a_2576x1270.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!icCx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f3a3251-a466-4e6b-8c4e-557570c7a42a_2576x1270.jpeg" width="1456" height="718" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0f3a3251-a466-4e6b-8c4e-557570c7a42a_2576x1270.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:718,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Atomic CRM: The Open-Source CRM Toolkit for Developers&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Atomic CRM: The Open-Source CRM Toolkit for Developers" title="Atomic CRM: The Open-Source CRM Toolkit for Developers" srcset="https://substackcdn.com/image/fetch/$s_!icCx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f3a3251-a466-4e6b-8c4e-557570c7a42a_2576x1270.jpeg 424w, https://substackcdn.com/image/fetch/$s_!icCx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f3a3251-a466-4e6b-8c4e-557570c7a42a_2576x1270.jpeg 848w, https://substackcdn.com/image/fetch/$s_!icCx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f3a3251-a466-4e6b-8c4e-557570c7a42a_2576x1270.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!icCx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f3a3251-a466-4e6b-8c4e-557570c7a42a_2576x1270.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://github.com/marmelab/atomic-crm">Atomic CRM: The Open-Source CRM Toolkit for Developers</a></strong></p><p>Stop struggling with locked-in CRMs and expensive seats. Atomic CRM gives you the power of a professional CRM with the total freedom of open-source.</p><p>It&#8217;s the only toolkit that combines a high-end user experience with data sovereignty. No more lock-in, no more &#8220;renting&#8221; your contacts.</p><p>Everything you need is already there:</p><ul><li><p><strong>Native Mobile App</strong> for on-the-go access.</p></li><li><p><strong>Intuitive Kanban Boards</strong> for pipeline management.</p></li><li><p><strong>Built-in Email Tracking</strong> to stay on top of leads.</p></li><li><p><strong>Free SSO</strong> for seamless team integration.</p></li><li><p><strong>MCP Server Integration</strong> for productivity gains.</p></li></ul><p>Why settle for a black box SaaS when you can own the entire platform? <a href="https://marmelab.com/atomic-crm/">Deploy Atomic CRM</a> on your own infrastructure in minutes and regain control over your most valuable asset: your data.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cDon!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cDon!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!cDon!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cDon!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/efcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cDon!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!cDon!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#9883;&#65039; React</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BYl6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4cf1b7e-aacd-4918-b646-41b3db97f7e2_1000x545.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BYl6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4cf1b7e-aacd-4918-b646-41b3db97f7e2_1000x545.jpeg 424w, https://substackcdn.com/image/fetch/$s_!BYl6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4cf1b7e-aacd-4918-b646-41b3db97f7e2_1000x545.jpeg 848w, https://substackcdn.com/image/fetch/$s_!BYl6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4cf1b7e-aacd-4918-b646-41b3db97f7e2_1000x545.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!BYl6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4cf1b7e-aacd-4918-b646-41b3db97f7e2_1000x545.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BYl6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4cf1b7e-aacd-4918-b646-41b3db97f7e2_1000x545.jpeg" width="1000" height="545" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f4cf1b7e-aacd-4918-b646-41b3db97f7e2_1000x545.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:545,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;TanStack + Rspack&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="TanStack + Rspack" title="TanStack + Rspack" srcset="https://substackcdn.com/image/fetch/$s_!BYl6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4cf1b7e-aacd-4918-b646-41b3db97f7e2_1000x545.jpeg 424w, https://substackcdn.com/image/fetch/$s_!BYl6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4cf1b7e-aacd-4918-b646-41b3db97f7e2_1000x545.jpeg 848w, https://substackcdn.com/image/fetch/$s_!BYl6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4cf1b7e-aacd-4918-b646-41b3db97f7e2_1000x545.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!BYl6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff4cf1b7e-aacd-4918-b646-41b3db97f7e2_1000x545.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>TanStack Start Gaining Momentum:</strong></p><ul><li><p>&#128220; <a href="https://tanstack.com/blog/start-adds-rsbuild-support">TanStack Start Adds First-Class Rsbuild Support</a> - TanStack Start now supports Rsbuild / Rspack alongside Vite via a new plugin adapter, covering SSR, streaming, HMR, Server Functions, and RSC.</p></li><li><p>&#128220; <a href="https://lovable.dev/fr/blog/building-apps-using-tanstack-start">Lovable - Building apps using TanStack Start</a> - The AI App builder is now using TanStack Start with SSR by default for all new projects.</p></li><li><p>&#128220; <a href="https://performance.dev/the-conductor-rewrite">The Conductor Rewrite: What They Changed to Make It Fast</a> - Migrating their Tauri desktop app from React Router to TanStack Router significantly reduced re-renders thanks to its built-in structural sharing and stable refs.</p></li><li><p>&#128220; <a href="https://workos.com/blog/tanstack-start-authentication-guide">TanStack Start authentication: A developer&#8217;s guide for 2026</a> - Why <code>beforeLoad</code> doesn&#8217;t protect server functions, the double-guard pattern, sessions, and middleware.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cDon!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cDon!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!cDon!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cDon!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/efcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cDon!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!cDon!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://svar.dev/react/gantt/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=may">SVAR React Gantt &#8211; Build project timelines with a pure React API and advanced scheduling (MIT &amp; PRO)</a></p></li><li><p>&#128064; <a href="https://github.com/facebook/react/pull/36173#issuecomment-4608356402">React Compiler update - The Rust compiler PR to be merged soon</a> - It already produces at 99.9% the same output as the original TS compiler. You can try it already through a local PR checkout. The Oxc team is already working on an integration (<a href="https://github.com/oxc-project/oxc/pull/22942">PR</a>).</p></li><li><p>&#128197; <a href="https://nextjs.org/nights">Next.js Nights - The Next.js team on tour (9 June SF, 11 June Amsterdam, 18 June London)</a> - They also <a href="https://x.com/nextjs/status/2059997719197098425">teased us</a> about an upcoming v16.3 release, including Instant Navigations and new AI-related features.</p></li><li><p>&#128272; <a href="https://x.com/ReactRouter/status/2061839906834395649">React Router &amp; Remix v2 - 7 CVEs published</a> - Includes RCE, CSRF, XSS, and DoS vulnerabilities. Update to React Router v7.16.0 / v6.30.4 or Remix v2.17.5.</p></li><li><p>&#128220; <a href="https://dev.to/mbarzeev/deprecating-a-react-component-using-typescript-overload-2ka">Deprecating a React component using TypeScript Overload</a> - How to ship a breaking component redesign without renaming it with the usage of TS overload, mark the old API as <code>@deprecated</code>, and let consumers opt into the new version by adding a <code>new</code> prop.</p></li><li><p>&#128184; <a href="https://go.posthog.com/twir-jun3">PostHog - PostHog Code and the self-driving product</a></p></li><li><p>&#128230; <a href="https://github.com/TanStack/form/releases/tag/%40tanstack/react-form%401.33.0">TanStack Form 1.33 - </a><code>FormGroup</code><a href="https://github.com/TanStack/form/releases/tag/%40tanstack/react-form%401.33.0"> API to simplify multi-step forms</a></p></li><li><p>&#128230; <a href="https://github.com/react-hook-form/react-hook-form/releases/tag/v7.77.0">React Hook Form 7.77 - new </a><code>resetDefaultValues</code><a href="https://github.com/react-hook-form/react-hook-form/releases/tag/v7.77.0"> API</a></p></li><li><p>&#128230; <a href="https://github.com/resend/react-email/releases/tag/react-email%406.5.0">React Email 6.5 - Filter compatibility warnings by client, accessibility improvements</a></p></li><li><p>&#128230; <a href="https://docs.swmansion.com/TypeGPU/ecosystem/typegpu-react/">TypeGPU React - React bindings for TypeGPU</a> - Hooks like <code>useFrame</code>, <code>useUniform</code>, and <code>useRoot</code> to write GPU shaders directly in TypeScript and integrate WebGPU into React components.</p></li><li><p>&#128230; <a href="https://github.com/facebook/lexical/releases/tag/v0.45.0">Lexical 0.45 - New composable DOMImportExtension replacing importDOM, backspace now preserves block type, canUndo/canRedo signals on HistoryExtension.</a></p></li><li><p>&#128230; <a href="https://github.com/adobe/react-spectrum/releases/tag/react-aria-components%401.18.0">React Aria Components 1.18 - </a><code>Calendar</code><a href="https://github.com/adobe/react-spectrum/releases/tag/react-aria-components%401.18.0"> multi-date selection, month/year pickers, new </a><code>TableFooter</code><a href="https://github.com/adobe/react-spectrum/releases/tag/react-aria-components%401.18.0"> and </a><code>SliderFill</code><a href="https://github.com/adobe/react-spectrum/releases/tag/react-aria-components%401.18.0"> components</a> - Checkbox, Radio, and Switch now support description and error message slots.</p></li><li><p>&#128230; <a href="https://react-spectrum.adobe.com/releases/v1-4-0.html">React Spectrum 1.4 - drag &amp; drop in ListView and similar, TableView highlight selection &amp; TableFooter, custom prefixes in ComboBox/TextField, multi-date Calendar selection</a></p></li><li><p>&#128230; <a href="https://ui.shadcn.com/docs/changelog">Shadcn UI 4.9 &amp; 4.10 - GitHub registries, </a><code>npx shadcn eject</code><a href="https://ui.shadcn.com/docs/changelog"> to extract any component into your codebase</a></p></li><li><p>&#128230; <a href="https://github.com/amannn/next-intl/releases/tag/v4.13.0">Next Intl 4.13 - </a><code>useExtracted</code><a href="https://github.com/amannn/next-intl/releases/tag/v4.13.0"> function now generates message keys using URL-safe base64</a></p></li><li><p>&#128230; <a href="https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.0">React Flow 12.11 - new </a><code>autoPanOnSelection</code><a href="https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.0"> prop</a></p></li><li><p>&#128230; <a href="https://github.com/statelyai/xstate/releases/tag/%40xstate%2Fstore%404.0.0">XState Store 4.0 - </a><code>createStoreLogic</code><a href="https://github.com/statelyai/xstate/releases/tag/%40xstate%2Fstore%404.0.0"> for reusable stores, </a><code>enq.trigger</code><a href="https://github.com/statelyai/xstate/releases/tag/%40xstate%2Fstore%404.0.0"> for chaining events, Standard Schema support, </a><code>store.can</code><a href="https://github.com/statelyai/xstate/releases/tag/%40xstate%2Fstore%404.0.0"> for event checking.</a></p></li><li><p>&#128230; <a href="https://github.com/pierpo/react-archer/releases/tag/v5.0.0">React Archer 5.0 - Draw arrows between elements - Add React 19 support</a></p></li><li><p>&#128230; <a href="https://github.com/nickjvandyke/eslint-plugin-react-you-might-not-need-an-effect/blob/main/CHANGELOG.md#100-2026-05-31">ESLint Plugin React &#8221;You Might Not Need An Effect&#8221; 1.0</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=J4kzovOTNKw">Jack Herrington - All 17 TanStack Projects In ONE App!</a></p></li><li><p>&#127897;&#65039; <a href="https://www.youtube.com/watch?v=dbe0wC9Y8bo">Se&#241;ors at Scale - Redux at Scale with Mark Erikson</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LRtz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cc3fa76-9d98-422d-8022-0880801222ca_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LRtz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cc3fa76-9d98-422d-8022-0880801222ca_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!LRtz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cc3fa76-9d98-422d-8022-0880801222ca_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!LRtz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cc3fa76-9d98-422d-8022-0880801222ca_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!LRtz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cc3fa76-9d98-422d-8022-0880801222ca_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LRtz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cc3fa76-9d98-422d-8022-0880801222ca_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2cc3fa76-9d98-422d-8022-0880801222ca_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Mike Grabowski&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Mike Grabowski" title="Mike Grabowski" srcset="https://substackcdn.com/image/fetch/$s_!LRtz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cc3fa76-9d98-422d-8022-0880801222ca_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!LRtz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cc3fa76-9d98-422d-8022-0880801222ca_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!LRtz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cc3fa76-9d98-422d-8022-0880801222ca_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!LRtz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cc3fa76-9d98-422d-8022-0880801222ca_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/grabbou">Mike Grabowski</a></strong><a href="https://twitter.com/grabbou">CTO and founder - Callstack</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cDon!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cDon!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!cDon!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cDon!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/efcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cDon!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!cDon!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NHmk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3fbaa05-321f-4949-8338-99e540e235b3_2816x1472.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NHmk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3fbaa05-321f-4949-8338-99e540e235b3_2816x1472.jpeg 424w, https://substackcdn.com/image/fetch/$s_!NHmk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3fbaa05-321f-4949-8338-99e540e235b3_2816x1472.jpeg 848w, https://substackcdn.com/image/fetch/$s_!NHmk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3fbaa05-321f-4949-8338-99e540e235b3_2816x1472.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!NHmk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3fbaa05-321f-4949-8338-99e540e235b3_2816x1472.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NHmk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3fbaa05-321f-4949-8338-99e540e235b3_2816x1472.jpeg" width="1456" height="761" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d3fbaa05-321f-4949-8338-99e540e235b3_2816x1472.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:761,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Ship AI generated code safely with Meticulous.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Ship AI generated code safely with Meticulous." title="Ship AI generated code safely with Meticulous." srcset="https://substackcdn.com/image/fetch/$s_!NHmk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3fbaa05-321f-4949-8338-99e540e235b3_2816x1472.jpeg 424w, https://substackcdn.com/image/fetch/$s_!NHmk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3fbaa05-321f-4949-8338-99e540e235b3_2816x1472.jpeg 848w, https://substackcdn.com/image/fetch/$s_!NHmk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3fbaa05-321f-4949-8338-99e540e235b3_2816x1472.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!NHmk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3fbaa05-321f-4949-8338-99e540e235b3_2816x1472.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q2&amp;utm_content=1st">Ship AI generated code safely with Meticulous.</a></strong></p><p>Claude writes your code. Claude reviews your code. Claude fixes the review comments. And somehow, <em>you&#8217;re</em> the one getting paged at 2am when it breaks in prod.</p><p>Fortunately, top AI-driven teams like Dropbox, Notion, LaunchDarkly, and Wiz rely on Meticulous to run 1000s of e2e UI tests autonomously, covering every user flow, edge case, role and permutation. Built by ex-Palantir engineers, <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q2&amp;utm_content=1st">Meticulous gives you near-exhaustive coverage in weeks, without any developer effort</a>.</p><p>It works like magic in the background:</p><ul><li><p>Near-exhaustive coverage on every test run</p></li><li><p>No test creation</p></li><li><p>No maintenance (seriously)</p></li><li><p>Zero flakes (built on a deterministic browser)</p></li></ul><p><strong>Check it out</strong> - and see why one engineering leader at Dropbox said that &#8220;<a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q2&amp;utm_content=1st#:~:text=Once%20we%20started%20using%20Meticulous%2C%20we%20couldn%27t%20imagine%20working%20without%20it.">once we started using Meticulous, we couldn&#8217;t imagine working without it</a>.&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cDon!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cDon!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!cDon!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cDon!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/efcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cDon!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!cDon!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128241; React-Native</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RMQw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fc2e17-72e0-4839-b3de-e1ca93ac9dd5_2560x1440.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RMQw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fc2e17-72e0-4839-b3de-e1ca93ac9dd5_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!RMQw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fc2e17-72e0-4839-b3de-e1ca93ac9dd5_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!RMQw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fc2e17-72e0-4839-b3de-e1ca93ac9dd5_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!RMQw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fc2e17-72e0-4839-b3de-e1ca93ac9dd5_2560x1440.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RMQw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fc2e17-72e0-4839-b3de-e1ca93ac9dd5_2560x1440.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/55fc2e17-72e0-4839-b3de-e1ca93ac9dd5_2560x1440.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Highlights from App.js Conf 2026&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Highlights from App.js Conf 2026" title="Highlights from App.js Conf 2026" srcset="https://substackcdn.com/image/fetch/$s_!RMQw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fc2e17-72e0-4839-b3de-e1ca93ac9dd5_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!RMQw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fc2e17-72e0-4839-b3de-e1ca93ac9dd5_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!RMQw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fc2e17-72e0-4839-b3de-e1ca93ac9dd5_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!RMQw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fc2e17-72e0-4839-b3de-e1ca93ac9dd5_2560x1440.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://appjs.co/">Highlights from App.js Conf 2026</a></strong></p><p>Last week, the community gathered at the App.js Conf happening in Krak&#243;w. We&#8217;re highlighting three announcements here, since many of the others shipped over the past month and were demoed again on stage. Make sure to catch the rest of the talks through the live stream recordings (<a href="https://www.youtube.com/live/4H8iRPN0Q2M?si=2dYvWbCDiA3SHznk">Day 1</a>, <a href="https://www.youtube.com/live/dvpeMlwPNnw?si=po7jCHjf84nn04vF">Day 2</a>).</p><p><strong><a href="https://github.com/software-mansion/react-native-gesture-handler/releases/tag/v3.0.0">React Native Gesture Handler 3.0</a></strong></p><p>Major release rebuilt for the New Architecture, dropping Old Architecture support, introducing a new hook-based API which is React Compiler friendly, a new <code>Touchable</code> component with built-in animations and deeper Reanimated integration.</p><p><strong>Swift Package Manager support for React Native</strong></p><p>Meta + Expo previewed <code>npx react-native spm</code>, which scaffolds SPM config to replace CocoaPods: generates a committable Xcode project, runs codegen, caches XCFrameworks globally. CocoaPods trunk goes read-only Dec 2. Both Cocoapods and SPM work in parallel during the transition.</p><p><strong><a href="https://docs.expo.dev/eas/observe/introduction/">EAS Observe</a></strong></p><p>New Expo production performance monitoring service that tracks real-world startup times, render performance, and bundle load times across devices, with release comparison and per-session investigation. Currently in Private Preview, free up to 10K MAU for at least three months.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cDon!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cDon!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!cDon!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cDon!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/efcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cDon!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!cDon!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://docs.maestro.dev/get-started/maestro-mcp?utm_source=this-week-in-react">Maestro MCP - Let your AI agent write and run mobile UI tests for you</a></p></li><li><p>&#128038; <a href="https://x.com/tmikov/status/2060005546053579163">N-API v10 support landed in Hermes trunk - native Node-API addons can now run on Hermes without modification. Still experimental.</a></p></li><li><p>&#128467;&#65039; <a href="https://ti.to/chainreact/chainreact2026/discount/TWIR">Chain React</a> - &#127482;&#127480; Portland - 30-31 July. The US React Native conference is back! Grab your tickets now and get a 15% discount with code &#8220;TWIR&#8221;!</p></li><li><p>&#128220; <a href="https://evanbacon.dev/blog/expo">Things I Learned While Building Expo</a> - Evan Bacon is leaving Expo after 9 years. He wrote what he learned on dogfooding, listening user feedback, building developer trust through rough patches, and why data beats vibes when you&#8217;re building developer tools.</p></li><li><p>&#128220; <a href="https://expo.dev/blog/expo-router-v56-decoupling-from-react-navigation">Expo Router v56: Decoupling from React Navigation</a> - Covers the decision to fork React Navigation internals for full architectural control, codemod-assisted migration, streaming SSR with generateMetadata, and new Android toolbar API and Native Tabs customization.</p></li><li><p>&#128220; <a href="https://expo.dev/blog/native-code-expo-sdk-56">Native code in Expo SDK 56: inline modules and type generation</a> - How inline modules let you write Swift and Kotlin files directly alongside your app code, and how <code>expo-type-information</code> automatically generates matching TypeScript interfaces from them.</p></li><li><p>&#128230; <a href="https://github.com/margelo/react-native-runtimes">React Native Runtimes - Run RN Components and business logic in isolated Hermes runtimes</a> - This Margelo/Callstack library permits rendering React components on separate JS Runtimes, and share state across them.</p></li><li><p>&#128230; <a href="https://github.com/shirakaba/expo-desktop">Expo Desktop - build macOS and Windows desktop app with Expo</a> - Unofficial announcement coming from community.</p></li><li><p>&#128230; <a href="https://www.react.doctor/react-native">React Native Doctor</a> - New open-source CLI that scans your React Native app for performance and security bugs and fixes them with AI agents</p></li><li><p>&#128230; <a href="https://github.com/TanStack/ai/releases/tag/@tanstack/ai@0.23.0">TanStack AI 0.23 - React Native support</a> - Chat clients and framework hooks now run in React Native via a new <code>fetcher</code> option.</p></li><li><p>&#128230; <a href="https://keyframer.dev/">Keyframer.dev - Visual Animation Editor for React Native</a> - Outputs production-ready Reanimated v4 code - drag keyframes on a timeline, or type a prompt and get a <code>useAnimatedScene</code> hook you can paste directly into your project.</p></li><li><p>&#128230; <a href="https://github.com/LegendApp/legend-list/blob/main/CHANGELOG.md#300">Legend List 3.0 - Web support added, scroll jump prevention is now core behavior, and </a><code>maintainVisibleContentPosition</code><a href="https://github.com/LegendApp/legend-list/blob/main/CHANGELOG.md#300"> is now opt-in and disabled by default.</a></p></li><li><p>&#128230; <a href="https://github.com/callstackincubator/rozenite/releases/tag/v1.11.0">Rozenite 1.11 - Network activity timeline &amp; export, performance startup insights, waterfall view, navigation dispatch origin tracking</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion-labs/react-native-bottom-sheet">@swmansion/react-native-bottom-sheet - Native bottom-sheet components, inline and modal, with content-based sizing and scrollable-child handling</a></p></li><li><p>&#128230; <a href="https://github.com/getsentry/sentry-react-native/releases/tag/8.13.0">Sentry React Native 8.13 - </a><code>NavigationContainer</code><a href="https://github.com/getsentry/sentry-react-native/releases/tag/8.13.0"> wrapper for React Navigation, iOS Swift Package Manager support, Expo Router param extraction, pause/resume app hang tracking</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion/argent/releases/tag/v0.9.0">Argent 0.9 - new </a><code>screenshot-diff</code><a href="https://github.com/software-mansion/argent/releases/tag/v0.9.0"> too, configurable release-age-aware update reminders</a></p></li><li><p>&#128230; <a href="https://github.com/callstackincubator/agent-device/releases/tag/v0.16.0">Agent Device 0.16 - Maestro YAML replay compatibility, structured MCP command tools, iOS transform gestures, Android ANR recovery</a></p></li><li><p>&#128230; <a href="https://github.com/uni-stack/uniwind/releases/tag/v1.8.0">Uniwind 1.8 - Vite 8 support, </a><code>uniwind generate-artifacts</code><a href="https://github.com/uni-stack/uniwind/releases/tag/v1.8.0"> CLI</a></p></li><li><p>&#128230; <a href="https://github.com/RevenueCat/react-native-purchases/releases/tag/10.2.0">React Native Purchases 10.2 - Ad tracking support</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=yH0QwDpV4ZM">Code with Beto - Why AI-Built Apps Feel Cheap (And How to Fix It)</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=bu8X9mCL0Ek">Expo - Where is Expo Go?</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cDon!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cDon!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!cDon!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cDon!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/efcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cDon!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!cDon!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128256; Other</strong></h2><ul><li><p>&#128202; <a href="https://survey.devographics.com/en-US/survey/state-of-css/2026?source=this_week_in_react">State of CSS 2026 - Survey is now open</a></p></li><li><p>&#128220; <a href="https://frontendmasters.com/blog/your-node-js-streams-arent-backpressuring-theyre-silently-eating-your-memory/">Node.js streams, backpressure, memory leaks</a> - A pragmatic 2-part deep dive to help you reduce the memory footprint of your streams.</p></li><li><p>&#128220; <a href="https://pierre.computer/writing/on-rendering-diffs">On Rendering Diffs &#8211; Pierre Computer Company</a> - Deep dive into building a zero-blanking diff virtualizer using the &#8220;Inverse Sticky Technique&#8221;, with insights on layout estimation, DOM pooling, memory optimization, and deferred syntax highlighting.</p></li><li><p>&#128230; <a href="https://github.com/nodejs/node/releases/tag/v26.3.0">Node.js 26.3 - New </a><code>permission.drop()</code><a href="https://github.com/nodejs/node/releases/tag/v26.3.0"> API, configurable HTTP header validation, </a><code>Buffer.poolSize</code><a href="https://github.com/nodejs/node/releases/tag/v26.3.0"> bumped to 64 KiB</a> - Improves the security model, letting you start with the permissions you need for initialization, then drop the ones you no longer need at runtime.</p></li><li><p>&#128230; <a href="https://github.com/npm/cli/releases/tag/v11.16.0">npm 11.16 - Phase 1 of package.json </a><code>allowScripts</code> - npm is rolling out supply chain security improvements in 2 phases, catching up with other package managers. v11.16 adds <code>package.allowScripts=[]</code> and warns on unapproved postinstall scripts. v12.0 will block them by default.</p></li><li><p>&#128230; <a href="https://github.com/endevco/aube/releases/tag/v1.17.0">Aube 1.17 - Rust-based package manager - Staged publish trust, hoisting limits, remote tarball integrity fixes, and OTP support for dist-tag writes</a></p></li><li><p>&#128230; <a href="https://pnpm.io/blog/releases/11.5">pnpm 11.5 - </a><code>hoistingLimits</code><a href="https://pnpm.io/blog/releases/11.5"> setting, interactive prompt library, detect staged publishing trust downgrades</a></p></li><li><p>&#128230; <a href="https://astro.build/blog/astro-640/">Astro 6.4 - Pluggable markdown processor, Rust-based Markdown processor for faster builds, and Cloudflare helpers for advanced routing.</a></p></li><li><p>&#128230; <a href="https://github.com/yarnpkg/berry/releases/tag/%40yarnpkg/cli/4.16.0">Yarn 4.16 - New stage command for staged publishing, editor SDK support for oxc</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cDon!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cDon!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!cDon!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cDon!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/efcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cDon!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!cDon!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!cDon!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefcc9b11-3aa3-4909-a98a-3674f4b8f2f0_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#129325; Fun</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IK3V!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c38b90-57e1-4069-9946-1c18f23f4b68_599x552.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IK3V!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c38b90-57e1-4069-9946-1c18f23f4b68_599x552.png 424w, https://substackcdn.com/image/fetch/$s_!IK3V!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c38b90-57e1-4069-9946-1c18f23f4b68_599x552.png 848w, https://substackcdn.com/image/fetch/$s_!IK3V!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c38b90-57e1-4069-9946-1c18f23f4b68_599x552.png 1272w, https://substackcdn.com/image/fetch/$s_!IK3V!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c38b90-57e1-4069-9946-1c18f23f4b68_599x552.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IK3V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c38b90-57e1-4069-9946-1c18f23f4b68_599x552.png" width="599" height="552" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d0c38b90-57e1-4069-9946-1c18f23f4b68_599x552.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:552,&quot;width&quot;:599,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!IK3V!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c38b90-57e1-4069-9946-1c18f23f4b68_599x552.png 424w, https://substackcdn.com/image/fetch/$s_!IK3V!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c38b90-57e1-4069-9946-1c18f23f4b68_599x552.png 848w, https://substackcdn.com/image/fetch/$s_!IK3V!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c38b90-57e1-4069-9946-1c18f23f4b68_599x552.png 1272w, https://substackcdn.com/image/fetch/$s_!IK3V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c38b90-57e1-4069-9946-1c18f23f4b68_599x552.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>See ya! &#128075;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[This Week In React 283]]></title><description><![CDATA[TanStack, RSC, Liquid DOM, Performance, i18n, docs, Apollo, shadcn | Expo, Reanimated, worklets, NativeScript, Standard Navigation, Strict DOM, Lynx, Apex, ExecuTorch | TC39,]]></description><link>https://substack.thisweekinreact.com/p/this-week-in-react-283</link><guid isPermaLink="false">https://substack.thisweekinreact.com/p/this-week-in-react-283</guid><dc:creator><![CDATA[Sébastien Lorber]]></dc:creator><pubDate>Fri, 29 May 2026 12:45:10 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!4fiO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c2a14cf-d578-4520-a07c-3657f86564e7_1800x1012.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi everyone, <a href="https://x.com/sebastienlorber">Seb</a> and <a href="https://x.com/jaworek3211">Jan</a> here &#128075;!</p><p>This week we have great deep dive blog posts about data fetching (TanStack vs Next.js) and performance (GitHub and Linear).</p><p>On the React Native side, Expo dropped a major SDK with Expo UI stable. Reanimated leverages the shared animation backend and improves CSS animations on iOS.</p><p>Supply chain security remains an important topic. npm introduced staged publishing workflows, and will block postinstall scripts by default in the near future.</p><p>Let&#8217;s dive in!</p><p>As always, thanks for supporting us on your favorite platform:</p><ul><li><p>&#129419; <a href="https://slo.im/last/b">Bluesky</a></p></li><li><p>&#10006;&#65039; <a href="https://slo.im/last/x">X / Twitter</a></p></li><li><p>&#128084; <a href="https://slo.im/last/l">LinkedIn</a></p></li><li><p>&#128125; <a href="https://slo.im/last/r">Reddit</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cBLm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d2bd720-6d70-48e2-876d-89a2f7756a1e_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cBLm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d2bd720-6d70-48e2-876d-89a2f7756a1e_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!cBLm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d2bd720-6d70-48e2-876d-89a2f7756a1e_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!cBLm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d2bd720-6d70-48e2-876d-89a2f7756a1e_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!cBLm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d2bd720-6d70-48e2-876d-89a2f7756a1e_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cBLm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d2bd720-6d70-48e2-876d-89a2f7756a1e_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6d2bd720-6d70-48e2-876d-89a2f7756a1e_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Jack Herrington&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Jack Herrington" title="Jack Herrington" srcset="https://substackcdn.com/image/fetch/$s_!cBLm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d2bd720-6d70-48e2-876d-89a2f7756a1e_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!cBLm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d2bd720-6d70-48e2-876d-89a2f7756a1e_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!cBLm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d2bd720-6d70-48e2-876d-89a2f7756a1e_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!cBLm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d2bd720-6d70-48e2-876d-89a2f7756a1e_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/jherr">Jack Herrington</a></strong><a href="https://twitter.com/jherr">Principal Engineer - Youtuber</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0DK0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0DK0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0DK0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0DK0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!haBF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76414d2b-21a2-4028-a365-451b2c0aa9e5_2816x1472.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!haBF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76414d2b-21a2-4028-a365-451b2c0aa9e5_2816x1472.jpeg 424w, https://substackcdn.com/image/fetch/$s_!haBF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76414d2b-21a2-4028-a365-451b2c0aa9e5_2816x1472.jpeg 848w, https://substackcdn.com/image/fetch/$s_!haBF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76414d2b-21a2-4028-a365-451b2c0aa9e5_2816x1472.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!haBF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76414d2b-21a2-4028-a365-451b2c0aa9e5_2816x1472.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!haBF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76414d2b-21a2-4028-a365-451b2c0aa9e5_2816x1472.jpeg" width="1456" height="761" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/76414d2b-21a2-4028-a365-451b2c0aa9e5_2816x1472.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:761,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Ship AI generated code safely with Meticulous.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Ship AI generated code safely with Meticulous." title="Ship AI generated code safely with Meticulous." srcset="https://substackcdn.com/image/fetch/$s_!haBF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76414d2b-21a2-4028-a365-451b2c0aa9e5_2816x1472.jpeg 424w, https://substackcdn.com/image/fetch/$s_!haBF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76414d2b-21a2-4028-a365-451b2c0aa9e5_2816x1472.jpeg 848w, https://substackcdn.com/image/fetch/$s_!haBF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76414d2b-21a2-4028-a365-451b2c0aa9e5_2816x1472.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!haBF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76414d2b-21a2-4028-a365-451b2c0aa9e5_2816x1472.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q2&amp;utm_content=1st">Ship AI generated code safely with Meticulous.</a></strong></p><p>Claude writes your code. Claude reviews your code. Claude fixes the review comments. And somehow, <em>you&#8217;re</em> the one getting paged at 2am when it breaks in prod.</p><p>Fortunately, top AI-driven teams like Dropbox, Notion, LaunchDarkly, and Wiz rely on Meticulous to run 1000s of e2e UI tests autonomously, covering every user flow, edge case, role and permutation. Built by ex-Palantir engineers, <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q2&amp;utm_content=1st">Meticulous gives you near-exhaustive coverage in weeks, without any developer effort</a>.</p><p>It works like magic in the background:</p><ul><li><p>Near-exhaustive coverage on every test run</p></li><li><p>No test creation</p></li><li><p>No maintenance (seriously)</p></li><li><p>Zero flakes (built on a deterministic browser)</p></li></ul><p><strong>Check it out</strong> - and see why one engineering leader at Dropbox said that &#8220;<a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q2&amp;utm_content=1st#:~:text=Once%20we%20started%20using%20Meticulous%2C%20we%20couldn%27t%20imagine%20working%20without%20it.">once we started using Meticulous, we couldn&#8217;t imagine working without it</a>.&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0DK0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0DK0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0DK0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0DK0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#9883;&#65039; React</strong></h2><ul><li><p>&#128184; <a href="https://blog.sentry.io/fixing-javascript-observability/?utm_source=thisweekinreact&amp;utm_medium=paid-community&amp;utm_campaign=observability-fy27q2-evergreen&amp;utm_content=newsletter-react-link-javascript-blog-learnmore">Sentry - One engineer, 44 libraries, and a Node API nobody was using. Here&#8217;s how JavaScript observability is getting fixed upstream.</a></p></li><li><p>&#128220; <a href="https://aurorascharff.no/posts/component-architecture-for-react-server-components/">Component Architecture for React Server Components</a> - A deep dive into data fetching techniques, their limits and tradeoffs. RSCs permit to design explicit loading experiences and leverage composition more than loaders.</p></li><li><p>&#128220; <a href="https://tkdodo.eu/blog/tan-stack-router-and-query">TanStack Router and Query</a> - Integrating Query with Route loaders permits to start fetching data as early as possible (even on intent / link hover), and have granular control over what suspends/defers. It&#8217;s recommended to avoid <code>Router.useLoaderData()</code> and treat the loader as a fire-and-forget event handler.</p></li><li><p>&#128220; <a href="https://github.blog/engineering/architecture-optimization/from-latency-to-instant-modernizing-github-issues-navigation-performance/">Modernizing GitHub Issues navigation performance</a> - GitHub is in the middle of moving from Rails-rendered pages to a React frontend. They explain how they improved Issues navigation performance, involving a mix of soft/hard navigation and Rails Turbo transitions.</p></li><li><p>&#128220; <a href="https://performance.dev/how-is-linear-so-fast-a-technical-breakdown">How&#8217;s Linear so fast?</a> - Someone studied in depth their techniques, involving many details, including using MobX observables and storing content locally in IndexedDB.</p></li><li><p>&#128220; <a href="https://formisch.dev/blog/one-core-six-frameworks/">One core, six frameworks, zero runtime abstraction</a> - Formisch is a framework-agnostic form library that integrates with many frameworks by swapping native reactivity at build time instead of providing adapters. React doesn&#8217;t have native signals so it still requires a minimal signal implementation.</p></li><li><p>&#128184; <a href="https://www.skybridge.tech/?utm_source=Third+Party&amp;utm_medium=react+newsletter&amp;utm_campaign=Skybridge+V1">Skybridge V1 - MCP Apps developers, meet the react framework for building MCP apps. Write once, run in ChatGPT, Claude, and any MCP client.</a></p></li><li><p>&#128230; <a href="https://getspiceflow.com/">Spiceflow - Type-safe API and full-stack React RSC framework focused on absolute simplicity</a> - A new meta-framework being actively worked on. See also <a href="https://holocron.so/">Holocron</a>, a Mintlify-compatible docs site generator built on top.</p></li><li><p>&#128230; <a href="https://github.com/AndrewPrifer/liquid-dom">Liquid DOM - Liquid Glass for the Web</a> - A promising library based on WebGPU and HTML-in-Canvas, providing first-class React and React-Three-Fiber bindings.</p></li><li><p>&#128230; <a href="https://tanstack.com/blog/tanstack-virtual-perf-and-ios">TanStack Virtual 3.15 - A lot faster, fix iOS momentum scroll</a></p></li><li><p>&#128230; <a href="https://tanstack.com/blog/tanstack-virtual-chat">TanStack Virtual 3.16 - Chat support: end anchoring, append-follow, stable prepends, streaming</a></p></li><li><p>&#128230; <a href="https://ui.shadcn.com/docs/changelog/2026-05-registry-include">shadcn CLI 4.8 - Registry authors can split large </a><code>registry.json</code><a href="https://ui.shadcn.com/docs/changelog/2026-05-registry-include"> files into smaller slices</a></p></li><li><p>&#128230; <a href="https://github.com/haydenbleasel/ultracite/releases/tag/ultracite%407.8.0">Ultracite 7.8 - Zero-config linter preset for ESLint/Biome/Oxlint - Add TanStack preset</a></p></li><li><p>&#128230; <a href="https://www.apollographql.com/blog/whats-new-in-apollo-client-4-2">Apollo Client 4.2 - Type-safe default options, event-based refetching</a></p></li><li><p>&#128230; <a href="https://lingui.dev/blog/2026/05/22/lingui-context-directives">Lingui 6.1 - Directives to set i18n context and namespace multiple translations at once</a></p></li><li><p>&#128230; <a href="https://github.com/nkzw-tech/fbtee">fbtee 2.0 - i18n framework for JS and React, modern continuation of facebook/fbt</a></p></li><li><p>&#128230; <a href="https://press.fumadocs.dev/blog/introducing-fumapress">Fumapress - Docs framework based on Fumadocs (agnostic), Vite, React, MDX, Waku</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=_PB9rHndhU8">Jack Herrington - Is TanStack Starts Deferred Hydration Revolutionary?</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=OODK3KGUjDA">Tobi Mey - I Tested Next.js Dev MCP</a></p></li><li><p>&#127897;&#65039; <a href="https://www.youtube.com/watch?v=LZa3GIpX4l4">Wiskey.fm - React Foundation, AI Agents, and the Future of Frameworks w/ Seth Webster</a></p></li><li><p>&#127897;&#65039; <a href="https://www.youtube.com/watch?v=anz2xw4FY9c">Se&#241;ors at Scale - TanStack Query at Scale with Dominik Dorfmeister (TkDodo)</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QKZi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2bc5400-58ea-45a5-9b57-69a3fdf7a5bd_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QKZi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2bc5400-58ea-45a5-9b57-69a3fdf7a5bd_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QKZi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2bc5400-58ea-45a5-9b57-69a3fdf7a5bd_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QKZi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2bc5400-58ea-45a5-9b57-69a3fdf7a5bd_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QKZi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2bc5400-58ea-45a5-9b57-69a3fdf7a5bd_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QKZi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2bc5400-58ea-45a5-9b57-69a3fdf7a5bd_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b2bc5400-58ea-45a5-9b57-69a3fdf7a5bd_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Evan Bacon&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Evan Bacon" title="Evan Bacon" srcset="https://substackcdn.com/image/fetch/$s_!QKZi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2bc5400-58ea-45a5-9b57-69a3fdf7a5bd_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QKZi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2bc5400-58ea-45a5-9b57-69a3fdf7a5bd_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QKZi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2bc5400-58ea-45a5-9b57-69a3fdf7a5bd_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QKZi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2bc5400-58ea-45a5-9b57-69a3fdf7a5bd_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/Baconbrix">Evan Bacon</a></strong><a href="https://twitter.com/Baconbrix">Engineering Manager - Expo</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0DK0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0DK0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0DK0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0DK0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hb4_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fe1102d-f3c1-43d8-ab2c-39f8d90a23fc_1200x675.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hb4_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fe1102d-f3c1-43d8-ab2c-39f8d90a23fc_1200x675.jpeg 424w, https://substackcdn.com/image/fetch/$s_!hb4_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fe1102d-f3c1-43d8-ab2c-39f8d90a23fc_1200x675.jpeg 848w, https://substackcdn.com/image/fetch/$s_!hb4_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fe1102d-f3c1-43d8-ab2c-39f8d90a23fc_1200x675.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!hb4_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fe1102d-f3c1-43d8-ab2c-39f8d90a23fc_1200x675.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hb4_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fe1102d-f3c1-43d8-ab2c-39f8d90a23fc_1200x675.jpeg" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1fe1102d-f3c1-43d8-ab2c-39f8d90a23fc_1200x675.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Agent Conf CFP is Now Open&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Agent Conf CFP is Now Open" title="Agent Conf CFP is Now Open" srcset="https://substackcdn.com/image/fetch/$s_!hb4_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fe1102d-f3c1-43d8-ab2c-39f8d90a23fc_1200x675.jpeg 424w, https://substackcdn.com/image/fetch/$s_!hb4_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fe1102d-f3c1-43d8-ab2c-39f8d90a23fc_1200x675.jpeg 848w, https://substackcdn.com/image/fetch/$s_!hb4_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fe1102d-f3c1-43d8-ab2c-39f8d90a23fc_1200x675.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!hb4_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fe1102d-f3c1-43d8-ab2c-39f8d90a23fc_1200x675.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://www.agent.sh/?utm_campaign=agent_conf&amp;utm_source=twir&amp;utm_medium=email&amp;utm_content=cfp">Agent Conf CFP is Now Open</a></strong></p><p>If you&#8217;re building agents, pushing the boundaries of AI engineering, or have something genuinely new to share about autonomous systems, this one is for you.</p><p><strong>Agent Conf</strong> is calling for proposals, and they want the good stuff - not safe corporate talks, but bold, experimental, and production-hardened ideas that move the field forward. As a speaker, you&#8217;ll be sharing the stage with heavy hitters like <strong>Kent C. Dodds</strong> and <strong>Nader Dabit</strong>.</p><p>The deadline is June 20, 2026. Submit your talk at <strong><a href="https://sessionize.com/agent-conf-2026/">https://sessionize.com/agent-conf-2026/</a></strong>.</p><p><strong>Agent Conf</strong> is happening in Warsaw on September 17-18, 2026. <strong>Get 10% off</strong> your ticket with promo code <strong>TWIR</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0DK0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0DK0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0DK0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0DK0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128241; React-Native</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4fiO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c2a14cf-d578-4520-a07c-3657f86564e7_1800x1012.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4fiO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c2a14cf-d578-4520-a07c-3657f86564e7_1800x1012.jpeg 424w, https://substackcdn.com/image/fetch/$s_!4fiO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c2a14cf-d578-4520-a07c-3657f86564e7_1800x1012.jpeg 848w, https://substackcdn.com/image/fetch/$s_!4fiO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c2a14cf-d578-4520-a07c-3657f86564e7_1800x1012.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!4fiO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c2a14cf-d578-4520-a07c-3657f86564e7_1800x1012.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4fiO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c2a14cf-d578-4520-a07c-3657f86564e7_1800x1012.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6c2a14cf-d578-4520-a07c-3657f86564e7_1800x1012.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Expo SDK 56&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Expo SDK 56" title="Expo SDK 56" srcset="https://substackcdn.com/image/fetch/$s_!4fiO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c2a14cf-d578-4520-a07c-3657f86564e7_1800x1012.jpeg 424w, https://substackcdn.com/image/fetch/$s_!4fiO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c2a14cf-d578-4520-a07c-3657f86564e7_1800x1012.jpeg 848w, https://substackcdn.com/image/fetch/$s_!4fiO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c2a14cf-d578-4520-a07c-3657f86564e7_1800x1012.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!4fiO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c2a14cf-d578-4520-a07c-3657f86564e7_1800x1012.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://expo.dev/changelog/sdk-56">Expo SDK 56</a></strong></p><p>A new Expo SDK is out! As always it&#8217;s packed with lots of changes. It bumps to React Native 0.85 and React 19.2, which bring Hermes V1 by default, the new animation backend, and more.</p><p>Here are the most notable highlights:</p><ul><li><p><a href="https://expo.dev/blog/expo-ui-stable-sdk-56">Stable Expo UI</a> - SwiftUI on iOS and Jetpack Compose on Android, now production-ready, providing universal components, replacing 8 community libraries. The <a href="https://expo.dev/blog/worklet-integration-in-expo-ui-synchronously-controlling-swiftui-and-compose-state">worklet integration and </a><code>useNativeState()</code> help you implement flicker-free <code>&lt;TextInput&gt;</code> masking.</p></li><li><p>Expo Router - no longer depends on <code>@react-navigation/*</code>. It ships with experimental support for the new native stack (Material-style headers, predictive back gesture), SSR streaming on web, and customizable SuspenseFallback in layout routes.</p></li><li><p>Faster native builds - precompiled XCFrameworks cut iOS clean builds ~16% and opt-in precompiled headers on Android deliver up to 2.81x faster CMake builds.</p></li><li><p>Expo modules improvements - inline modules let you write Kotlin/Swift alongside JS with automatic TS type generation. A new Kotlin compiler plugin replaces reflection, yielding ~40% faster cold starts and ~33% faster first render on Android.</p></li></ul><p>And many more great additions like File System API, consistent status and navigation bars, and stable iOS widgets, there are far too many updates to list. Make sure to check out the <a href="https://expo.dev/changelog/sdk-56">full changelog</a> or <a href="https://www.youtube.com/watch?v=MKqGbv-Tssg">watch the official intro video</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0DK0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0DK0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0DK0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0DK0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://go.posthog.com/twir-may27">PostHog - 4,063 errors closed without a human opening PostHog &#8211; here&#8217;s what we learned</a></p></li><li><p>&#128064; <a href="https://github.com/react-navigation/react-navigation/pull/13118">React Navigation PR - Rework server rendering API to support streaming</a></p></li><li><p>&#128064; <a href="https://github.com/facebook/react-strict-dom/pull/475">React Strict DOM PR - Adopt React Native 0.82 DOM Node APIs</a></p></li><li><p>&#128172; <a href="https://github.com/react-native-community/discussions-and-proposals/pull/1003">React Native RFC - Dedicated </a><code>*Instance</code><a href="https://github.com/react-native-community/discussions-and-proposals/pull/1003"> types for built-in RN component refs</a> - With the upcoming Strict TypeScript API and auto-generated types, built-in components will be typed as functions instead of classes: <code>useRef&lt;View&gt;</code> will break. This RFC proposes to export a <code>ViewInstance</code> type to let you type <code>useRef&lt;ViewInstance&gt;</code> instead.</p></li><li><p>&#128220; <a href="https://blog.margelo.com/deep-dive-in-keyboard-handling">The Go-To Guide for Understanding Keyboards in React Native</a> - A deep dive into how keyboards work, differences between OS versions, quirks, and how to make it work across platforms.</p></li><li><p>&#128220; <a href="https://www.callstack.com/blog/profile-react-components-in-react-native-release-builds">Profile React Components in React Native Release Builds</a> - A way to profile without debug-mode overhead similar to what web developers do for a long time.</p></li><li><p>&#128220; <a href="https://nicolasgallagher.com/one-react-for-web-and-native/">One React for Web and Native</a> - An outline on how to unify React Native with the web platform to reduce ecosystem fragmentation. React Native directly implements subsets of the DOM specification to make React Strict DOM possible.</p></li><li><p>&#128230; <a href="https://www.npmjs.com/package/@nativescript/react-native">NativeScript React Native</a> - TurboModule wrapper giving access to all native APIs in React Native, letting you create UIKit views on the fly. This looks promising, and I&#8217;m sure we&#8217;ll hear more about it soon!</p></li><li><p>&#128230; <a href="https://lynxjs.org/next/blog/lynx-ui">Lynx UI</a> - The React Native competitor launched unstyled UI components for ReactLynx covering scroll views, popovers, swipers, sheets, reference design language. Programmable interactions and motion.</p></li><li><p>&#128230; <a href="https://github.com/software-mansion/react-native-reanimated/releases/tag/4.4.0">Reanimated 4.4 - iOS CSS Core Animation engine, Animation Backend, useTimestamp hook, precompiled headers on Android</a> - Add supports for RN 0.85 new shared animations backend, behind a flag.</p></li><li><p>&#128230; <a href="https://github.com/software-mansion/react-native-reanimated/releases/tag/worklets-0.9.1">Worklets 0.9.1 - Cross-runtime Promises, uniform Shareable hosting, DX improvements</a></p></li><li><p>&#128230; <a href="https://github.com/react-navigation/standard-navigation">Standard Navigation - API for creating navigators that can work with multiple navigation libraries, such as React Navigation and Expo Router</a></p></li><li><p>&#128230; <a href="https://github.com/module-federation/core/releases/tag/v2.5.0">Module Federation 2.5 - Metro plugin for Rock, manifest hashes for native caching, observability integration</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion-labs/react-native-enriched-markdown/releases/tag/0.6.0">Enriched Markdown 0.6 - Mentions, superscript/subscript, custom selection, better streaming</a></p></li><li><p>&#128230; <a href="https://github.com/gronxb/hot-updater/releases">Hot Updated 0.32 - Bundle diffing, content-addressed storage, faster OTA deploys</a></p></li><li><p>&#128230; <a href="https://maestro.dev/blog/maestro-cli-v2-6-0">Maestro CLI 2.6 - Maestro Viewer, parallel iOS sim execution, MCP improvements</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion/react-native-executorch/releases/tag/v0.9.0">ExecuTorch 0.9 - 10x faster Whisper, Multilingual Text-to-Speech, continuous voice activity detection</a></p></li><li><p>&#128230; <a href="https://github.com/getsentry/sentry-react-native/releases/tag/8.12.0">Sentry RN 8.12 - Expo Router integration, build-time label injection, multi-instance TTID/TTFD</a></p></li><li><p>&#128230; <a href="https://github.com/uni-stack/uniwind/releases/tag/v1.7.0">Uniwind 1.7 - Major bundler refactor, flex parsing fix</a></p></li><li><p>&#129302; <a href="https://www.callstack.com/blog/introducing-apex-a-fast-specialized-model-for-react-native">Apex (private beta) - React Native coding model, based on Gemma 4, built by Callstack</a> - A smaller domain-specific model can be faster, more performant and cost-effective than a general model.</p></li><li><p>&#129302; <a href="https://github.com/margelo/react-native-skills">Margelo RN agent skills - AI skills for Nitro Modules, VisionCamera, MMKV</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/playlist?list=PLSk21zn8fFZCE_TlHUVnTVMm7mNl_fzxl">App.js Conf 2026</a> - The conf starts tomorrow, free to watch live.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0DK0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0DK0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0DK0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0DK0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128256; Other</strong></h2><ul><li><p>&#128064; <a href="https://bsky.app/profile/tc39.es/post/3mmhlitpxrq2a">TC39 - 114th meeting outcome</a> - Last week&#8217;s meeting advanced many exciting ES proposals: Explicit Resource Management, <code>Atomics.pause</code>, <code>Iterator</code> APIs, <code>Intl</code> APIs, and more.</p></li><li><p>&#128064; <a href="https://github.com/npm/cli/pull/9360">npm PR - Phase 1 of making install scripts opt-in</a> - npm CLI implementing new supply chain security features! This introduces various APIs such as <code>package.allowScripts</code>. Phase 1 (being backported in v11) will emit an advisory warning on unapproved scripts. Phase 2 (v12.0) will block unapproved script runs by default.</p></li><li><p>&#128064; <a href="https://github.com/WICG/persistent-iframes">WICG proposal - Persistent Iframes</a> - Very early, but this could help make MPAs more compelling against SPAs if there was a way to preserve chats and audio/video players across navigation.</p></li><li><p>&#128220; <a href="https://www.joshwcomeau.com/animation/css-vs-javascript/">CSS vs. JavaScript animations</a> - Explains the performance and flexibility tradeoff of animating with JS vs animating with CSS/WAAPI on a separate thread.</p></li><li><p>&#128230; <a href="https://github.blog/changelog/2026-05-22-staged-publishing-and-new-install-time-controls-for-npm/">npm CLI 11.15 - Staged publishing, new </a><code>--allow-*</code><a href="https://github.blog/changelog/2026-05-22-staged-publishing-and-new-install-time-controls-for-npm/"> flags</a> - 2 updates focused on supply-chain security. Use <code>npm stage</code> to publish a release in 2 phases, requiring the approval of a human maintainer.</p></li><li><p>&#128230; <a href="https://pnpm.io/blog/releases/11.3">pnpm 11.3 - npm staged publishing with </a><code>pnpm stage</code><a href="https://pnpm.io/blog/releases/11.3">, </a><code>trustLockfile</code><a href="https://pnpm.io/blog/releases/11.3"> setting</a></p></li><li><p>&#128230; <a href="https://deno.com/blog/v2.8">Deno 2.8 - New commands, defaults to </a><code>:npm</code><a href="https://deno.com/blog/v2.8">, Node.js compatibility, </a><code>import defer</code><a href="https://deno.com/blog/v2.8">, and more</a></p></li><li><p>&#128230; <a href="https://nodejs.org/en/blog/release/v24.16.0">Node 24.16 - Test runner improvements, </a><code>randomUUIDv7()</code><a href="https://nodejs.org/en/blog/release/v24.16.0">, more APIs support </a><code>AbortSignal</code></p></li><li><p>&#128230; <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/151">Firefox 151 - </a><code>@container</code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/151"> queries (widely available), Document Picture-in-Picture, Web Serial API</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0DK0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0DK0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0DK0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0DK0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!0DK0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d8f2005-e99e-4620-b095-1a551b8110e7_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#129325; Fun</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3asJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f9435a-b7f4-4f1a-8881-b6a3c52cd30f_1000x1112.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3asJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f9435a-b7f4-4f1a-8881-b6a3c52cd30f_1000x1112.jpeg 424w, https://substackcdn.com/image/fetch/$s_!3asJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f9435a-b7f4-4f1a-8881-b6a3c52cd30f_1000x1112.jpeg 848w, https://substackcdn.com/image/fetch/$s_!3asJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f9435a-b7f4-4f1a-8881-b6a3c52cd30f_1000x1112.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!3asJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f9435a-b7f4-4f1a-8881-b6a3c52cd30f_1000x1112.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3asJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f9435a-b7f4-4f1a-8881-b6a3c52cd30f_1000x1112.jpeg" width="1000" height="1112" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d5f9435a-b7f4-4f1a-8881-b6a3c52cd30f_1000x1112.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1112,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!3asJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f9435a-b7f4-4f1a-8881-b6a3c52cd30f_1000x1112.jpeg 424w, https://substackcdn.com/image/fetch/$s_!3asJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f9435a-b7f4-4f1a-8881-b6a3c52cd30f_1000x1112.jpeg 848w, https://substackcdn.com/image/fetch/$s_!3asJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f9435a-b7f4-4f1a-8881-b6a3c52cd30f_1000x1112.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!3asJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f9435a-b7f4-4f1a-8881-b6a3c52cd30f_1000x1112.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PrCs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88dbdf8a-9591-429d-90e5-506a8e07235c_1000x457.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PrCs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88dbdf8a-9591-429d-90e5-506a8e07235c_1000x457.jpeg 424w, https://substackcdn.com/image/fetch/$s_!PrCs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88dbdf8a-9591-429d-90e5-506a8e07235c_1000x457.jpeg 848w, https://substackcdn.com/image/fetch/$s_!PrCs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88dbdf8a-9591-429d-90e5-506a8e07235c_1000x457.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!PrCs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88dbdf8a-9591-429d-90e5-506a8e07235c_1000x457.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PrCs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88dbdf8a-9591-429d-90e5-506a8e07235c_1000x457.jpeg" width="1000" height="457" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/88dbdf8a-9591-429d-90e5-506a8e07235c_1000x457.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:457,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!PrCs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88dbdf8a-9591-429d-90e5-506a8e07235c_1000x457.jpeg 424w, https://substackcdn.com/image/fetch/$s_!PrCs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88dbdf8a-9591-429d-90e5-506a8e07235c_1000x457.jpeg 848w, https://substackcdn.com/image/fetch/$s_!PrCs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88dbdf8a-9591-429d-90e5-506a8e07235c_1000x457.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!PrCs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88dbdf8a-9591-429d-90e5-506a8e07235c_1000x457.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>See ya! &#128075;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[This Week In React 282]]></title><description><![CDATA[Security, Fate, TanStack, Redux, Jotai, Base UI, Relay, Storybook | Hermes-node, Expo, Rozenite, Harness, VR, Nitro, Skia, Redraw | TC39, Bun, pnpm, npm, Yarn, Node, Webpack]]></description><link>https://substack.thisweekinreact.com/p/this-week-in-react-282</link><guid isPermaLink="false">https://substack.thisweekinreact.com/p/this-week-in-react-282</guid><dc:creator><![CDATA[Sébastien Lorber]]></dc:creator><pubDate>Fri, 22 May 2026 12:14:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!q9KJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6bde5f3-3c00-48a2-a84d-e782293273d0_1365x768.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi everyone, <a href="https://x.com/sebastienlorber">Seb</a> and <a href="https://x.com/jaworek3211">Jan</a> here &#128075;!</p><p>It looks like security is going to be a hot topic this year! &#128517;<br>More packages are being compromised, and blog posts are also covering recent RSC vulnerabilities.<br>Maybe we&#8217;re reaching a tipping point, and better security practices will consolidate this year.</p><p>On the React Native side, Hermes-node is quite exciting, although it&#8217;s very early.</p><p>An exciting TC39 meeting is currently underway, and several proposals have already progressed.<br>Yarn and npm are improving on the security side.<br>Bun and pnpm are being ported to Rust.</p><p>Let&#8217;s dive in!</p><p>As always, thanks for supporting us on your favorite platform:</p><ul><li><p>&#129419; <a href="https://slo.im/last/b">Bluesky</a></p></li><li><p>&#10006;&#65039; <a href="https://slo.im/last/x">X / Twitter</a></p></li><li><p>&#128084; <a href="https://slo.im/last/l">LinkedIn</a></p></li><li><p>&#128125; <a href="https://slo.im/last/r">Reddit</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qgeO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9026edff-81ce-4482-99e0-6604e7147b2f_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qgeO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9026edff-81ce-4482-99e0-6604e7147b2f_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qgeO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9026edff-81ce-4482-99e0-6604e7147b2f_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qgeO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9026edff-81ce-4482-99e0-6604e7147b2f_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qgeO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9026edff-81ce-4482-99e0-6604e7147b2f_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qgeO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9026edff-81ce-4482-99e0-6604e7147b2f_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9026edff-81ce-4482-99e0-6604e7147b2f_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Theo Browne&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Theo Browne" title="Theo Browne" srcset="https://substackcdn.com/image/fetch/$s_!qgeO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9026edff-81ce-4482-99e0-6604e7147b2f_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qgeO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9026edff-81ce-4482-99e0-6604e7147b2f_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qgeO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9026edff-81ce-4482-99e0-6604e7147b2f_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qgeO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9026edff-81ce-4482-99e0-6604e7147b2f_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/theo">Theo Browne</a></strong><a href="https://twitter.com/theo">Founder of ping.gg - Youtuber</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!t0_i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!t0_i!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!t0_i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!t0_i!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Tjvb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3818ca-79e6-4f89-bbb9-2e7f55750290_2816x1472.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Tjvb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3818ca-79e6-4f89-bbb9-2e7f55750290_2816x1472.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Tjvb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3818ca-79e6-4f89-bbb9-2e7f55750290_2816x1472.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Tjvb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3818ca-79e6-4f89-bbb9-2e7f55750290_2816x1472.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Tjvb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3818ca-79e6-4f89-bbb9-2e7f55750290_2816x1472.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Tjvb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3818ca-79e6-4f89-bbb9-2e7f55750290_2816x1472.jpeg" width="1456" height="761" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2c3818ca-79e6-4f89-bbb9-2e7f55750290_2816x1472.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:761,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Ship AI generated code safely with Meticulous.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Ship AI generated code safely with Meticulous." title="Ship AI generated code safely with Meticulous." srcset="https://substackcdn.com/image/fetch/$s_!Tjvb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3818ca-79e6-4f89-bbb9-2e7f55750290_2816x1472.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Tjvb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3818ca-79e6-4f89-bbb9-2e7f55750290_2816x1472.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Tjvb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3818ca-79e6-4f89-bbb9-2e7f55750290_2816x1472.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Tjvb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c3818ca-79e6-4f89-bbb9-2e7f55750290_2816x1472.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q2&amp;utm_content=1st">Ship AI generated code safely with Meticulous.</a></strong></p><p>Claude writes your code. Claude reviews your code. Claude fixes the review comments. And somehow, <em>you&#8217;re</em> the one getting paged at 2am when it breaks in prod.</p><p>Fortunately, top AI-driven teams like Dropbox, Notion, LaunchDarkly, and Wiz rely on Meticulous to run 1000s of e2e UI tests autonomously, covering every user flow, edge case, role and permutation. Built by ex-Palantir engineers, <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q2&amp;utm_content=1st">Meticulous gives you near-exhaustive coverage in weeks, without any developer effort</a>.</p><p>It works like magic in the background:</p><ul><li><p>Near-exhaustive coverage on every test run</p></li><li><p>No test creation</p></li><li><p>No maintenance (seriously)</p></li><li><p>Zero flakes (built on a deterministic browser)</p></li></ul><p><strong>Check it out</strong> - and see why one engineering leader at Dropbox said that &#8220;<a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q2&amp;utm_content=1st#:~:text=Once%20we%20started%20using%20Meticulous%2C%20we%20couldn%27t%20imagine%20working%20without%20it.">once we started using Meticulous, we couldn&#8217;t imagine working without it</a>.&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!t0_i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!t0_i!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!t0_i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!t0_i!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#9883;&#65039; React</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!q9KJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6bde5f3-3c00-48a2-a84d-e782293273d0_1365x768.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!q9KJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6bde5f3-3c00-48a2-a84d-e782293273d0_1365x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!q9KJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6bde5f3-3c00-48a2-a84d-e782293273d0_1365x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!q9KJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6bde5f3-3c00-48a2-a84d-e782293273d0_1365x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!q9KJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6bde5f3-3c00-48a2-a84d-e782293273d0_1365x768.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!q9KJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6bde5f3-3c00-48a2-a84d-e782293273d0_1365x768.jpeg" width="1365" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d6bde5f3-3c00-48a2-a84d-e782293273d0_1365x768.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1365,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Mini Shai-Hulud worm keeps digging&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Mini Shai-Hulud worm keeps digging" title="Mini Shai-Hulud worm keeps digging" srcset="https://substackcdn.com/image/fetch/$s_!q9KJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6bde5f3-3c00-48a2-a84d-e782293273d0_1365x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!q9KJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6bde5f3-3c00-48a2-a84d-e782293273d0_1365x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!q9KJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6bde5f3-3c00-48a2-a84d-e782293273d0_1365x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!q9KJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6bde5f3-3c00-48a2-a84d-e782293273d0_1365x768.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://www.wiz.io/blog/mini-shai-hulud-teampcp-hits-antv-supply-chain">Mini Shai-Hulud worm keeps digging</a></strong></p><p>Remember last week&#8217;s TanStack Router compromise? The dangerous worm from TeamPCP keeps compromising users and maintainers across ecosystems, affecting popular packages such as <code>echarts-for-react</code> and <code>@antv</code>, and GitHub actions such as <code>actions-cool/issues-helper</code>. <a href="https://openai.com/index/our-response-to-the-tanstack-npm-supply-chain-attack/">OpenAI employees got compromised</a>, leading them to regenerate code signing certificates. Grafana has been <a href="https://grafana.com/blog/grafana-labs-security-update-latest-on-tanstack-npm-supply-chain-ransomware-incident/">blackmailed by a ransomware group</a>.The Million.js repository was also <a href="https://github.com/aidenybai/million/issues/1186">briefly compromised</a>, but they seem to have gotten lucky: it apparently didn&#8217;t affect anyone.</p><p>Rumors also link this worm to the <a href="https://github.com/nrwl/nx-console/security/advisories/GHSA-c9j4-9m59-847w">Nx Console VSCode extension compromise</a>, and possibly connected to a major <a href="https://x.com/github/status/2056949168208552080">GitHub internal repo breach</a>. This story isn&#8217;t over &#8212; &#8220;Mini&#8221; feels like a very questionable name &#128517;!</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!t0_i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!t0_i!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!t0_i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!t0_i!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://pscale.link/rw">PlanetScale - Faster apps start with a faster database. Get started with the fastest benchmarked Postgres and MySQL.</a></p></li><li><p>&#128467;&#65039; <a href="https://reactnorway.com/?utm_medium=social&amp;utm_source=ThisWeekReact">React Norway</a> - &#127475;&#127476; Oslo - 5 June - Experience the &#8220;Rock &amp; React&#8221; atmosphere in a unique one-track full-stack festival with 350+ passionate developers. -10% with code &#8220;TWIR&#8221;.</p></li><li><p>&#128220; <a href="https://frontendmasters.com/blog/react-server-components-in-tanstack/">React Server Components in TanStack</a> - A pragmatic intro to TanStack&#8217;s flexible RSC model, CompositeComponent, and how much it could save in terms of client bundle size.</p></li><li><p>&#128220; <a href="https://www.peterp.me/articles/jotai-structural-sharing-vs-selectatom/">Structural sharing, selectAtom, and why your jotai atoms re-render too much</a> - Explains how deriving atoms, decomposing into primitive atoms, and structural sharing can help avoid re-renders.</p></li><li><p>&#128220; <a href="https://lachlan.nz/blog/the-react2shell-story">The React2Shell Story</a> - 2 articles from the duo who reported the security flaw allowing remote code execution in RSC.</p></li><li><p>&#128220; <a href="https://saschb2b.com/blog/flight-protocol-dos">The Flight Protocol Made Your DoS My Problem</a> - React/Next.js recently patched various CVEs. One of them could block your Node process in a single HTTP request.</p></li><li><p>&#128184; <a href="https://certificates.dev/react/free-weekend?friend=TWIR">Certificates.dev - React Free Weekend is coming. Get unlimited access to mid-level training, incl. coding challenges + trial exam for 48H.</a></p></li><li><p>&#128230; <a href="https://fate.technology/posts/fate-1.0">Fate 1.0 - The first full Async React Metaframework</a> - Fate is a Relay-inspired framework (not based on GraphQL) supporting view composition, normalized caching, data masking, Async React features, live views through Server-Sent Events, Drizzle, garbage collection, and more.</p></li><li><p>&#128230; <a href="https://github.com/TanStack/router/releases/tag/release-2026-05-20-1004">TanStack Router releases - Deferred hydration capabilities, route matching priority</a> - Deferred Hydration (experimental, <a href="https://tanstack.com/start/latest/docs/framework/react/guide/deferred-hydration">docs</a>) could help improve your page&#8217;s perceived performance by making it interactive sooner. They also recently introduced <a href="https://tanstack.com/start/latest/docs/framework/react/guide/css-styling#inline-route-css-in-production">CSS inlining</a> and a <a href="https://tanstack.com/start/latest/docs/framework/react/guide/middleware#csrf-middleware">CSRF middleware</a>.</p></li><li><p>&#128230; <a href="https://tanstack.com/blog/streaming-structured-output">TanStack AI releases - </a><code>useChat()</code><a href="https://tanstack.com/blog/streaming-structured-output"> supports streaming structured output</a></p></li><li><p>&#128230; <a href="https://github.com/reduxjs/react-redux/releases/tag/v9.3.0">React Redux 9.3 - </a><code>connect</code><a href="https://github.com/reduxjs/react-redux/releases/tag/v9.3.0"> API deprecated, Trusted Publishing fixed</a> - The old HOC API is not removed, but it&#8217;s recommended to migrate to <code>useSelector/useDispatch</code></p></li><li><p>&#128230; <a href="https://github.com/reduxjs/redux-toolkit/releases/tag/v2.12.0">Redux Toolkit 2.12 - TypeScript Improvements, Skills</a></p></li><li><p>&#128230; <a href="https://base-ui.com/react/overview/releases/v1-5-0">Base UI 1.5 - Major mount perf improvements for popovers/dialogs/tooltips/menus</a></p></li><li><p>&#128230; <a href="https://github.com/react-hook-form/react-hook-form/releases/tag/v7.76.0">React Hook Form 7.76 - Improved </a><code>isDirty</code><a href="https://github.com/react-hook-form/react-hook-form/releases/tag/v7.76.0"> and </a><code>useFieldArray</code></p></li><li><p>&#128230; <a href="https://github.com/facebook/relay/releases/tag/v21.0.0">Relay 21.0 - First-party TypeScript support, experimental RSC support, improved error handling</a></p></li><li><p>&#128230; <a href="https://storybook.js.org/blog/storybook-10-4/">Storybook 10.4 - TanStack React, React Native isolation, agentic setup, review filters</a></p></li><li><p>&#128230; <a href="https://github.com/millionco/react-doctor">React Doctor 0.2 - Your agent writes bad React. This catches it.</a></p></li><li><p>&#128230; <a href="https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7151">React Router 7.15.1 - New </a><code>unstable_useRouterState</code><a href="https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7151"> consolidation API</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=6moPS3AAbe4">Nuno Maduro - Why React Developers Are Leaving Next.js for TanStack, with Tanner Linsley</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=gwTQLZSIlsU">Fireship - A single PR just hijacked the NPM registry...</a></p></li><li><p>&#127897;&#65039; <a href="https://syntax.fm/show/1005/programatic-and-skill-based-video-creation-with-remotion">Syntax.fm 1005 - Programatic and Skill based Video Creation with Remotion</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Oz5H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b904aa-e5c1-4cca-82d0-1ee3039d35ea_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Oz5H!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b904aa-e5c1-4cca-82d0-1ee3039d35ea_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Oz5H!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b904aa-e5c1-4cca-82d0-1ee3039d35ea_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Oz5H!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b904aa-e5c1-4cca-82d0-1ee3039d35ea_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Oz5H!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b904aa-e5c1-4cca-82d0-1ee3039d35ea_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Oz5H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b904aa-e5c1-4cca-82d0-1ee3039d35ea_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a9b904aa-e5c1-4cca-82d0-1ee3039d35ea_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Jack Herrington&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Jack Herrington" title="Jack Herrington" srcset="https://substackcdn.com/image/fetch/$s_!Oz5H!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b904aa-e5c1-4cca-82d0-1ee3039d35ea_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Oz5H!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b904aa-e5c1-4cca-82d0-1ee3039d35ea_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Oz5H!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b904aa-e5c1-4cca-82d0-1ee3039d35ea_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Oz5H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9b904aa-e5c1-4cca-82d0-1ee3039d35ea_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/jherr">Jack Herrington</a></strong><a href="https://twitter.com/jherr">Principal Engineer - Youtuber</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!t0_i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!t0_i!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!t0_i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!t0_i!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oYiC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f4a0929-2a97-4015-a433-b35164f8a535_1672x941.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oYiC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f4a0929-2a97-4015-a433-b35164f8a535_1672x941.jpeg 424w, https://substackcdn.com/image/fetch/$s_!oYiC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f4a0929-2a97-4015-a433-b35164f8a535_1672x941.jpeg 848w, https://substackcdn.com/image/fetch/$s_!oYiC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f4a0929-2a97-4015-a433-b35164f8a535_1672x941.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!oYiC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f4a0929-2a97-4015-a433-b35164f8a535_1672x941.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oYiC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f4a0929-2a97-4015-a433-b35164f8a535_1672x941.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3f4a0929-2a97-4015-a433-b35164f8a535_1672x941.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Tomorrow Only: Next.js Debugging Workshop&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Tomorrow Only: Next.js Debugging Workshop" title="Tomorrow Only: Next.js Debugging Workshop" srcset="https://substackcdn.com/image/fetch/$s_!oYiC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f4a0929-2a97-4015-a433-b35164f8a535_1672x941.jpeg 424w, https://substackcdn.com/image/fetch/$s_!oYiC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f4a0929-2a97-4015-a433-b35164f8a535_1672x941.jpeg 848w, https://substackcdn.com/image/fetch/$s_!oYiC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f4a0929-2a97-4015-a433-b35164f8a535_1672x941.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!oYiC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f4a0929-2a97-4015-a433-b35164f8a535_1672x941.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://sentry.io/resources/nextjs-may-workshop/?utm_source=thisweekinreact&amp;utm_medium=paid-community&amp;utm_campaign=nextjs-fy27q2-nextjsworkshop&amp;utm_content=newsletter-secondary-nextjs-workshop-register">Tomorrow Only: Next.js Debugging Workshop</a></strong></p><p>Most Next.js bugs don&#8217;t fail loudly. They fail in a webhook handler at 3am, in a server component nobody touched, in an auth flow that worked yesterday. Sentry&#8217;s hands-on workshop shows you how to catch them with high-context logs and distributed tracing.</p><p>Last chance to save your spot. <strong><a href="https://sentry.io/resources/nextjs-may-workshop/?utm_source=thisweekinreact&amp;utm_medium=paid-community&amp;utm_campaign=nextjs-fy27q2-nextjsworkshop&amp;utm_content=newsletter-secondary-nextjs-workshop-register">Register today.</a></strong></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!t0_i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!t0_i!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!t0_i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!t0_i!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128241; React-Native</strong></h2><ul><li><p>&#128184; <a href="https://go.posthog.com/twir-may20">PostHog - The 7 best session replay tools for mobile apps</a></p></li><li><p>&#128220; <a href="https://www.callstack.com/blog/unlocking-expo-updates-in-an-isolated-brownfield-architecture-with-sdk-55">Unlocking Expo Updates in an Isolated Brownfield Architecture with SDK 55</a> - Running Expo Updates in Isolated Brownfield was always a challenge. Thanks to recent updates, it is a thing of the past.</p></li><li><p>&#128220; <a href="https://expo.dev/changelog/expo-go-loading-changes-may-2026">Changes to project loading behavior in Expo Go</a> - Breaking change for EAS Update users: Expo Go now enforces ownership checks. Self-hosted updates can no longer serve Hermes bytecode bundles.</p></li><li><p>&#128220; <a href="https://www.peterp.me/articles/wtf-does-box-do-in-nitro-modules/">WTF does </a><code>.box()</code><a href="https://www.peterp.me/articles/wtf-does-box-do-in-nitro-modules/"> do in Nitro Modules?</a> - It converts <code>NativeState</code>-backed objects into <code>HostObjects</code> so they can cross worklet runtime boundaries.</p></li><li><p>&#128220; <a href="https://expo.dev/blog/build-fast-no-matter-what-how-expo-is-optimizing-for-speed">Build fast, no matter what: how Expo is optimizing for speed (and how you can, too)</a> - Deep dive into Expo&#8217;s build speed optimizations: hardware scaling, Gradle caching, prebuilt binaries, and fingerprint-based workflows that avoid full rebuilds for JS-only changes.</p></li><li><p>&#128220; <a href="https://www.callstack.com/blog/using-turbomodule-substitution-to-build-safer-react-native-plugin-systems">Using TurboModule Substitution to Build Safer React Native Plugin Systems</a> - Explains how React Native Sandbox 0.6 offers granular sandboxing capabilities.</p></li><li><p>&#128230; <a href="https://github.com/tmikov/hermes-node">Hermes Node - Node.js built-in module compatibility layer for the Hermes JS engine</a> - The creator of Hermes published an AI-driven prototype of a new JS/TS runtime built on Hermes, compatible with Node.js. It won&#8217;t outperform Node.js/V8 today, but Static Hermes could make it way faster in the future.</p></li><li><p>&#128230; <a href="https://github.com/daehyeonmun2021/react-native-skia-lab">Skia Lab - Beautiful react-native-skia demo</a> - A collection of painting, physics, shaders, and gesture interactions demos.</p></li><li><p>&#128230; <a href="https://updates.reactvision.xyz/meta-quest-lands-studio-scenes-drop-in-whats-new-in-viroreact-2-55-0-a8876564047a">ViroReact 2.55 - Ship as a native VR experience on Meta Quest</a></p></li><li><p>&#128230; <a href="https://github.com/callstackincubator/react-native-harness/releases/tag/v1.2.0">Harness 1.2 - iOS code coverage, permission automation, external xctest commands</a></p></li><li><p>&#128230; <a href="https://github.com/jamsch/expo-speech-recognition/releases/tag/v56.0.0">Expo Speech Recognition 56 - Expo SDK 56 support</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion-labs/typegpu-confetti/releases/tag/v0.3.0">TypeGPU Confetti 0.3 - Rewritten to use TypeGPU</a></p></li><li><p>&#128230; <a href="https://github.com/margelo/react-native-nitro-fetch/releases/tag/v1.3.0">Nitro Fetch 1.3 - Removed box/unbox, fixed binary responses, performance improvements</a></p></li><li><p>&#128230; <a href="https://github.com/callstackincubator/agent-device/releases/tag/v0.15.0">Agent Device 0.15 - Faster boot and test replay, iOS replay speedup, MCP discovery-only</a></p></li><li><p>&#128230; <a href="https://github.com/gre/react-native-view-shot/releases">View Shot 5.1 - iOS 17 compatibility, Windows support + example, Android ScrollView fix</a></p></li><li><p>&#128230; <a href="https://github.com/callstackincubator/rozenite/releases/tag/v1.10.0">Rozenite DevTools 1.10 - Network, Performance, Vite plugin improvements</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=aP8GSJ7oTuc">William Candillon - Debriefing Redraw &amp; TypeGPU</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=ywvywq0AGPM">Beto - Everything new in Expo SDK 56</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=GChgKhfuzYA">React Native Live Ep 11 - Building High-Performance UI with React Native Skia / William Candillon</a></p></li><li><p>&#127897;&#65039; <a href="https://infinite.red/react-native-radio/rnr-353-building-react-native-apps-in-the-ai-era">RNR 353 - Building React Native Apps in the AI Era</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!t0_i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!t0_i!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!t0_i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!t0_i!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128256; Other</strong></h2><ul><li><p>&#128064; <a href="https://github.com/tc39/proposal-explicit-resource-management">Explicit Resource Management reached TC39 stage 4</a> - A TC39 meeting is in progress, and many proposals have progressed. The most &#8220;user-facing&#8221; one &#8211; <code>using</code> &#8211; is going to be part of the standard and simplify your resource cleanup logic. I take the opportunity to show you <a href="https://x.com/sebastienlorber/status/2057033638827483236">how to leverage it immediately in Vitest/Jest tests</a>.</p></li><li><p>&#128064; <a href="https://github.com/npm/rfcs/pull/868">npm RFC - Make install scripts opt-in</a> - It&#8217;s great to see npm finally looking to catch up on security! They&#8217;d like to introduce an <code>allowScripts</code> map in <code>package.json</code> to help mitigate the recent supply chain attacks.</p></li><li><p>&#128064; <a href="https://github.com/oven-sh/bun/pull/30412">Bun PR - Rewrite Bun in Rust</a> - The bold, AI-driven PR landed in just one week, making Bun&#8217;s migration from Zig to Rust official. &#129327;</p></li><li><p>&#128220; <a href="https://developer.chrome.com/blog/declarative-partial-updates">Declarative partial updates</a> - New exciting APIs may come to the web platform: out-of-order streaming, and new HTML insertion methods supporting streaming. Already available in Chrome 148 behind an experimental flag.</p></li><li><p>&#128220; <a href="https://www.jasnell.me/posts/quic-comes-to-node">QUIC and HTTP/3 Come To Node.js (finally)</a> - A 5-part deep dive on the experimental <code>node:quic</code> API.</p></li><li><p>&#128230; <a href="https://github.com/pnpm/pnpm/releases/tag/v11.2.0">pnpm 11.12 - Experimental Rust install engine</a> - pnpm is also <a href="https://github.com/pnpm/pnpm/tree/main/pacquet">migrating to Rust</a>, with an incremental strategy. This release introduces an opt-in for the new Rust engine to power the install phase.</p></li><li><p>&#128230; <a href="https://github.com/yarnpkg/berry/releases/tag/%40yarnpkg%2Fcli%2F4.15.0">Yarn 4.15 - Add </a><code>npmMinimalAgeGate: 1d</code><a href="https://github.com/yarnpkg/berry/releases/tag/%40yarnpkg%2Fcli%2F4.15.0"> release cooldown by default</a> - Another package manager adopts better security defaults. BTW, Yarn is also being rewritten in Rust.</p></li><li><p>&#128230; <a href="https://nodejs.org/en/blog/release/v26.2.0">Node 26.2 - </a><code>stream.compose</code><a href="https://nodejs.org/en/blog/release/v26.2.0"> stable, </a><code>fs.stat()</code><a href="https://nodejs.org/en/blog/release/v26.2.0"> returns </a><code>Temporal.Instant</code></p></li><li><p>&#128230; <a href="https://webpack.js.org/blog/2026-05-19-webpack-5-107/">Webpack 5.107 - Experimental HTML modules, experimental native TS support</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!t0_i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!t0_i!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!t0_i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!t0_i!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!t0_i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4de2bb72-1223-448e-bb15-8c702499c58e_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#129325; Fun</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8iBq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b28299c-0079-4f70-b3b4-ab5036736c90_1000x770.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8iBq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b28299c-0079-4f70-b3b4-ab5036736c90_1000x770.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8iBq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b28299c-0079-4f70-b3b4-ab5036736c90_1000x770.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8iBq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b28299c-0079-4f70-b3b4-ab5036736c90_1000x770.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8iBq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b28299c-0079-4f70-b3b4-ab5036736c90_1000x770.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8iBq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b28299c-0079-4f70-b3b4-ab5036736c90_1000x770.jpeg" width="1000" height="770" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0b28299c-0079-4f70-b3b4-ab5036736c90_1000x770.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:770,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!8iBq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b28299c-0079-4f70-b3b4-ab5036736c90_1000x770.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8iBq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b28299c-0079-4f70-b3b4-ab5036736c90_1000x770.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8iBq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b28299c-0079-4f70-b3b4-ab5036736c90_1000x770.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8iBq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b28299c-0079-4f70-b3b4-ab5036736c90_1000x770.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zwy6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56be86ab-71c9-4003-9a90-7ea001cf872f_1008x1800.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zwy6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56be86ab-71c9-4003-9a90-7ea001cf872f_1008x1800.jpeg 424w, https://substackcdn.com/image/fetch/$s_!zwy6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56be86ab-71c9-4003-9a90-7ea001cf872f_1008x1800.jpeg 848w, https://substackcdn.com/image/fetch/$s_!zwy6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56be86ab-71c9-4003-9a90-7ea001cf872f_1008x1800.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!zwy6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56be86ab-71c9-4003-9a90-7ea001cf872f_1008x1800.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zwy6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56be86ab-71c9-4003-9a90-7ea001cf872f_1008x1800.jpeg" width="1008" height="1800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/56be86ab-71c9-4003-9a90-7ea001cf872f_1008x1800.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1800,&quot;width&quot;:1008,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!zwy6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56be86ab-71c9-4003-9a90-7ea001cf872f_1008x1800.jpeg 424w, https://substackcdn.com/image/fetch/$s_!zwy6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56be86ab-71c9-4003-9a90-7ea001cf872f_1008x1800.jpeg 848w, https://substackcdn.com/image/fetch/$s_!zwy6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56be86ab-71c9-4003-9a90-7ea001cf872f_1008x1800.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!zwy6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56be86ab-71c9-4003-9a90-7ea001cf872f_1008x1800.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>See ya! &#128075;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[This Week In React 281]]></title><description><![CDATA[Next.js, TanStack, Security, Redact, React Router, Waku, HTML React Parser | Redraw, Expo, Tabs, Screens, Pressable, Activity, Strict DOM, Rock, SWC, Argent Rozenite | TC39, R]]></description><link>https://substack.thisweekinreact.com/p/this-week-in-react-281</link><guid isPermaLink="false">https://substack.thisweekinreact.com/p/this-week-in-react-281</guid><dc:creator><![CDATA[Sébastien Lorber]]></dc:creator><pubDate>Sun, 17 May 2026 13:54:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!cCy_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2a0b151-fb31-428d-bb6e-b942833b2505_1200x628.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi everyone, <a href="https://x.com/sebastienlorber">Seb</a> and <a href="https://x.com/jaworek3211">Jan</a> here &#128075;!</p><p>This week, security is making headlines, as two major React frameworks have announced vulnerabilities and compromised npm packages!</p><p>William Candillon unveiled his secret project: a new set of 2D primitives for React Native and the web.</p><p>It&#8217;s also an exciting week full of interesting releases all around the JS ecosystem!</p><p>Let&#8217;s dive in!</p><p>As always, thanks for supporting us on your favorite platform:</p><ul><li><p>&#129419; <a href="https://slo.im/last/b">Bluesky</a></p></li><li><p>&#10006;&#65039; <a href="https://slo.im/last/x">X / Twitter</a></p></li><li><p>&#128084; <a href="https://slo.im/last/l">LinkedIn</a></p></li><li><p>&#128125; <a href="https://slo.im/last/r">Reddit</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TAyB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58879cf1-c6b6-486d-9468-446c5d869671_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TAyB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58879cf1-c6b6-486d-9468-446c5d869671_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!TAyB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58879cf1-c6b6-486d-9468-446c5d869671_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!TAyB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58879cf1-c6b6-486d-9468-446c5d869671_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!TAyB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58879cf1-c6b6-486d-9468-446c5d869671_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TAyB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58879cf1-c6b6-486d-9468-446c5d869671_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/58879cf1-c6b6-486d-9468-446c5d869671_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Addy Osmani&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Addy Osmani" title="Addy Osmani" srcset="https://substackcdn.com/image/fetch/$s_!TAyB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58879cf1-c6b6-486d-9468-446c5d869671_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!TAyB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58879cf1-c6b6-486d-9468-446c5d869671_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!TAyB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58879cf1-c6b6-486d-9468-446c5d869671_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!TAyB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58879cf1-c6b6-486d-9468-446c5d869671_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/addyosmani">Addy Osmani</a></strong><a href="https://twitter.com/addyosmani">Head of Chrome DX - Google</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Wqxl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Wqxl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Wqxl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!idfs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7477d82-f02d-4665-878b-9dc0c0f5720b_1024x600.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!idfs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7477d82-f02d-4665-878b-9dc0c0f5720b_1024x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!idfs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7477d82-f02d-4665-878b-9dc0c0f5720b_1024x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!idfs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7477d82-f02d-4665-878b-9dc0c0f5720b_1024x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!idfs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7477d82-f02d-4665-878b-9dc0c0f5720b_1024x600.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!idfs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7477d82-f02d-4665-878b-9dc0c0f5720b_1024x600.jpeg" width="1024" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c7477d82-f02d-4665-878b-9dc0c0f5720b_1024x600.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&#8239;AI That Gets React Native on Fire TV&#8239;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#8239;AI That Gets React Native on Fire TV&#8239;" title="&#8239;AI That Gets React Native on Fire TV&#8239;" srcset="https://substackcdn.com/image/fetch/$s_!idfs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7477d82-f02d-4665-878b-9dc0c0f5720b_1024x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!idfs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7477d82-f02d-4665-878b-9dc0c0f5720b_1024x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!idfs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7477d82-f02d-4665-878b-9dc0c0f5720b_1024x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!idfs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7477d82-f02d-4665-878b-9dc0c0f5720b_1024x600.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://fandf.co/42isydS">&#8239;AI That Gets React Native on Fire TV&#8239;</a></strong></p><p>We built an MCP server for Vega OS, our new React Native TV platform for Fire TV.&#8239;</p><p>Amazon Devices Builder Tools MCP gives your AI agent deep platform context, so instead of generic React Native suggestions, your agent understands how to scaffold correctly, integrate platform features, and follow Vega conventions.&#8239;</p><p>Explore building for TV without the friction of learning a new platform from scratch.&#8239;It&#8217;s&#8239;a step toward making our developer tooling as modern as the platform itself.&#8239;<a href="https://fandf.co/42isydS">One command to install.</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Wqxl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Wqxl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Wqxl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#9883;&#65039; React</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cCy_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2a0b151-fb31-428d-bb6e-b942833b2505_1200x628.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cCy_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2a0b151-fb31-428d-bb6e-b942833b2505_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!cCy_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2a0b151-fb31-428d-bb6e-b942833b2505_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!cCy_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2a0b151-fb31-428d-bb6e-b942833b2505_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!cCy_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2a0b151-fb31-428d-bb6e-b942833b2505_1200x628.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cCy_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2a0b151-fb31-428d-bb6e-b942833b2505_1200x628.jpeg" width="1200" height="628" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b2a0b151-fb31-428d-bb6e-b942833b2505_1200x628.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:628,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Next.js May 2026 security release&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Next.js May 2026 security release" title="Next.js May 2026 security release" srcset="https://substackcdn.com/image/fetch/$s_!cCy_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2a0b151-fb31-428d-bb6e-b942833b2505_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!cCy_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2a0b151-fb31-428d-bb6e-b942833b2505_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!cCy_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2a0b151-fb31-428d-bb6e-b942833b2505_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!cCy_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2a0b151-fb31-428d-bb6e-b942833b2505_1200x628.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://vercel.com/changelog/next-js-may-2026-security-release">Next.js May 2026 security release</a></strong></p><p>The Next.js team shipped a coordinated security release fixing 13 vulnerabilities across denial of service, middleware/proxy bypass, server-side request forgery, cache poisoning, XSS. Many vulnerabilities are quite impactful, cannot be blocked by cloud firewalls, and it&#8217;s recommended to update immediately to a patched version, v15.5.18 or v16.2.6. There&#8217;s also a Server Functions denial of service affecting React RSC packages, fixed in v19.2.6.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Wqxl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Wqxl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Wqxl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dueW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F826e86bb-696d-4866-bb4f-dcf9f4c16956_1000x563.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dueW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F826e86bb-696d-4866-bb4f-dcf9f4c16956_1000x563.jpeg 424w, https://substackcdn.com/image/fetch/$s_!dueW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F826e86bb-696d-4866-bb4f-dcf9f4c16956_1000x563.jpeg 848w, https://substackcdn.com/image/fetch/$s_!dueW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F826e86bb-696d-4866-bb4f-dcf9f4c16956_1000x563.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!dueW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F826e86bb-696d-4866-bb4f-dcf9f4c16956_1000x563.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dueW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F826e86bb-696d-4866-bb4f-dcf9f4c16956_1000x563.jpeg" width="1000" height="563" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/826e86bb-696d-4866-bb4f-dcf9f4c16956_1000x563.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:563,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;TanStack npm supply-chain compromise&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="TanStack npm supply-chain compromise" title="TanStack npm supply-chain compromise" srcset="https://substackcdn.com/image/fetch/$s_!dueW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F826e86bb-696d-4866-bb4f-dcf9f4c16956_1000x563.jpeg 424w, https://substackcdn.com/image/fetch/$s_!dueW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F826e86bb-696d-4866-bb4f-dcf9f4c16956_1000x563.jpeg 848w, https://substackcdn.com/image/fetch/$s_!dueW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F826e86bb-696d-4866-bb4f-dcf9f4c16956_1000x563.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!dueW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F826e86bb-696d-4866-bb4f-dcf9f4c16956_1000x563.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://tanstack.com/blog/npm-supply-chain-compromise-postmortem">TanStack npm supply-chain compromise</a></strong></p><p>On May 11, an attacker published malicious versions across 42 <code>@tanstack/*</code> npm packages related to TanStack Router. Although the attack was detected quickly, its payload is a <a href="https://www.wiz.io/blog/mini-shai-hulud-strikes-again-tanstack-more-npm-packages-compromised">Mini Shai-Hulud worm</a> that infected other maintainers, leading to other compromised packages across npm and pypi ecosystems, including packages from Mistral AI, OpenSearch, UiPath, and more.</p><p>The attack vector was sneaky. A GitHub Action with a <code>pull_request_target</code> trigger was used to inject poisoned content into a shared GitHub Action pnpm cache. Then, their release pipeline read from that poisoned cache, restoring dangerous files that executed during the release process. No maintainer was hacked in the process. The npm releases have the Trusted Publishing checkmark despite being compromised, showing that package provenance does not guarantee its content is safe.</p><p>Given the increasing number of supply chain vulnerabilities affecting npm packages, it&#8217;s good to highlight measures that maintainers and users can take to stay safe:</p><ul><li><p>&#128220; <a href="https://tanstack.com/blog/incident-followup">Hardening TanStack After the npm Compromise</a> - Gives a good overview of what maintainers can do to reduce the supply chain risk. Low-hanging fruits include avoiding the very dangerous <code>pull_request_target</code> trigger, and removing usage of shared caches in sensitive workflow (note: actions such as <code>setup-node</code> using a cache by default).</p></li><li><p>&#128279; <a href="https://github.com/lirantal/npm-security-best-practices">npm package manager Security Best Practices</a> - A canonical resource to protect yourself as an npm package consumer, giving pragmatic recommendations for each package manager. IMHO, combining the Socket Firewall with pnpm 11 is likely the best option right now.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Wqxl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Wqxl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Wqxl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://go.posthog.com/twir-may13">Product for Engineers - Great companies are built in hackathons</a></p></li><li><p>&#128220; <a href="https://tannerlinsley.com/posts/projecting-react">Projecting React</a> - Tanner Linsley wants React to be slimmer, tried Preact without success. He compares React API to database tables, and its implementation to a materialized view. With AI, he&#8217;s creating a different <code>@@tanstack/redact</code> projection, one optimized for TanStack Start, significantly smaller, that already powers <code>tanstack.com</code>. It&#8217;s a narrow experiment, not something he plans to market as an alternative to React. In the future, more devs will likely build optimized projections of the libraries they depend on.</p></li><li><p>&#128220; <a href="https://longho.dev/posts/rsc-server-functions-are-not-an-api-boundary/">RSC Server Functions Are Not An API Boundary</a> - Server Functions are not a replacement for stable, observable, versioned, shared APIs. The generated Server Function ID can change over time as you refactor code, leading to version skew problems on redeploys. Note: cloud providers have skew protection features to mitigate this.</p></li><li><p>&#128220; <a href="https://programmingarehard.com/2026/05/06/react-router-dialogs.html/">Untangling dialogs in React Router</a> - Everything you need to know to simplify your code by using a parent <code>&lt;Outlet&gt;</code> and making each dialog live on its own dedicated route. Covers data revalidation, flash session toasts, dialog exit animations and more.</p></li><li><p>&#128220; <a href="https://www.userinterface.wiki/animating-container-bounds">Animating Container Bounds</a> - How to smoothly animate an element&#8217;s width/height based on its inner content with Motion.</p></li><li><p>&#128220; <a href="https://certificates.dev/blog/security-in-react-applications">Security in React Applications</a> - Prevent XSS, store tokens securely, validate inputs, use CSFR and CSPs.</p></li><li><p>&#128220; <a href="https://evilmartians.com/chronicles/from-react-to-native-web-with-nanotags-a-migration-that-saved-100kb">From React to native web with nanotags: a migration that saved 100 KB</a> - For a mostly static marketing site using Astro templates, it can be more efficient to hydrate Custom Elements rather than React.</p></li><li><p>&#128220; <a href="https://tympanus.net/codrops/2026/05/13/exploring-the-html-in-canvas-proposal/">Exploring the HTML-in-Canvas Proposal</a> - It could simplify integration 2D UIs in 3D worlds, in particular for React Three Fiber creative devs.</p></li><li><p>&#128184; <a href="https://github.com/svar-widgets/react-gantt">SVAR React Gantt &#8211; Build interactive project timelines with an open-source React Gantt library.</a></p></li><li><p>&#128230; <a href="https://waku.gg/blog/waku-v1-beta">Waku 1.0 beta</a> - The minimal RSC framework first beta marks our shift toward production readiness. It recently added support for Vite 8, Rolldown, Node 26, React performance tracks, flexible routing, CSP, and more.</p></li><li><p>&#128230; <a href="https://newsletter.daishikato.com/p/jotai-v2-20-0-and-the-store-building-blocks">Jotai 2.20 - Improves performance in high-throughput scenarios, refactor store building blocks</a></p></li><li><p>&#128230; <a href="https://github.com/remarkablemark/html-react-parser/releases/tag/v6.1.0">HTML React Parser 6.1 - add CSP support with </a><code>trustedTypePolicy</code></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=mOncu3xCllw">Ankita Kulkarni - Stop freezing your React apps, use this Background Trick instead</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=5QM7XjbqDug">Shruti Kapoor - Five Minute Deep Dive: React Server Components</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=XSmpScSiPhw">Josef Bender - Protecting my TanStack Start Server Functions</a></p></li><li><p>&#127897;&#65039; <a href="https://syntax.fm/show/1004/tanhacked">Syntax.fm 1004 - TanHacked</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FCYr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f485a4d-3905-4217-b7b2-a93bdb4e55c9_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FCYr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f485a4d-3905-4217-b7b2-a93bdb4e55c9_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FCYr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f485a4d-3905-4217-b7b2-a93bdb4e55c9_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FCYr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f485a4d-3905-4217-b7b2-a93bdb4e55c9_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FCYr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f485a4d-3905-4217-b7b2-a93bdb4e55c9_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FCYr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f485a4d-3905-4217-b7b2-a93bdb4e55c9_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9f485a4d-3905-4217-b7b2-a93bdb4e55c9_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Theo Browne&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Theo Browne" title="Theo Browne" srcset="https://substackcdn.com/image/fetch/$s_!FCYr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f485a4d-3905-4217-b7b2-a93bdb4e55c9_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FCYr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f485a4d-3905-4217-b7b2-a93bdb4e55c9_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FCYr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f485a4d-3905-4217-b7b2-a93bdb4e55c9_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FCYr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f485a4d-3905-4217-b7b2-a93bdb4e55c9_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/theo">Theo Browne</a></strong><a href="https://twitter.com/theo">Founder of ping.gg - Youtuber</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Wqxl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Wqxl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Wqxl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!S78t!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37b5c2af-04bb-4755-ac8f-eeff2b9f0c3e_1200x630.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!S78t!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37b5c2af-04bb-4755-ac8f-eeff2b9f0c3e_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!S78t!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37b5c2af-04bb-4755-ac8f-eeff2b9f0c3e_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!S78t!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37b5c2af-04bb-4755-ac8f-eeff2b9f0c3e_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!S78t!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37b5c2af-04bb-4755-ac8f-eeff2b9f0c3e_1200x630.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!S78t!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37b5c2af-04bb-4755-ac8f-eeff2b9f0c3e_1200x630.jpeg" width="1200" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/37b5c2af-04bb-4755-ac8f-eeff2b9f0c3e_1200x630.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Tests are dead - Meticulous is here&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Tests are dead - Meticulous is here" title="Tests are dead - Meticulous is here" srcset="https://substackcdn.com/image/fetch/$s_!S78t!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37b5c2af-04bb-4755-ac8f-eeff2b9f0c3e_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!S78t!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37b5c2af-04bb-4755-ac8f-eeff2b9f0c3e_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!S78t!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37b5c2af-04bb-4755-ac8f-eeff2b9f0c3e_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!S78t!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37b5c2af-04bb-4755-ac8f-eeff2b9f0c3e_1200x630.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q2&amp;utm_content=2nd">Tests are dead - Meticulous is here</a></strong></p><p>Meticulous creates and maintains an exhaustive suite of e2e ui tests with <strong>zero</strong> developer effort.</p><p>This quote from the CTO of Traba sums the product up best: &#8220;Meticulous has fundamentally changed the way we approach frontend testing in our web applications, fully eliminating the need to write any frontend tests. The software gives us confidence that every change will be completely regression tested, allowing us to ship more quickly with significantly fewer bugs in our code. The platform is easy to use and reduces the barrier to entry for backend-focused devs to contribute to our frontend codebase.&#8221;</p><p>Meticulous is used by companies like Notion, Dropbox, Wiz, LaunchDarkly, and many others.</p><p>This <a href="https://www.meticulous.ai/blog/lessons-from-a-decade?utm_source=thisweekinreact&amp;utm_campaign=26q2&amp;utm_content=2nd">post</a> from our CTO sets out the context of why exhaustive testing can double engineering velocity.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Wqxl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Wqxl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Wqxl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128241; React-Native</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Mk02!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff86edce4-1ef0-4900-b502-1f5521fa4bcd_1365x768.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Mk02!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff86edce4-1ef0-4900-b502-1f5521fa4bcd_1365x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Mk02!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff86edce4-1ef0-4900-b502-1f5521fa4bcd_1365x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Mk02!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff86edce4-1ef0-4900-b502-1f5521fa4bcd_1365x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Mk02!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff86edce4-1ef0-4900-b502-1f5521fa4bcd_1365x768.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Mk02!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff86edce4-1ef0-4900-b502-1f5521fa4bcd_1365x768.jpeg" width="1365" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f86edce4-1ef0-4900-b502-1f5521fa4bcd_1365x768.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1365,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Redraw - 2D graphics primitives, powered by WebGPU&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Redraw - 2D graphics primitives, powered by WebGPU" title="Redraw - 2D graphics primitives, powered by WebGPU" srcset="https://substackcdn.com/image/fetch/$s_!Mk02!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff86edce4-1ef0-4900-b502-1f5521fa4bcd_1365x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Mk02!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff86edce4-1ef0-4900-b502-1f5521fa4bcd_1365x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Mk02!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff86edce4-1ef0-4900-b502-1f5521fa4bcd_1365x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Mk02!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff86edce4-1ef0-4900-b502-1f5521fa4bcd_1365x768.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://wcandillon.github.io/redraw/">Redraw - 2D graphics primitives, powered by WebGPU</a></strong></p><p>In an <a href="https://www.youtube.com/watch?v=nGLCmY7tdz4">amazing introduction video</a>, William Candillon presented what he&#8217;s been secretly working on for months: a new grade of 2D graphics primitives, powered by WebGPU. It&#8217;s still a technical preview and not open-source yet, but William is looking to make it source-available soon with a license that makes it sustainable.</p><p>It all started with &#8220;Can it be done in React Native?&#8221;, led to Skia on native, then WebGPU for unified 2D/3D composition across platforms. Redraw is the next step: bringing GPU-accelerated vector rendering with rich geometric information back to both native and web.</p><p>What it unlocks:</p><ul><li><p>Variable strokes - stroke width driven by path geometry (tangent, arc length)</p></li><li><p>Color along path - gradient callbacks mapped to arc length or distance</p></li><li><p>Vector feathering - soft shadows, blur, and glow without rasterization</p></li><li><p>Physically-based rendering - material effects computed directly on vector paths</p></li><li><p>Non-physically-based rendering - creative effects impossible with raster pipelines</p></li></ul><p>Built for composability:</p><ul><li><p>Compute shaders powered via <a href="https://typegpu.com/">TypeGPU</a> (optional dependency)</p></li><li><p>Zero-cost integration with Skia, Three.js, PixiJS, and WebGPU</p></li><li><p>Write shader logic in TypeScript, no WGSL required</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Wqxl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Wqxl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Wqxl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://sentry.io/cookbook/track-checkout-performance-react-native/?utm_source=thisweekinreact&amp;utm_medium=paid-community&amp;utm_campaign=&amp;utm_content=newsletter-rn-link-rn-checkout-learnmore">Sentry - A guide to finding and fixing slow checkout requests in React Native with distributed tracing and proactive alerts.</a></p></li><li><p>&#128038; <a href="https://x.com/aswincode/status/2051689159723458746">iOS 26 native tab icon</a> - A look into how to display dynamic tab icons, what constraints Expo Router had, and what was needed to overcome them.</p></li><li><p>&#128064; <a href="https://github.com/facebook/react-strict-dom/discussions/471#discussioncomment-16896278">Is React Strict DOM still active?</a> - The project has been quiet since its initial maintainers left Meta, but it&#8217;s still used internally for new projects. Meta product engineers and community members are stepping in.</p></li><li><p>&#128220; <a href="https://www.peterp.me/articles/react-native-pressable-faster-than-gesture-handler/">React Native Pressable faster than gesture handler</a> - A deep dive into why Gesture Handler adds additional cost compared to RN Pressable and Reanimated&#8217;s CSS transition API</p></li><li><p>&#128220; <a href="https://www.peterp.me/articles/hidden-cost-of-react-activity/">The Hidden Cost of React.Activity</a> - <code>&lt;Activity&gt;</code> is different from keeping a screen mounted but invisible. Heavy use of useEffect can badly impact performance when a screen becomes visible again.</p></li><li><p>&#128220; <a href="https://swmansion.com/blog/argent-agentic-toolkit-to-control-debug-and-profile-ios-applications/">Meet Argent: Agentic Toolkit to Control, Debug and Profile iOS applications</a> - Gives coding agents direct access to the iOS Simulator, helpful to inspect and debug RN iOS apps.</p></li><li><p>&#128220; <a href="https://shift.infinite.red/beyond-60-fps-building-a-real-time-can-bus-dashboard-with-nitro-modules-and-skia-d0f564f8d239">Beyond 60fps - Real-time CAN Bus dashboard with Nitro Modules and Skia</a> - A minor hobby-project issue turned into a deep look into how RN communication between native and JS works.</p></li><li><p>&#128220; <a href="https://medium.com/doctolib/expo-without-eas-scaling-the-react-native-developer-experience-of-an-app-with-90m-users-2694ea841805">Expo without EAS: Scaling the React Native developer experience of an app with 90M+ users</a> - Practical migration story from React Native to Expo at Doctolib, a popular healthcare app. It explains why EAS wasn&#8217;t a good fit for their setup, and how Callstack&#8217;s Rock modular toolkit helped them improve their build flow.</p></li><li><p>&#128230; <a href="https://expo.dev/changelog/sdk-56-beta">Expo SDK 56 Beta - Stable Expo UI, faster builds, improved startup performance on Android, RN 0.85</a> - As always, a very long changelog with many improvements, that we&#8217;ll cover in depth once stable.</p></li><li><p>&#128230; <a href="https://github.com/oblador/react-native-swc">React Native SWC - SWC-powered transformer &amp; minifier for Metro</a> - SWC recently added Flow supports, making it possible to fully replace Babel by SWC in RN&#8217;s transpilation pipeline. ~8x faster transform worker &amp; full real world bundling ~3x faster.</p></li><li><p>&#128230; <a href="https://blog.sentry.io/debugging-expo-react-native-sdk/">Sentry SDK 8.10+ - OTA update context, build failures, emergency launch detection, performance spans for prefetching, image/asset loading instrumentation</a></p></li><li><p>&#128230; <a href="https://github.com/mobile-ink/mobile-ink">Mobile Ink - iOS Skia/Metal drawing and continuous canvas primitives</a></p></li><li><p>&#128230; <a href="https://github.com/margelo/react-native-nitro-fetch/releases/tag/v1.2.0">Nitro Fetch 1.2 - Native-side prefetching registration, web stub</a></p></li><li><p>&#128230; <a href="https://github.com/JoaoPauloCMarra/react-native-nitro-markdown/releases/tag/v0.6.0">Nitro Markdown 0.6 - RaTex math renderer, native release hardening, refreshed example benchmarks/docs</a></p></li><li><p>&#128230; <a href="https://github.com/callstackincubator/rock/releases/tag/v0.13.0">Rock 0.13 - Experimental support for CNG &amp; Expo Config Plugins, validate Android 16KB ELF alignment</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion/react-native-screens/releases/tag/4.25.0">RN Screens 4.25 - Drops the Legacy Architecture, Tabs API in RC, many Tabs user-facing improvements</a></p></li><li><p>&#128230; <a href="https://github.com/callstackincubator/rozenite/releases/tag/v1.9.0">Rozenite 1.9 - storage-plugin replaces mmkv-plugin, new react-hook-form plugin</a></p></li><li><p>&#127897;&#65039; <a href="https://infinite.red/react-native-radio/rnr-352-storybook-with-daniel-williams">RNR 352 - Storybook with Daniel Williams</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Wqxl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Wqxl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Wqxl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128256; Other</strong></h2><ul><li><p>&#128064; <a href="https://github.com/tc39/agendas/blob/main/2026/05.md">TC39 - Agenda for the 114th meeting - May 19-21</a> - A packed agenda, many proposals could progress next week, including Iterators, Explicit Resource Management, and more.</p></li><li><p>&#128230; <a href="https://voidzero.dev/posts/announcing-rolldown-1-0">Rolldown 1.0</a> - The high-performance Rust-based bundler is now stable and respects semantic versioning. It&#8217;s already powering Vite 8 as a 10-30x faster alternative to Rollup. Bundling in dev is on the roadmap to overcome the performance limitation of serving individual ESM files.</p></li><li><p>&#128230; <a href="https://nodejs.org/en/blog/release/v26.1.0">Node.js 26.1 - Experimental </a><code>node:ffi</code><a href="https://nodejs.org/en/blog/release/v26.1.0"> module</a> - A promising Foreign Function Interface module for loading dynamic libraries and integrating with native languages.</p></li><li><p>&#128230; <a href="https://github.com/jestjs/jest/issues/9430#issuecomment-4400281169">Jest 30.4 - Support for </a><code>require(esm)</code> - Jest&#8217;s ESM support has been fully rewritten. It still requires the Node.js <code>--experimental-vm-modules</code> flag, but the Node.js team is working on stabilizing that feature.</p></li><li><p>&#128230; <a href="https://bun.com/blog/bun-v1.3.14">Bun 1.3.14 - Built-in image processing, global install virtual store, HTTP improvements</a> - Speaking of Bun, a Rust port was previously disclosed and framed as an experiment. It turns out Bun may actually <a href="https://x.com/jarredsumner/status/2053808438644445230">migrate from Zig to Rust in the near future</a>.</p></li><li><p>&#128230; <a href="https://github.com/npm/cli/releases/tag/v11.14.0">npm 11.4 - allow-directory, allow-file, allow-remote</a> - New opt-in npm CLI security features, similar to pnpm&#8217;s <code>blockExoticSubdeps</code>.</p></li><li><p>&#128230; <a href="https://github.com/microsoft/playwright/releases/tag/v1.60.0">Playwright 1.60 - Drop API, Aria snapshots, HAR recording</a> - You can now simulate drag-and-drop, and snapshot the accessibility tree.</p></li><li><p>&#128230; <a href="https://pnpm.io/blog/releases/11.1">pnpm 11.1 - Named registries, new useful commands</a></p></li><li><p>&#128230; <a href="https://tailwindcss.com/blog/tailwindcss-v4-3">Tailwind CSS 4.3 - Scrollbars, new colors, and more</a></p></li><li><p>&#128230; <a href="https://astro.build/blog/astro-630/">Astro 6.3 - Experimental advanced routing, first-class Hono support</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Wqxl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Wqxl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Wqxl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Wqxl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55fa2687-ca83-49d1-abdc-029d5b9bc8c7_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#129325; Fun</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GNVE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6243951-0277-4107-87bd-c0f60b802742_1000x1850.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GNVE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6243951-0277-4107-87bd-c0f60b802742_1000x1850.jpeg 424w, https://substackcdn.com/image/fetch/$s_!GNVE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6243951-0277-4107-87bd-c0f60b802742_1000x1850.jpeg 848w, https://substackcdn.com/image/fetch/$s_!GNVE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6243951-0277-4107-87bd-c0f60b802742_1000x1850.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!GNVE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6243951-0277-4107-87bd-c0f60b802742_1000x1850.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GNVE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6243951-0277-4107-87bd-c0f60b802742_1000x1850.jpeg" width="1000" height="1850" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d6243951-0277-4107-87bd-c0f60b802742_1000x1850.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1850,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!GNVE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6243951-0277-4107-87bd-c0f60b802742_1000x1850.jpeg 424w, https://substackcdn.com/image/fetch/$s_!GNVE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6243951-0277-4107-87bd-c0f60b802742_1000x1850.jpeg 848w, https://substackcdn.com/image/fetch/$s_!GNVE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6243951-0277-4107-87bd-c0f60b802742_1000x1850.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!GNVE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6243951-0277-4107-87bd-c0f60b802742_1000x1850.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>See ya! &#128075;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[This Week In React 280]]></title><description><![CDATA[TanStack, Remotion, React Router, Remix, Trees, Pracht, shadcn | Expo Go, Ease, Screen Transitions, LegendList, JSI, Gradle, Radon, Baguette, Rozenite, AI | Node.js, Datatype, tsz, Astro]]></description><link>https://substack.thisweekinreact.com/p/this-week-in-react-280</link><guid isPermaLink="false">https://substack.thisweekinreact.com/p/this-week-in-react-280</guid><dc:creator><![CDATA[Sébastien Lorber]]></dc:creator><pubDate>Sat, 09 May 2026 21:21:03 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/5e2ff600-21b9-46da-ae2c-6e2006ab5b0a_3000x1400.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi everyone, <a href="https://x.com/sebastienlorber">Seb</a> and <a href="https://x.com/jaworek3211">Jan</a> here &#128075;!</p><p>It&#8217;s another quiet week in React, but there&#8217;s still plenty of interesting links to check out about the TanStack and powerful new Remotion capabilities.</p><p>React Native had a busier week, with a diverse mix of releases, great articles, and ecosystem updates.</p><p>Let&#8217;s dive in!</p><p>As always, thanks for supporting us on your favorite platform:</p><ul><li><p>&#129419; <a href="https://slo.im/last/b">Bluesky</a></p></li><li><p>&#10006;&#65039; <a href="https://slo.im/last/x">X / Twitter</a></p></li><li><p>&#128084; <a href="https://slo.im/last/l">LinkedIn</a></p></li><li><p>&#128125; <a href="https://slo.im/last/r">Reddit</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_RLn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42728c3d-d1c9-4eb3-87c6-b21e5762e274_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_RLn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42728c3d-d1c9-4eb3-87c6-b21e5762e274_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!_RLn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42728c3d-d1c9-4eb3-87c6-b21e5762e274_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!_RLn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42728c3d-d1c9-4eb3-87c6-b21e5762e274_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!_RLn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42728c3d-d1c9-4eb3-87c6-b21e5762e274_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_RLn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42728c3d-d1c9-4eb3-87c6-b21e5762e274_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/42728c3d-d1c9-4eb3-87c6-b21e5762e274_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Dominik Dorfmeister&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Dominik Dorfmeister" title="Dominik Dorfmeister" srcset="https://substackcdn.com/image/fetch/$s_!_RLn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42728c3d-d1c9-4eb3-87c6-b21e5762e274_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!_RLn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42728c3d-d1c9-4eb3-87c6-b21e5762e274_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!_RLn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42728c3d-d1c9-4eb3-87c6-b21e5762e274_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!_RLn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42728c3d-d1c9-4eb3-87c6-b21e5762e274_400x400.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/TkDodo">Dominik Dorfmeister</a></strong><a href="https://twitter.com/TkDodo">Web Developer - React-Query maintainer</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xpGL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xpGL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xpGL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xpGL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HOIs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb0deff0-4f0e-4b35-a0c8-e48f6498d982_1200x628.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HOIs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb0deff0-4f0e-4b35-a0c8-e48f6498d982_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!HOIs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb0deff0-4f0e-4b35-a0c8-e48f6498d982_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!HOIs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb0deff0-4f0e-4b35-a0c8-e48f6498d982_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!HOIs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb0deff0-4f0e-4b35-a0c8-e48f6498d982_1200x628.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HOIs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb0deff0-4f0e-4b35-a0c8-e48f6498d982_1200x628.jpeg" width="1200" height="628" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db0deff0-4f0e-4b35-a0c8-e48f6498d982_1200x628.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:628,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Still writing tests manually?&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Still writing tests manually?" title="Still writing tests manually?" srcset="https://substackcdn.com/image/fetch/$s_!HOIs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb0deff0-4f0e-4b35-a0c8-e48f6498d982_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!HOIs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb0deff0-4f0e-4b35-a0c8-e48f6498d982_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!HOIs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb0deff0-4f0e-4b35-a0c8-e48f6498d982_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!HOIs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb0deff0-4f0e-4b35-a0c8-e48f6498d982_1200x628.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q2&amp;utm_content=1st">Still writing tests manually?</a></strong></p><p>Notion, Dropbox, Wiz, and LaunchDarkly have found a new testing paradigm - and they can&#8217;t imagine working without it. Built by <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q1&amp;utm_content=1st">ex-Palantir engineers</a>, Meticulous autonomously creates a continuously evolving suite of E2E UI tests that delivers <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q1&amp;utm_content=1st">near-exhaustive coverage</a> with <em>zero developer effort</em> - impossible to deliver by any other means.</p><p>It works like magic in the background:</p><ul><li><p>Near-exhaustive coverage on every test run</p></li><li><p>No test creation</p></li><li><p><strong>No maintenance (seriously)</strong></p></li><li><p>Zero flakes (built on a deterministic browser)</p></li></ul><p><strong>&#129320;</strong> Curious? <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q1&amp;utm_content=1st">Book in a time to learn more</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xpGL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xpGL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xpGL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xpGL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#9883;&#65039; React</strong></h2><ul><li><p>&#128184; <a href="https://planetscale.com/">Ship faster with PlanetScale - Blazing fast managed Postgres and MySQL, built for applications of any scale</a></p></li><li><p>&#9888;&#65039; <a href="https://socket.dev/blog/tanstack-brandsquat-compromise">Malicious npm Package Brand-Squats TanStack to Exfiltrate Environment Variables</a> - Make sure not to install the <code>tanstack</code> npm package because it&#8217;s not owned by the TanStack organization.</p></li><li><p>&#128220; <a href="https://tanstack.com/blog/who-owns-the-tree">Who Owns the Tree? RSC as a Protocol, Not an Architecture</a> - The traditional RSC architecture &#8211; as found in Next.js &#8211; is server-driven. TanStack Start frames RSC as a protocol, enabling both server-owned and client-owned composition models.</p></li><li><p>&#128220; <a href="https://frontendmasters.com/blog/introducing-tanstack-form/">Introducing TanStack Form</a> - A pragmatic intro to this strongly typed and flexible form library.</p></li><li><p>&#128220; <a href="https://dev.to/lazarv/time-to-yield-20m8">Time to Yield - An SSG benchmark across five React frameworks</a> - The author&#8217;s solution uses generators and yields the static routes to render, making it possible to render the first page sooner.</p></li><li><p>&#128220; <a href="https://kittygiraudel.com/2026/05/02/nextjs-link-as-a-button/">Next.js Link as a Button</a> - Still requires <code>&lt;Link legacyBehavior&gt;</code> for now, but apparently a solution based on Fragment Refs is coming.</p></li><li><p>&#128220; <a href="https://brookslybrand.com/posts/react-miami-2026.html">React Miami 2026</a> - Conf feedback by Brooks Lybrand. Also explains that interest in React features is at an all-time low, and clears up the confusion surrounding React Router and Remix.</p></li><li><p>&#128184; <a href="https://certificates.dev/react?friend=TWIR">React Certification - Ready for a Senior role? Take the assessment: 135 minutes, 40 MCQs, and 2 Coding challenges. Get Senior Certified!</a></p></li><li><p>&#128230; <a href="https://github.com/remotion-dev/remotion/releases/v4.0.455">Remotion 4.0.455 - New </a><code>&lt;HtmlInCanvas&gt;</code><a href="https://github.com/remotion-dev/remotion/releases/v4.0.455"> component</a> - This component unlocks new impressive capabilities for the React programmatic video framework, letting you interleave regular HTML with fancy canvas-based effects using shaders (<a href="https://github.com/remotion-dev/html-in-canvas">demos</a>).</p></li><li><p>&#128230; <a href="https://remix.run/blog/remix-3-beta-preview">Remix 3 Beta Preview</a> - The new version of Remix is now in beta preview. It&#8217;s not based on React nor React Router, but still relies on JSX. It uses a different component model where you explicitly trigger re-renders, Frames that you can reload, and doesn&#8217;t bundle your app.</p></li><li><p>&#128230; <a href="https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7150">React Router 7.15 - Stabilizing APIs to prepare for React Router v8, Route matching optimizations</a></p></li><li><p>&#128230; <a href="https://trees.software/">Trees - File tree UI library, performant, flexible, with React or vanilla JS</a></p></li><li><p>&#128230; <a href="https://pracht.resynapse.dev/">Pracht - Preact framework with explicit routing, per-route render modes, cloud adapters</a></p></li><li><p>&#128230; <a href="https://ui.shadcn.com/docs/changelog/2026-05-package-imports-target-aliases">shadcn CLI 4.7 - Package Imports and Target Aliases</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=PX3QlADinIE">Jack Herrington - 5 Ways To SSR/RSC on TanStack Start</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=KpoEflQ3u1A">Josef Bender - This </a><code>&lt;Link preload&gt;</code><a href="https://www.youtube.com/watch?v=KpoEflQ3u1A"> Trick Makes TanStack Start Blazing Fast!</a></p></li><li><p>&#127897;&#65039; <a href="https://podrocket.logrocket.com/nextjs-works-everywhere-now-jimmy-lai-tells-us-how">PodRocket - Next.js works everywhere now, Jimmy Lai tells us how</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WBww!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8443919-a88e-49d7-ba7b-f78f2ea7fedd_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WBww!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8443919-a88e-49d7-ba7b-f78f2ea7fedd_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!WBww!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8443919-a88e-49d7-ba7b-f78f2ea7fedd_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!WBww!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8443919-a88e-49d7-ba7b-f78f2ea7fedd_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!WBww!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8443919-a88e-49d7-ba7b-f78f2ea7fedd_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WBww!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8443919-a88e-49d7-ba7b-f78f2ea7fedd_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f8443919-a88e-49d7-ba7b-f78f2ea7fedd_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Addy Osmani&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Addy Osmani" title="Addy Osmani" srcset="https://substackcdn.com/image/fetch/$s_!WBww!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8443919-a88e-49d7-ba7b-f78f2ea7fedd_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!WBww!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8443919-a88e-49d7-ba7b-f78f2ea7fedd_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!WBww!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8443919-a88e-49d7-ba7b-f78f2ea7fedd_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!WBww!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8443919-a88e-49d7-ba7b-f78f2ea7fedd_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/addyosmani">Addy Osmani</a></strong><a href="https://twitter.com/addyosmani">Head of Chrome DX - Google</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xpGL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xpGL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xpGL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xpGL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!D67F!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5bfb47c-d167-4c94-ad44-d611c2736874_1200x600.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!D67F!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5bfb47c-d167-4c94-ad44-d611c2736874_1200x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!D67F!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5bfb47c-d167-4c94-ad44-d611c2736874_1200x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!D67F!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5bfb47c-d167-4c94-ad44-d611c2736874_1200x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!D67F!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5bfb47c-d167-4c94-ad44-d611c2736874_1200x600.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!D67F!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5bfb47c-d167-4c94-ad44-d611c2736874_1200x600.jpeg" width="1200" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d5bfb47c-d167-4c94-ad44-d611c2736874_1200x600.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Lingui - Modern, Lightweight i18n for React&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Lingui - Modern, Lightweight i18n for React" title="Lingui - Modern, Lightweight i18n for React" srcset="https://substackcdn.com/image/fetch/$s_!D67F!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5bfb47c-d167-4c94-ad44-d611c2736874_1200x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!D67F!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5bfb47c-d167-4c94-ad44-d611c2736874_1200x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!D67F!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5bfb47c-d167-4c94-ad44-d611c2736874_1200x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!D67F!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5bfb47c-d167-4c94-ad44-d611c2736874_1200x600.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://crowdin.info/8YBpFxk">Lingui - Modern, Lightweight i18n for React</a></strong></p><p>Ship multilingual apps faster with Lingui - a lightweight i18n toolkit for React and React Native, with macros, message extraction, and production-ready localization.</p><p>It fits naturally into modern stacks like React, Vite, TypeScript, TanStack Start, Remix, Astro, and Svelte, so teams can adopt it without changing their workflow. It also keeps messages clear for translators and works well with AI-assisted localization workflows.</p><p>Lingui v6 modernizes the stack with ESM-only distribution, a smaller installation size (62 MB &#8594; 35 MB, dependencies 146 &#8594; 104), stronger TypeScript support, and configurable JSX placeholder names in the <code>&lt;Trans&gt;</code> component.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xpGL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xpGL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xpGL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xpGL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128241; React-Native</strong></h2><ul><li><p>&#128184; <a href="https://go.posthog.com/twir-may6">PostHog - The 7 best session replay tools for mobile apps</a></p></li><li><p>&#128064; <a href="https://expo.dev/changelog/expo-go-and-app-store-may-2026">Expo Go and the App Store in May 2026</a> - Update on the state of Expo Go support for SDK 55 being blocked by AppStore approval.</p></li><li><p>&#128064; <a href="https://expo.dev/changelog/gradle-cache">Gradle cache for Android builds</a> - EAS builds now support Gradle caching with ~50% reduction in build times.</p></li><li><p>&#128220; <a href="https://expo.dev/blog/the-real-cost-of-react-native-animations-benchmarking-every-approach">The real cost of React Native animations: benchmarking every approach</a> - A look into how popular animation solutions run under the hood, how they perform on real devices, and why they differ in per-frame cost.</p></li><li><p>&#128220; <a href="https://www.callstack.com/blog/react-native-production-lessons-from-react-universe-meetup-x-zalando">React Native production lessons from React Universe Meetup x Zalando</a> - Four practical patterns from Zalando: measuring brownfield migrations with Meaningful Render, stabilizing video feeds, using RN to bridge web API gaps, and handling on-device LLM hardware variance.</p></li><li><p>&#128220; <a href="https://blog.margelo.com/make-jsi-run-faster-2">Making JSI Faster with more Efficient Data Structures</a> - Use proper tools for a given task as wrong data representation can make your code 30x slower. The article features concrete benchmarks across array shapes and string construction.</p></li><li><p>&#128220; <a href="https://www.peterp.me/articles/how-react-native-ease-runs-animations-with-no-javascript-loop/">How react-native-ease runs animations with no JavaScript loop</a> - Analysis how the library takes a different approach than most RN animation libraries to avoid being tied to the JS thread.</p></li><li><p>&#128220; <a href="https://reactnavigation.org/blog/2026/04/27/building-custom-screen-transitions/">Building custom transitions with react-native-screen-transitions</a> - How to make custom screen transitions to make your app experience stand out.</p></li><li><p>&#128220; <a href="https://blog.manikagnish.com/extending-expo-ui-with-swiftui-building-a-native-swipeactions-modifier">Extending Expo UI with SwiftUI: Building a Native swipeActions Modifier</a> - Walkthrough of building a local Expo module to add SwiftUI&#8217;s swipeActions modifier to @expo/ui.</p></li><li><p>&#128220; <a href="https://www.peterp.me/articles/legend-list-engine-simulator/">What&#8217;s actually happening inside Legend List</a> - Explains what formula does Legend List use to display items optimally and what role optimisation props play in it.</p></li><li><p>&#128220; <a href="https://swmansion.com/blog/expo-to-meta-quest-ai-powered-vr-development/">Expo to Meta Quest - AI-powered VR development</a> - A migration skill that, combined with Meta&#8217;s Horizon Debug Bridge MCP, enables an agentic dev loop for VR. Covers Expo workflow setup, resizable VR windows, and performance optimization.</p></li><li><p>&#128230; <a href="https://github.com/software-mansion/radon-ide/releases/tag/v1.17.0">Radon IDE 1.17 - Native View Hierarchy Inspector on iOS, Android Network Inspector now captures native traffic, RN 0.85 support, and clipboard sync between computer and device</a></p></li><li><p>&#128230; <a href="https://github.com/tddworks/baguette">Baguette - Headless iOS Simulator manager/farm + host-side input injection for iOS 26 &#8212; taps, swipes, multi-finger gestures, and 60 fps streaming</a></p></li><li><p>&#128230; <a href="https://github.com/callstackincubator/rozenite/releases/tag/v1.8.0">Rozenite 1.8 - Nitro traffic support in the network activity plugin, SQLite agent tools, and a Rozenite for Agents SDK</a></p></li><li><p>&#128230; <a href="https://github.com/callstackincubator/agent-cdp">Agent CDP - CLI for Chrome DevTools Protocol, debug targets, console, traces, heap snapshots, profiling for Chrome, Node.js, and React Native</a> - Part of the agent-tools family from Callstack.</p></li><li><p>&#128230; <a href="https://github.com/callstackincubator/agent-device/releases/tag/v0.14.0">Agent Device 0.14 - Android snapshot helper, skillgym tests, and replaces bulky skills with versioned CLI help</a></p></li><li><p>&#128230; <a href="https://github.com/infinitered/reactotron/releases/tag/reactotron-core-server%403.3.0">Reactotron 3.3 - Adds an MCP server for Claude Code integration</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion/react-native-enriched/releases/tag/v0.7.0">RN Enriched 0.7 - EnrichedText component for HTML rendering and experimental web support</a> - Now a complete rich-text solution where inputs and display text use the same format.</p></li><li><p>&#128230; <a href="https://github.com/jingjing2222/react-native-nitro-geolocation">Nitro Geolocation - Nitro-powered geolocation with a compat API for </a><code>@react-native-community/geolocation</code> - Includes a Rozenite DevTools plugin for mocking locations and an Agent Skills migration playbook.</p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=1o0pEjYGUWM">Beto - How React Native Builds Actually Work (APK, AAB, IPA, APP)</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=IzrhMN94gEE">notJust.dev - Let&#8217;s build a Podcast app for Fire TV using Vega OS &amp; React Native</a></p></li><li><p>&#127897;&#65039; <a href="https://creators.spotify.com/pod/profile/dan-neciu/episodes/React-Native-at-Scale-with-Kadi-Kraman--Software-Developer-at-Expo--Mobile-Development--EAS--OTA-Updates-e3iqbdu">React Native at Scale with Kadi Kraman | Expo, Mobile Development, EAS, OTA Updates</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xpGL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xpGL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xpGL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xpGL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128256; Other</strong></h2><ul><li><p>&#128220; <a href="https://piccalil.li/blog/the-end-of-responsive-images/">The end of responsive images</a> - You don&#8217;t need to define explicit breakpoints anymore. With <code>&lt;img loading=&#8221;lazy&#8221; sizes=&#8221;auto&#8221;&gt;</code>, all modern browsers will figure out the appropriate image size based on <code>srcset</code>.</p></li><li><p>&#128220; <a href="https://ishadeed.com/article/range-syntax/">Media Queries Range Syntax</a> - CSS range queries such as <code>@media (300px &lt;= width &lt;= 500px)</code> are widely supported by all browsers.</p></li><li><p>&#128220; <a href="https://adventures.nodeland.dev/archive/why-trusted-publishing-can-t-save-us/">Why &#8220;Trusted Publishing&#8221; Can&#8217;t Save Us from Social Engineering</a> - npm Trusted Publishing and provenance features do not protect against attackers publishing on behalf of a compromised maintainer.</p></li><li><p>&#128220; <a href="https://dev.to/aralroca/the-on2-bug-that-looked-like-clean-code-3556">The O(n^2) Bug That Looked Like Clean Code</a> - Highlights several JS patterns that seem fine at first glance but lead to quadratic complexity.</p></li><li><p>&#128230; <a href="https://nodejs.org/en/blog/release/v26.0.0">Node.js 26.0</a> - This major release unlocks exciting new APIs such as <code>Temporal</code> and <code>Map.getOrInsert()</code>. It also upgrades the HTTP client. Let&#8217;s take the opportunity to remind that <a href="https://nodejs.org/en/blog/announcements/evolving-the-nodejs-release-schedule">the Node.js release schedule is evolving</a> and dropping the even/odd distinction after this release: v27 will become LTS.</p></li><li><p>&#128230; <a href="https://franktisellano.github.io/datatype/">Datatype - Variable font that turns text into charts</a> - A really cool idea, relying on font ligatures!. This might be an efficient way to show little inline charts in grid/list views.</p></li><li><p>&#128230; <a href="https://tsz.dev/">tsz - TypeScript compiler in Rust</a> - WIP but nearly complete, faster than tsgo, drop-in replacement.</p></li><li><p>&#128230; <a href="https://astro.build/blog/astro-620/">Astro 6.2 - SVG optimizer, experimental Logger and </a><code>getFontFileURL()</code><a href="https://astro.build/blog/astro-620/"> APIs</a> - Also a sneak peek of Astro v7 now in alpha, including Vite 8 and stable Rust compiler.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xpGL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xpGL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xpGL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xpGL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!xpGL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff653df31-47f7-49ec-a60d-6d5fd32ed1a3_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#129325; Fun</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3cEX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0facf4dc-e5c6-4bf1-b3cd-2e854796340b_1000x1470.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3cEX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0facf4dc-e5c6-4bf1-b3cd-2e854796340b_1000x1470.jpeg 424w, https://substackcdn.com/image/fetch/$s_!3cEX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0facf4dc-e5c6-4bf1-b3cd-2e854796340b_1000x1470.jpeg 848w, https://substackcdn.com/image/fetch/$s_!3cEX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0facf4dc-e5c6-4bf1-b3cd-2e854796340b_1000x1470.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!3cEX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0facf4dc-e5c6-4bf1-b3cd-2e854796340b_1000x1470.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3cEX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0facf4dc-e5c6-4bf1-b3cd-2e854796340b_1000x1470.jpeg" width="1000" height="1470" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0facf4dc-e5c6-4bf1-b3cd-2e854796340b_1000x1470.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1470,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!3cEX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0facf4dc-e5c6-4bf1-b3cd-2e854796340b_1000x1470.jpeg 424w, https://substackcdn.com/image/fetch/$s_!3cEX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0facf4dc-e5c6-4bf1-b3cd-2e854796340b_1000x1470.jpeg 848w, https://substackcdn.com/image/fetch/$s_!3cEX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0facf4dc-e5c6-4bf1-b3cd-2e854796340b_1000x1470.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!3cEX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0facf4dc-e5c6-4bf1-b3cd-2e854796340b_1000x1470.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QfOs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4add51-3208-4876-8b98-5ef18f531619_1000x754.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QfOs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4add51-3208-4876-8b98-5ef18f531619_1000x754.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QfOs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4add51-3208-4876-8b98-5ef18f531619_1000x754.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QfOs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4add51-3208-4876-8b98-5ef18f531619_1000x754.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QfOs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4add51-3208-4876-8b98-5ef18f531619_1000x754.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QfOs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4add51-3208-4876-8b98-5ef18f531619_1000x754.jpeg" width="1000" height="754" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ed4add51-3208-4876-8b98-5ef18f531619_1000x754.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:754,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!QfOs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4add51-3208-4876-8b98-5ef18f531619_1000x754.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QfOs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4add51-3208-4876-8b98-5ef18f531619_1000x754.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QfOs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4add51-3208-4876-8b98-5ef18f531619_1000x754.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QfOs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed4add51-3208-4876-8b98-5ef18f531619_1000x754.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>See ya! &#128075;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[This Week In React 279]]></title><description><![CDATA[Compiler, TSRX, StyleX, XState, Hook Form, TanStack, shadcn, Chakra, Inertia, Mantine | SPM, SimCam, Enriched Markdown, Agent Device, Navigation SDK, JSI, Paste Input, Crypto, MLX, Jail Monkey | pnpm,]]></description><link>https://substack.thisweekinreact.com/p/this-week-in-react-279</link><guid isPermaLink="false">https://substack.thisweekinreact.com/p/this-week-in-react-279</guid><dc:creator><![CDATA[Sébastien Lorber]]></dc:creator><pubDate>Sat, 02 May 2026 22:19:44 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/ce655e6c-1b49-4243-ae36-72afc01ee091_3000x1400.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi everyone, <strong>Konrad and Kacper from <a href="https://swmansion.com/?utm_source=thisweekinreact">Software Mansion</a></strong> here! &#128075;</p><p>A quiet week &#8212; no big headlines &#8212; but still a couple of solid articles and releases in the React ecosystem.</p><p>On the React side, the WIP React Compiler in Rust is being tested at Meta. We also have a 18-month retrospective on the React Compiler, a deep dive into how React streams UI, and a step-by-step guide for migrating from Radix UI to Base UI. There&#8217;s also a fresh batch of releases, including React Hook Form, Chakra UI, Mantine 9.1, and TanStack Query.</p><p>On the React Native front, an RFC has landed proposing Swift Package Manager support to replace CocoaPods, and React Navigation v8 will gain a <code>retain</code> API to keep screens mounted after going back. Don&#8217;t miss the blog on making pure JSI code faster.</p><p>Let&#8217;s dive in!</p><p>As always, thanks for supporting us on your favorite platform:</p><ul><li><p>&#129419; <a href="https://slo.im/last/b">Bluesky</a></p></li><li><p>&#10006;&#65039; <a href="https://slo.im/last/x">X / Twitter</a></p></li><li><p>&#128084; <a href="https://slo.im/last/l">LinkedIn</a></p></li><li><p>&#128125; <a href="https://slo.im/last/r">Reddit</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Hco5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6673155e-00d1-4499-8c76-1cbd0f650be7_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Hco5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6673155e-00d1-4499-8c76-1cbd0f650be7_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Hco5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6673155e-00d1-4499-8c76-1cbd0f650be7_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Hco5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6673155e-00d1-4499-8c76-1cbd0f650be7_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Hco5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6673155e-00d1-4499-8c76-1cbd0f650be7_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Hco5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6673155e-00d1-4499-8c76-1cbd0f650be7_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6673155e-00d1-4499-8c76-1cbd0f650be7_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Addy Osmani&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Addy Osmani" title="Addy Osmani" srcset="https://substackcdn.com/image/fetch/$s_!Hco5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6673155e-00d1-4499-8c76-1cbd0f650be7_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Hco5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6673155e-00d1-4499-8c76-1cbd0f650be7_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Hco5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6673155e-00d1-4499-8c76-1cbd0f650be7_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Hco5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6673155e-00d1-4499-8c76-1cbd0f650be7_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/addyosmani">Addy Osmani</a></strong><a href="https://twitter.com/addyosmani">Head of Chrome DX - Google</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Krmv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Krmv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Krmv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/35712f28-4b25-4082-a9e3-5680e959a179_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Krmv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Cqep!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb52f77ef-56db-4ec2-9577-e528e13366ef_1200x628.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Cqep!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb52f77ef-56db-4ec2-9577-e528e13366ef_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Cqep!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb52f77ef-56db-4ec2-9577-e528e13366ef_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Cqep!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb52f77ef-56db-4ec2-9577-e528e13366ef_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Cqep!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb52f77ef-56db-4ec2-9577-e528e13366ef_1200x628.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Cqep!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb52f77ef-56db-4ec2-9577-e528e13366ef_1200x628.jpeg" width="1200" height="628" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b52f77ef-56db-4ec2-9577-e528e13366ef_1200x628.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:628,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Still writing tests manually?&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Still writing tests manually?" title="Still writing tests manually?" srcset="https://substackcdn.com/image/fetch/$s_!Cqep!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb52f77ef-56db-4ec2-9577-e528e13366ef_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Cqep!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb52f77ef-56db-4ec2-9577-e528e13366ef_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Cqep!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb52f77ef-56db-4ec2-9577-e528e13366ef_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Cqep!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb52f77ef-56db-4ec2-9577-e528e13366ef_1200x628.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q2&amp;utm_content=1st">Still writing tests manually?</a></strong></p><p>Notion, Dropbox, Wiz, and LaunchDarkly have found a new testing paradigm - and they can&#8217;t imagine working without it. Built by <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q1&amp;utm_content=1st">ex-Palantir engineers</a>, Meticulous autonomously creates a continuously evolving suite of E2E UI tests that delivers <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q1&amp;utm_content=1st">near-exhaustive coverage</a> with <em>zero developer effort</em> - impossible to deliver by any other means.</p><p>It works like magic in the background:</p><ul><li><p>Near-exhaustive coverage on every test run</p></li><li><p>No test creation</p></li><li><p><strong>No maintenance (seriously)</strong></p></li><li><p>Zero flakes (built on a deterministic browser)</p></li></ul><p><strong>&#129320;</strong> Curious? <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q1&amp;utm_content=1st">Book in a time to learn more</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Krmv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Krmv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Krmv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/35712f28-4b25-4082-a9e3-5680e959a179_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Krmv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#9883;&#65039; React</strong></h2><ul><li><p>&#128184; <a href="https://crowdin.info/V49bfMh">Crowdin - AI localization platform that automates your React app translations from code to deployment.</a></p></li><li><p>&#128064; <a href="https://github.com/facebook/react/pull/36173#issuecomment-4328422631">WIP port of React Compiler to Rust</a> - Confirmed being internally tested at Meta.</p></li><li><p>&#128220; <a href="https://saschb2b.com/blog/react-compiler-year-in-review">The React Compiler at Eighteen Months: The Arc, the Debates, and What&#8217;s Next</a> - An overview of what happened since React Compiler was announced and predictions for the future.</p></li><li><p>&#128220; <a href="https://inside-react.vercel.app/blog/how-react-streams-ui-out-of-order">How React streams UI out of order and still manages to keep order</a> - Deep dive into Suspense boundaries and DOM staging.</p></li><li><p>&#128220; <a href="https://certificates.dev/blog/accessibility-in-react-common-mistakes-and-how-to-fix-them">Accessibility in React: Common Mistakes and How to Fix Them</a> - HTML elements, document structure, interactive elements labeling, connecting errors to labels, focus management, dynamic updates, ARIA.</p></li><li><p>&#128220; <a href="https://shadcnstudio.com/blog/migrate-from-radix-ui-to-base-ui">Migrating from Radix UI to Base UI: Step-by-Step Guide</a> - Covers the main API differences: <code>asChild</code> becomes a <code>render</code> prop, <code>data-[state=*]</code> attributes are replaced by ARIA attributes, and component-specific changes like Select now take an <code>items</code> array.</p></li><li><p>&#128220; <a href="https://hackmd.io/@0u1u3zEAQAO0iYWVAStEvw/Hk2Jiv8T-l">Why TSRX isn&#8217;t just your Favorite Templating Language</a> - TSRX is an alternative to JSX. The article states that TSRX&#8217;s mechanics (static analyzability, stateful templates, hooks in conditionals) matter more than syntax.</p></li><li><p>&#128184; <a href="https://go.posthog.com/twir-apr29">Product for Engineers - The golden rules of agent-first product engineering</a></p></li><li><p>&#128230; <a href="https://github.com/react-hook-form/react-hook-form/releases/tag/v7.74.0">React Hook Form 7.74 - </a><code>setValues</code><a href="https://github.com/react-hook-form/react-hook-form/releases/tag/v7.74.0"> update multiple fields at once</a></p></li><li><p>&#128230; <a href="https://github.com/ReactTooltip/react-tooltip/releases/tag/v6.0.0">React Tooltip 6.0 - </a><code>portalRoot</code><a href="https://github.com/ReactTooltip/react-tooltip/releases/tag/v6.0.0"> and </a><code>autoClose</code><a href="https://github.com/ReactTooltip/react-tooltip/releases/tag/v6.0.0"> props, React 19 support, removed HTML string API</a></p></li><li><p>&#128230; <a href="https://github.com/shadcn-ui/ui/releases/tag/shadcn%404.5.0">shadcn CLI 4.5 - Add --pointer option to cli</a> - Re-enables <code>cursor: pointer</code> on buttons.</p></li><li><p>&#128230; <a href="https://github.com/statelyai/xstate/releases/tag/xstate%405.31.0">XState 5.31 - Add </a><code>mapState(snapshot, mapper)</code><a href="https://github.com/statelyai/xstate/releases/tag/xstate%405.31.0"> and </a><code>maxIterations</code><a href="https://github.com/statelyai/xstate/releases/tag/xstate%405.31.0"> option</a></p></li><li><p>&#128230; <a href="https://stylexjs.com/blog/v0.18">StyleX 0.18 - New </a><code>sx={}</code><a href="https://stylexjs.com/blog/v0.18"> JSX prop, </a><code>stylex.env</code><a href="https://stylexjs.com/blog/v0.18"> compile-time constants, </a><code>create-stylex-app</code><a href="https://stylexjs.com/blog/v0.18"> CLI, DevTools extension, Bun support</a></p></li><li><p>&#128230; <a href="https://github.com/chakra-ui/chakra-ui/releases/tag/%40chakra-ui%2Freact%403.35.0">Chakra UI 3.35 - new release for: react, charts, cli, panda-presets and codemod packages</a> - This release adds a Splitter component, React 19 support, and new CLI commands for docs/props.</p></li><li><p>&#128230; <a href="https://github.com/honojs/middleware/tree/main/packages/inertia">@hono/inertia - Inertia.js on Hono, render React from your routes</a> - Skips the REST endpoints, client side router and the data fetching layer entirely with this new end-to-end type safe middleware.</p></li><li><p>&#128230; <a href="https://github.com/mantinedev/mantine/releases/tag/9.1.0">Mantine 9.1 - Added/modified: deduplicateInlineStyles, use-mask, MaskInput, Treemap, TimePicker, Heatmap, MonthPicker, YearPicker, use-roving-index, Tree, Slider, WeekView</a></p></li><li><p>&#128230; <a href="https://github.com/TanStack/query/releases/tag/release-2026-04-23-1319">TanStack Query 5.100 - Added retryOnMount callback; internal Svelte test cleanup</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=MjNHmFGqNWw">Josef Bender - Avoid These 3 Mistakes in TanStack Start</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=t9xB8xvySyo">Jack Herrington - Partial Page Caching Using React Server Components</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!m07y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ff9f6fb-aa48-463a-a771-1e8185928055_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!m07y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ff9f6fb-aa48-463a-a771-1e8185928055_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!m07y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ff9f6fb-aa48-463a-a771-1e8185928055_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!m07y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ff9f6fb-aa48-463a-a771-1e8185928055_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!m07y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ff9f6fb-aa48-463a-a771-1e8185928055_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!m07y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ff9f6fb-aa48-463a-a771-1e8185928055_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9ff9f6fb-aa48-463a-a771-1e8185928055_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Theo Browne&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Theo Browne" title="Theo Browne" srcset="https://substackcdn.com/image/fetch/$s_!m07y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ff9f6fb-aa48-463a-a771-1e8185928055_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!m07y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ff9f6fb-aa48-463a-a771-1e8185928055_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!m07y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ff9f6fb-aa48-463a-a771-1e8185928055_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!m07y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ff9f6fb-aa48-463a-a771-1e8185928055_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/theo">Theo Browne</a></strong><a href="https://twitter.com/theo">Founder of ping.gg - Youtuber</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Krmv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Krmv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Krmv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/35712f28-4b25-4082-a9e3-5680e959a179_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Krmv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Pp0m!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F456c6b69-f746-4c53-9355-e3bf55c1fbd3_1200x567.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Pp0m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F456c6b69-f746-4c53-9355-e3bf55c1fbd3_1200x567.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Pp0m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F456c6b69-f746-4c53-9355-e3bf55c1fbd3_1200x567.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Pp0m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F456c6b69-f746-4c53-9355-e3bf55c1fbd3_1200x567.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Pp0m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F456c6b69-f746-4c53-9355-e3bf55c1fbd3_1200x567.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Pp0m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F456c6b69-f746-4c53-9355-e3bf55c1fbd3_1200x567.jpeg" width="1200" height="567" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/456c6b69-f746-4c53-9355-e3bf55c1fbd3_1200x567.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:567,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;No breakpoints, no console.log &#8212; just AI &amp; time travel&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="No breakpoints, no console.log &#8212; just AI &amp; time travel" title="No breakpoints, no console.log &#8212; just AI &amp; time travel" srcset="https://substackcdn.com/image/fetch/$s_!Pp0m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F456c6b69-f746-4c53-9355-e3bf55c1fbd3_1200x567.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Pp0m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F456c6b69-f746-4c53-9355-e3bf55c1fbd3_1200x567.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Pp0m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F456c6b69-f746-4c53-9355-e3bf55c1fbd3_1200x567.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Pp0m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F456c6b69-f746-4c53-9355-e3bf55c1fbd3_1200x567.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://wallabyjs.com/?referrer=ThisWeekInReact22Apr26">No breakpoints, no console.log &#8212; just AI &amp; time travel</a></strong></p><p>15x faster TypeScript and JavaScript debugging than with breakpoints and <code>console.log</code>, while upgrading your AI agent into an expert debugger with real-time context.</p><p>Wallaby.js runs your tests as you type, feeding your AI assistant live runtime values, code coverage, error details, and execution paths &#8212; all right next to your code. With <a href="https://wallabyjs.com/blog/wallaby-v3.html?referrer=ThisWeekInReact22Apr26">Wallaby v3&#8217;s new engine</a> &#128640;, tests start instantly with cached results, prioritize active files, and stream updates in real time.</p><p>Built for testing, Wallaby includes a <strong>Time Travel Debugger</strong>, the ability to run only opened files, full-context AI integration, smart test runs, and more.</p><p><a href="https://wallabyjs.com/?referrer=ThisWeekInReact22Apr26">&#10145;&#65039; Learn More</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Krmv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Krmv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Krmv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/35712f28-4b25-4082-a9e3-5680e959a179_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Krmv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128241; React-Native</strong></h2><ul><li><p>&#128184; <a href="https://maestro.dev/?utm_source=this-week-in-react#maestro-studio">Maestro Studio - A desktop app for automated React Native UI testing. Build tests by clicking directly on your app&#8217;s UI. Free.</a></p></li><li><p>&#128172; <a href="https://github.com/react-native-community/discussions-and-proposals/pull/994">RFC: Swift Package Manager support in React Native</a> - Plan to replace CocoaPods with SPM on iOS, as CocoaPods has been in maintenance mode for a while.</p></li><li><p>&#128064; <a href="https://github.com/react-navigation/react-navigation/pull/13076">React Navigation PR - Add support for retaining screens in stack</a> - A new <code>navigation.retain(true)</code> API will keep a screen mounted after going back, similar to React&#8217;s <code>&lt;Activity&gt;</code>. JS stack only for now, but Native Stack support will come with RNScreens 5.</p></li><li><p>&#128227; <a href="https://developer.apple.com/news/upcoming-requirements/?id=02032026a">Starting on April 28, 2026 apps uploaded to App Store Connect must be built with Xcode 26</a></p></li><li><p>&#128220; <a href="https://blog.margelo.com/make-jsi-run-faster">How to Make Pure JSI Code Faster in React Native</a> - <code>HostFunction</code> is about 5x faster than <code>HostObject</code>, prefer stack buffers when size is known, avoid unnecessary temporary allocations, reduce JS &#8596; C++ crossings.</p></li><li><p>&#128220; <a href="https://blog.margelo.com/react-native-qr-barcode-scanner-visioncamera-v5">QR and Barcode Scanning in React Native with VisionCamera V5</a> - Overview of VisionCamera APIs for QR scanning with ranging purposes &amp; levels of complexity.</p></li><li><p>&#128220; <a href="https://swmansion.com/blog/integrating-deferred-deep-linking-in-react-native-apps-1/">Integrating Deferred Deep Linking in React Native Apps</a> - React Native Detour SDK walkthrough with Expo Router.</p></li><li><p>&#128220; <a href="https://www.callstack.com/blog/when-to-use-apple-foundation-models-on-mobile">When to Use Apple Foundation Models on Mobile</a> - Hybrid approach where local models handle latency-sensitive tasks and cloud models handle complex reasoning. Use local first and escalate to cloud when needed.</p></li><li><p>&#128230; <a href="https://simcam.swmansion.com/">SimCam - Camera Testing for the iOS Simulator</a></p></li><li><p>&#128230; <a href="https://github.com/margelo/react-native-quick-crypto/releases/tag/v1.1.0">Quick Crypto 1.1 - simdutf for faster string encoding/decoding, Buffer semantics now match Node.js semantics, OpenSSL-Universal CocoaPods dep</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion-labs/react-native-enriched-markdown/releases/tag/v0.5.0">Enriched Markdown 0.5 - Support macOS, web, </a><code>EnrichedMarkdownTextInput</code><a href="https://github.com/software-mansion-labs/react-native-enriched-markdown/releases/tag/v0.5.0">, spoiler elements, auto-link detection, VoiceOver/TalkBack improvements</a></p></li><li><p>&#128230; <a href="https://github.com/callstackincubator/agent-device/releases/tag/v0.13.0">Agent Device 0.13 - React DevTools passthrough, parametrise .ad replay scripts</a></p></li><li><p>&#128230; <a href="https://github.com/joshuayoes/ios-simulator-mcp/releases/tag/1.6.0">iOS Simulator MCP 1.6 - Added </a><code>ui_find_element</code><a href="https://github.com/joshuayoes/ios-simulator-mcp/releases/tag/1.6.0"> tool, </a><code>launch_app</code><a href="https://github.com/joshuayoes/ios-simulator-mcp/releases/tag/1.6.0"> env variable and </a><code>record_video</code><a href="https://github.com/joshuayoes/ios-simulator-mcp/releases/tag/1.6.0"> UDID support</a></p></li><li><p>&#128230; <a href="https://github.com/googlemaps/react-native-navigation-sdk/releases/tag/v0.15.0">Google Maps RN Navigation SDK 0.15 - Breaking changes to continueToNextDestination and mapStyle; various iOS/Android crash fixes</a></p></li><li><p>&#128230; <a href="https://github.com/corasan/react-native-nitro-mlx/releases/tag/v0.5.0">Nitro MLX 0.5 - Expo 55 support, added Embeddings module, ChatSession API, and streaming downloads</a></p></li><li><p>&#128230; <a href="https://github.com/arunabhverma/expo-paste-input/releases/tag/v0.2.0">Expo Paste Input 0.2 - Animated GIF stickers, preserve animation instead of converting to static images</a></p></li><li><p>&#128230; <a href="https://github.com/GantMan/jail-monkey/releases/tag/v3.0.0">Jail Monkey 3.0 - New Architecture support, added iOS/Android mock location detection</a> - Detect jailbroken/rooted device, mocked locations, and on Android apps running from external storage.</p></li><li><p>&#129302; <a href="https://github.com/software-mansion-labs/skills/tree/main/skills/react-native-best-practices/references/jsi">Software Mansion React Native JSI Skills</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=kN8fuEPf20A">Beto - React Native UI Testing Without the Pain</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Krmv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Krmv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Krmv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/35712f28-4b25-4082-a9e3-5680e959a179_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Krmv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128256; Other</strong></h2><ul><li><p>&#128064; <a href="https://github.com/nodejs/node/pull/62526">Node.js PR - Release v26.0</a> - The release slipped from yesterday to next week. It upgrades the <code>fetch()</code> client and unlocks new exciting APIs such as <code>Temporal</code> and <code>Map.getOrInsert()</code>.</p></li><li><p>&#128220; <a href="https://www.joshwcomeau.com/animation/scroll-driven-animations/">Scroll-Driven Animations</a> - Another great interactive article from Josh Comeau, explaining how you can now map a CSS keyframe to a scroll distance instead of a duration.</p></li><li><p>&#128220; <a href="https://nik.digital/posts/compositing-blending">Compositing &amp; Blending</a> - How the browser decides the final color of every pixel when stacking multiple elements and how it is applied in the real world.</p></li><li><p>&#128220; <a href="https://frontendmasters.com/blog/the-web-is-fun-again-first-experiments-with-html-in-canvas/">The Web Is Fun Again: First Experiments with HTML in Canvas</a> - Showcases a new API, with its limitations and interesting ways to use it.</p></li><li><p>&#128220; <a href="https://web.dev/blog/web-platform-04-2026?hl=en">New to the web platform in April</a> - <code>contrast-color()</code>, animation-range, and <code>Math.sumPrecise</code> became Baseline Newly Available, while Firefox and Chrome added various new APIs.</p></li><li><p>&#128230; <a href="https://pnpm.io/blog/releases/11.0">pnpm 11.0 - SQLite-backed store, supply-chain protection on by default, native publishing, ESM-only</a></p></li><li><p>&#128230; <a href="https://aube.en.dev/">Aube - Drop-in Node.js package manager that reads existing lockfiles</a> - Claims to be 9.2x faster than pnpm and 2.7x faster than Bun.</p></li><li><p>&#128230; <a href="https://deno.com/blog/fresh-2.3">Fresh 2.3 - Preact framework - Zero JS by default, View Transitions, and Temporal support</a></p></li><li><p>&#127897;&#65039; <a href="https://syntax.fm/show/999/writing-maintainable-css">Syntax.fm 999 - Writing Maintainable CSS</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Krmv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Krmv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Krmv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/35712f28-4b25-4082-a9e3-5680e959a179_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Krmv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Krmv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35712f28-4b25-4082-a9e3-5680e959a179_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#129325; Fun</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AFGJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86acb839-fea2-49aa-8eab-bff9bbf5e2f9_1200x970.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AFGJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86acb839-fea2-49aa-8eab-bff9bbf5e2f9_1200x970.jpeg 424w, https://substackcdn.com/image/fetch/$s_!AFGJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86acb839-fea2-49aa-8eab-bff9bbf5e2f9_1200x970.jpeg 848w, https://substackcdn.com/image/fetch/$s_!AFGJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86acb839-fea2-49aa-8eab-bff9bbf5e2f9_1200x970.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!AFGJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86acb839-fea2-49aa-8eab-bff9bbf5e2f9_1200x970.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AFGJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86acb839-fea2-49aa-8eab-bff9bbf5e2f9_1200x970.jpeg" width="1200" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/86acb839-fea2-49aa-8eab-bff9bbf5e2f9_1200x970.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!AFGJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86acb839-fea2-49aa-8eab-bff9bbf5e2f9_1200x970.jpeg 424w, https://substackcdn.com/image/fetch/$s_!AFGJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86acb839-fea2-49aa-8eab-bff9bbf5e2f9_1200x970.jpeg 848w, https://substackcdn.com/image/fetch/$s_!AFGJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86acb839-fea2-49aa-8eab-bff9bbf5e2f9_1200x970.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!AFGJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86acb839-fea2-49aa-8eab-bff9bbf5e2f9_1200x970.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>See ya! &#128075;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[This Week In React 278]]></title><description><![CDATA[React Email, TSRX, ESLint plugin, Rspack RSC, TanStack, Hook Form | Vision Camera, Expo, Nano Icons, ExecuTorch, Argent, Audio API, CSS, RNSec | TypeScript Go, Node.js, Bun, Hono]]></description><link>https://substack.thisweekinreact.com/p/this-week-in-react-278</link><guid isPermaLink="false">https://substack.thisweekinreact.com/p/this-week-in-react-278</guid><dc:creator><![CDATA[Sébastien Lorber]]></dc:creator><pubDate>Fri, 24 Apr 2026 07:26:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!yP8p!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f4b6c64-fd71-4386-a596-fa4a7a981789_1200x630.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi everyone, Krzysztof and Filip from <a href="https://swmansion.com/">Software Mansion</a> here &#128075;!</p><p>Big releases anchor the week. React Email 6.0 consolidates a fragmented ecosystem into one package, unlocking an embeddable editor and more reliable HTML rendering across mailboxes.</p><p>On mobile, Marc Rousavy shipped VisionCamera v5 with a full Nitro Modules rewrite, Worklets integration, pro controls, and a modular plugin architecture.<br>Heads up on the Vercel April 2026 incident: rotate your integration tokens if you use third-party integrations.</p><p>Also inside: Expo&#8217;s Series B, Seth Webster joining Expo, the Doctolib WebView-to-Native migration, and fresh releases from TanStack, React Hook Form, ExecuTorch, TS Go beta, Rspack RSC, and more.</p><p>Let&#8217;s dive in!</p><p>As always, thanks for supporting us on your favorite platform:</p><ul><li><p>&#129419; <a href="https://slo.im/last/b">Bluesky</a></p></li><li><p>&#10006;&#65039; <a href="https://slo.im/last/x">X / Twitter</a></p></li><li><p>&#128084; <a href="https://slo.im/last/l">LinkedIn</a></p></li><li><p>&#128125; <a href="https://slo.im/last/r">Reddit</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AKEs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f37f695-5b90-4511-b896-7aa32bde136c_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AKEs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f37f695-5b90-4511-b896-7aa32bde136c_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!AKEs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f37f695-5b90-4511-b896-7aa32bde136c_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!AKEs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f37f695-5b90-4511-b896-7aa32bde136c_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!AKEs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f37f695-5b90-4511-b896-7aa32bde136c_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AKEs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f37f695-5b90-4511-b896-7aa32bde136c_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0f37f695-5b90-4511-b896-7aa32bde136c_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Dominik Dorfmeister&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Dominik Dorfmeister" title="Dominik Dorfmeister" srcset="https://substackcdn.com/image/fetch/$s_!AKEs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f37f695-5b90-4511-b896-7aa32bde136c_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!AKEs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f37f695-5b90-4511-b896-7aa32bde136c_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!AKEs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f37f695-5b90-4511-b896-7aa32bde136c_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!AKEs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f37f695-5b90-4511-b896-7aa32bde136c_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/TkDodo">Dominik Dorfmeister</a></strong><a href="https://twitter.com/TkDodo">Web Developer - React-Query maintainer</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7SVS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7SVS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7SVS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7SVS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_6bl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1adb4d6a-96de-44d4-9dc2-ba1444dcc89e_1200x628.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_6bl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1adb4d6a-96de-44d4-9dc2-ba1444dcc89e_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!_6bl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1adb4d6a-96de-44d4-9dc2-ba1444dcc89e_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!_6bl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1adb4d6a-96de-44d4-9dc2-ba1444dcc89e_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!_6bl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1adb4d6a-96de-44d4-9dc2-ba1444dcc89e_1200x628.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_6bl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1adb4d6a-96de-44d4-9dc2-ba1444dcc89e_1200x628.jpeg" width="1200" height="628" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1adb4d6a-96de-44d4-9dc2-ba1444dcc89e_1200x628.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:628,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Still writing tests manually?&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Still writing tests manually?" title="Still writing tests manually?" srcset="https://substackcdn.com/image/fetch/$s_!_6bl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1adb4d6a-96de-44d4-9dc2-ba1444dcc89e_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!_6bl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1adb4d6a-96de-44d4-9dc2-ba1444dcc89e_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!_6bl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1adb4d6a-96de-44d4-9dc2-ba1444dcc89e_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!_6bl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1adb4d6a-96de-44d4-9dc2-ba1444dcc89e_1200x628.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q1&amp;utm_content=2nd">Still writing tests manually?</a></strong></p><p>Notion, Dropbox and LaunchDarkly have found a new testing paradigm - and they can&#8217;t imagine working without it. Built by <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q1&amp;utm_content=1st">ex-Palantir engineers</a>, Meticulous autonomously creates a continuously evolving suite of E2E UI tests that delivers <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q1&amp;utm_content=1st">near-exhaustive coverage</a> with <em>zero developer effort</em> - impossible to deliver by any other means.</p><p>It works like magic in the background:</p><ul><li><p>Near-exhaustive coverage on every test run</p></li><li><p>No test creation</p></li><li><p><strong>No maintenance (seriously)</strong></p></li><li><p>Zero flakes (built on a deterministic browser)</p></li></ul><p><strong>&#129320;</strong> Curious? <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q1&amp;utm_content=1st">Book in a time to learn more</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7SVS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7SVS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7SVS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7SVS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#9883;&#65039; React</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yP8p!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f4b6c64-fd71-4386-a596-fa4a7a981789_1200x630.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yP8p!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f4b6c64-fd71-4386-a596-fa4a7a981789_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!yP8p!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f4b6c64-fd71-4386-a596-fa4a7a981789_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!yP8p!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f4b6c64-fd71-4386-a596-fa4a7a981789_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!yP8p!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f4b6c64-fd71-4386-a596-fa4a7a981789_1200x630.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yP8p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f4b6c64-fd71-4386-a596-fa4a7a981789_1200x630.jpeg" width="1200" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8f4b6c64-fd71-4386-a596-fa4a7a981789_1200x630.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;React Email 6.0&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="React Email 6.0" title="React Email 6.0" srcset="https://substackcdn.com/image/fetch/$s_!yP8p!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f4b6c64-fd71-4386-a596-fa4a7a981789_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!yP8p!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f4b6c64-fd71-4386-a596-fa4a7a981789_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!yP8p!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f4b6c64-fd71-4386-a596-fa4a7a981789_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!yP8p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f4b6c64-fd71-4386-a596-fa4a7a981789_1200x630.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://resend.com/blog/react-email-6">React Email 6.0</a></strong></p><p>React email matures with a major release that cleans up a fragmented ecosystem. It makes version management much easier and stops the CLI and components from getting out of sync.</p><p>Key technical shifts:</p><ul><li><p>Embeddable Editor: You can use the preview tool as a React component to show users how their emails will look directly in your own app.</p></li><li><p>Reliable HTML: The engine that turns React into email HTML handles more different mailboxes quirks.</p></li><li><p>Faster HMR: Faster switching between templates and preview, even with complex layouts</p></li></ul><p>Moving away from modularization into one big package is a big step toward making the library stable and more capable. While it might slightly increase bundle size, it enables complex features blocked before, like the embeddable preview and advanced layout transformations.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7SVS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7SVS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7SVS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7SVS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://sentry.io/resources/nextjs-may-workshop/?utm_source=thisweekinreact&amp;utm_medium=paid-community&amp;utm_campaign=nextjs-fy27q1-nextjsworkshop&amp;utm_content=newsletter-react-link-register">Sentry - Stop flying blind in Next.js. This free workshop covers logs, tracing, and how to connect both in production. Register today.</a></p></li><li><p>&#128272; <a href="https://vercel.com/kb/bulletin/vercel-april-2026-security-incident">Vercel April 2026 security incident</a> - A few environment variables were accidentally exposed because of a security breach linked to a third-party AI tool. Since some secrets are stored in plain text, it is recommended to rotate them manually as soon as possible.</p></li><li><p>&#128467;&#65039; <a href="https://reactnorway.com/?utm_medium=social&amp;utm_source=ThisWeekReact">React Norway</a> - &#127475;&#127476; Oslo - 5 June. Check out the stellar lineup featuring Dominik Dorfmeister, Aurora Scharff, and Jack Herrington at the legendary Rockefeller music venue. -10% with code &#8220;TWIR&#8221;.</p></li><li><p>&#128220; <a href="https://frontendmasters.com/blog/building-a-blog-in-tanstack-part-1-of-2/">Building a Blog in TanStack</a> - Building a markdown blog with TanStack Start, then going fully static via pre-rendering and static server functions to avoid Shiki&#8217;s cold-start cost.</p></li><li><p>&#128220; <a href="https://developer.salesforce.com/blogs/2026/04/build-with-react-run-on-salesforce-introducing-salesforce-multi-framework">Build with React, Run on Salesforce: Introducing Salesforce Multi-Framework</a> - A story about the benefits of React that convinced Salesforce to drop their custom solution in favor of React development on their platform. Currently in Beta.</p></li><li><p>&#128220; <a href="https://frontendmasters.com/blog/ai-generated-ui-is-inaccessible-by-default/">AI-Generated UI Is Inaccessible by Default</a> - Common accessibility pitfalls in AI-generated code and ways to ensure correct standards through linting, testing and CI.</p></li><li><p>&#128184; <a href="https://pscale.link/rw">PlanetScale - Faster apps start with a faster database. Get started with the fastest benchmarked Postgres and MySQL.</a></p></li><li><p>&#128230; <a href="https://tsrx.dev/">TSRX - A TypeScript language extension for building declarative UIs</a> - A spiritual successor to JSX. A new framework-agnostic solution created by former React core team member Dominic Gannaway, can compile to React/Solid/Ripple.</p></li><li><p>&#128230; <a href="https://rspack.rs/blog/announcing-2-0">Rspack 2.0</a> - The Rust bundler keeps improving on performance and features while remaining compatible with webpack. This new major also includes experimental React Server Components support, with plans to add support for TanStack RSC.</p></li><li><p>&#128230; <a href="https://github.com/TanStack/store/releases/tag/%40tanstack/react-store%400.11.0">TanStack Store 0.11 - New </a><code>useAtom</code><a href="https://github.com/TanStack/store/releases/tag/%40tanstack/react-store%400.11.0">, </a><code>useSelector</code><a href="https://github.com/TanStack/store/releases/tag/%40tanstack/react-store%400.11.0">, and </a><code>createStoreContext</code><a href="https://github.com/TanStack/store/releases/tag/%40tanstack/react-store%400.11.0"> hooks</a> - <code>useStore</code> is now deprecated in favor of <code>useSelector</code>.</p></li><li><p>&#128230; <a href="https://github.com/facebook/react/releases/tag/eslint-plugin-react-hooks%407.1.0">ESlint Plugin React Hooks 7.1 - Support for ESLint v10, performance and linting improvements</a></p></li><li><p>&#128230; <a href="https://lingui.dev/blog/2026/04/22/announcing-lingui-6.0">Lingui 6.0 - i18n for React, RN, and more - Technical improvements and modernization</a></p></li><li><p>&#128230; <a href="https://github.com/react-hook-form/react-hook-form/releases/tag/v7.73.1">React Hook Form 7.73 - Memoized </a><code>submit</code><a href="https://github.com/react-hook-form/react-hook-form/releases/tag/v7.73.1">, faster </a><code>deepEqual</code><a href="https://github.com/react-hook-form/react-hook-form/releases/tag/v7.73.1">, enhanced type-safety for deeply nested fields</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=OlViBcLX-fA">Ankita Kulkani - Next.js finally has Page Transitions Now</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vEiD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc47f94bb-457a-45ba-810a-f7bad2727864_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vEiD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc47f94bb-457a-45ba-810a-f7bad2727864_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vEiD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc47f94bb-457a-45ba-810a-f7bad2727864_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vEiD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc47f94bb-457a-45ba-810a-f7bad2727864_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vEiD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc47f94bb-457a-45ba-810a-f7bad2727864_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vEiD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc47f94bb-457a-45ba-810a-f7bad2727864_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c47f94bb-457a-45ba-810a-f7bad2727864_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Addy Osmani&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Addy Osmani" title="Addy Osmani" srcset="https://substackcdn.com/image/fetch/$s_!vEiD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc47f94bb-457a-45ba-810a-f7bad2727864_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vEiD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc47f94bb-457a-45ba-810a-f7bad2727864_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vEiD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc47f94bb-457a-45ba-810a-f7bad2727864_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vEiD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc47f94bb-457a-45ba-810a-f7bad2727864_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/addyosmani">Addy Osmani</a></strong><a href="https://twitter.com/addyosmani">Head of Chrome DX - Google</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7SVS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7SVS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7SVS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7SVS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LpIV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea3ac6c-3dea-42e3-94ac-b401ef7514e6_1200x600.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LpIV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea3ac6c-3dea-42e3-94ac-b401ef7514e6_1200x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!LpIV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea3ac6c-3dea-42e3-94ac-b401ef7514e6_1200x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!LpIV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea3ac6c-3dea-42e3-94ac-b401ef7514e6_1200x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!LpIV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea3ac6c-3dea-42e3-94ac-b401ef7514e6_1200x600.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LpIV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea3ac6c-3dea-42e3-94ac-b401ef7514e6_1200x600.jpeg" width="1200" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fea3ac6c-3dea-42e3-94ac-b401ef7514e6_1200x600.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Build Gantt Charts in React &#8211; No JS Fluff&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Build Gantt Charts in React &#8211; No JS Fluff" title="Build Gantt Charts in React &#8211; No JS Fluff" srcset="https://substackcdn.com/image/fetch/$s_!LpIV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea3ac6c-3dea-42e3-94ac-b401ef7514e6_1200x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!LpIV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea3ac6c-3dea-42e3-94ac-b401ef7514e6_1200x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!LpIV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea3ac6c-3dea-42e3-94ac-b401ef7514e6_1200x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!LpIV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea3ac6c-3dea-42e3-94ac-b401ef7514e6_1200x600.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://svar.dev/react/gantt/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=apr22">Build Gantt Charts in React &#8211; No JS Fluff</a></strong></p><p>Take control of your workflow with <strong>SVAR React Gantt</strong>, a native React component for task scheduling. Add custom Gantt diagrams to your apps &#8211; from simple timelines to complex projects with thousands of tasks.</p><ul><li><p><strong>Pure React architecture</strong> for full customization</p></li><li><p><strong>Drag-and-drop</strong> timeline and easy task editing</p></li><li><p><strong>Optimized rendering</strong> for large datasets</p></li><li><p><strong>Easy integration</strong> with Next.js and state libraries</p></li></ul><p>MIT-licensed core. PRO Edition for critical path, baselines, export, and auto-scheduling.</p><p>&#128736;&#65039; <a href="https://svar.dev/react/gantt/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=apr22">Learn more &amp; get started</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7SVS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7SVS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7SVS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7SVS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128241; React-Native</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hqiV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d9b0a3-1769-470c-8b60-f69a516ac160_1200x872.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hqiV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d9b0a3-1769-470c-8b60-f69a516ac160_1200x872.jpeg 424w, https://substackcdn.com/image/fetch/$s_!hqiV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d9b0a3-1769-470c-8b60-f69a516ac160_1200x872.jpeg 848w, https://substackcdn.com/image/fetch/$s_!hqiV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d9b0a3-1769-470c-8b60-f69a516ac160_1200x872.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!hqiV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d9b0a3-1769-470c-8b60-f69a516ac160_1200x872.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hqiV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d9b0a3-1769-470c-8b60-f69a516ac160_1200x872.jpeg" width="1200" height="872" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/76d9b0a3-1769-470c-8b60-f69a516ac160_1200x872.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:872,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Vision Camera v5&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Vision Camera v5" title="Vision Camera v5" srcset="https://substackcdn.com/image/fetch/$s_!hqiV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d9b0a3-1769-470c-8b60-f69a516ac160_1200x872.jpeg 424w, https://substackcdn.com/image/fetch/$s_!hqiV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d9b0a3-1769-470c-8b60-f69a516ac160_1200x872.jpeg 848w, https://substackcdn.com/image/fetch/$s_!hqiV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d9b0a3-1769-470c-8b60-f69a516ac160_1200x872.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!hqiV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76d9b0a3-1769-470c-8b60-f69a516ac160_1200x872.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://blog.margelo.com/whats-new-in-visioncamera-v5">Vision Camera v5</a></strong></p><p>Marc Rousavy has released a massive update for VisionCamera. This major upgrade to the camera module includes many new features and improvements. Let&#8217;s take a closer look at the main highlights:</p><ul><li><p>Nitro Modules Backend - The complete rewrite using Nitro Modules results in significant performance improvements.</p></li><li><p>Worklets Integration: Now uses <code>react-native-worklets</code> for smoother frame processing.</p></li><li><p>Pro Camera Controls - Full manual support for Exposure, Focus, and White Balance, plus RAW format support.</p></li><li><p>Depth &amp; Multi-Cam - You can now stream LiDAR/ToF data and record with front and back cameras simultaneously.</p></li></ul><p>This release comes with a new modular architecture - VisionCamera is no longer one giant package. You can now pick and choose only the plugins you need to keep your bundle size small:</p><ul><li><p><code>react-native-vision-camera-skia</code> - Real-time filters and overlays</p></li><li><p><code>react-native-vision-camera-barcode-scanner</code> - MLKit integration out of the box</p></li><li><p><code>react-native-vision-camera-resizer</code> - GPU-accelerated resizing for ML tasks</p></li><li><p><code>react-native-vision-camera-location</code> - Automatic EXIF tagging</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7SVS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7SVS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7SVS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7SVS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://go.posthog.com/twir-apr22">PostHog - A beginner&#8217;s guide to testing AI agents</a></p></li><li><p>&#128227; <a href="https://expo.dev/blog/what-expo-s-series-b-funding-means-for-you">Expo raised $45 million in a Series B funding round.</a> They also <a href="https://x.com/expo/status/2044808498765353113">hired Seth Webster</a>, who previously led the React team and kickstarted the React Foundation. They are <a href="https://thenewstack.io/expo-bets-big-on-react-natives-agentic-future/">betting on an agentic future</a>, at a moment where the React Native ecosystem is expanding faster than ever.</p></li><li><p>&#128038; <a href="https://x.com/wisniewskij514/status/2043720838646477185">The Reanimated team is working on pseudo-selector support for CSS animations</a></p></li><li><p>&#128038; <a href="https://x.com/tomekzaw_/status/2044690191072309360">The Hermes team is working on JSI support for TypedArrays</a></p></li><li><p>&#128038; Evan Bacon demod an <a href="https://x.com/Baconbrix/status/2045207510039322668%20">iOS simulator running inside of Codex desktop</a></p></li><li><p>&#128038; <a href="https://x.com/JI/status/2044887303890583953">The Codex Expo plugin is now available</a></p></li><li><p>&#128220; <a href="https://blog.margelo.com/margelo-discord-react-native-performance">How Margelo Helped Discord Improve React Native&#8217;s New Architecture Performance</a> -<br>A deep dive into concrete low-level optimizations that made the Discord app. Some of these were upstreamed into Reanimated feature flags and the new Shared Animation Backend in React Native core.</p></li><li><p>&#128220; <a href="https://codewithbeto.dev/blog/building-expo-apps-locally">How to Build Your React Native App Locally (APK and .app)</a> - A technical walkthrough for generating local iOS and Android artifacts (.app/.apk) directly from an Expo project using xcodebuild and gradlew.</p></li><li><p>&#128220; <a href="https://medium.com/doctolib/rebuilding-the-doctolib-homepage-from-webview-to-native-27937ea71801">Rebuilding the Doctolib Homepage from Webview to Native</a> - Architectural migration from a WebView using a Backend for Frontend architecture. Time to Interactive dropped ~50% on both iOS and Android after the migration.</p></li><li><p>&#128220; <a href="https://swmansion.com/blog/on-device-ai-beats-cloud-for-tts-heres-why/">On-device AI vs Cloud TTS &#8211; Kokoro, react-native-executorch</a> - How on-device AI can reduce the cost of TTS without sacrificing quality.</p></li><li><p>&#128220; <a href="https://swmansion.com/blog/deferred-deep-linking-for-mobile-developers-with-detour/">Deferred Deep Linking for Mobile Developers with Detour</a> - An explanation of when deep linking is a relevant use case for your app and how Detour implements that concept.</p></li><li><p>&#128230; <a href="https://github.com/software-mansion-labs/react-native-nano-icons">Nano Icons - Use any SVG as font. High-performance, build-time icon font generation for React Native &amp; Expo</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion/argent">Argent - An agentic toolkit to control, debug, and profile iOS apps from Software Mansion</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion/react-native-executorch/releases/tag/v0.8.0">React Native ExecuTorch 0.8 - Vision Camera v5 integration, Vision Language Models support, Whisper model up to 3x faster</a></p></li><li><p>&#128230; <a href="https://github.com/maplibre/maplibre-react-native/releases/tag/v11.0.0">Maplibre 11.0 - Dropped legacy React architecture support; aligned API with MapLibre GL</a></p></li><li><p>&#128230; <a href="https://github.com/margelo/react-native-graph/releases/tag/v1.2.0">Graph 1.2 - Support for latest RN, Reanimated &amp; Skia</a></p></li><li><p>&#128230; <a href="https://github.com/mdjastrzebski/test-renderer/releases/tag/v1.0.0">Test Renderer 1.0 - Successor to the deprecated react-test-renderer</a> - Each minor version tracks React 19 line. 1.0.x for React 19.0, 1.1.x for 19.1 (Owner Stacks, CSS-safe useId), 1.2.x for 19.2 (&lt;Activity&gt;, useEffectEvent).</p></li><li><p>&#128230; <a href="https://github.com/adnxy/rnsec/blob/main/NEW_RULES_v1.3.0.md">RNSec 1.3 - New security rules and native code vulnerability scanner</a></p></li><li><p>&#128230; <a href="https://github.com/JubaKitiashvili/expo-pretext/releases/tag/v1.1.0">Expo Pretext 1.1 - Brings CSS </a><code>text-wrap: balance/pretty</code><a href="https://github.com/JubaKitiashvili/expo-pretext/releases/tag/v1.1.0"> to RN</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion/react-native-audio-api/releases/tag/0.12.0">Audio API 0.12 - Mac Catalyst support, Android ducking, universal resampler, rotating file writer for long recordings</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=FXw9OoiddMg">Beto - Expo Router v55 Crash Course</a></p></li><li><p>&#127897;&#65039; <a href="https://infinite.red/react-native-radio/rnr-360">RNR 360 - TanStack Native Router with Tanner Linsley</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7SVS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7SVS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7SVS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7SVS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128256; Other</strong></h2><ul><li><p>&#128220; <a href="https://frontendmasters.com/blog/building-a-ui-without-breakpoints/">Building a UI Without Breakpoints</a></p></li><li><p>&#128220; <a href="https://www.debugbear.com/blog/shopify-speed-optimization">Shopify Speed Optimization: Fixing The Real Bottlenecks</a></p></li><li><p>&#128220; <a href="https://dev.to/sylwia-lask/most-apps-are-slower-than-they-need-to-be-heres-why-live-demo-2hh8">Most Apps Are Slower Than They Need to Be</a></p></li><li><p>&#128230; <a href="https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-beta/">TypeScript 7.0 Beta</a> - The first beta of the Go rewrite is out! It has great compatibility with 6.0 and should be ~10x faster thanks to parallelization.</p></li><li><p>&#128230; <a href="https://nodejs.org/en/blog/release/v24.15.0">Node.js 24.15 - require(esm) marked as stable</a></p></li><li><p>&#128230; <a href="https://bun.com/blog/bun-v1.3.13">Bun 1.3.13 - Fast parallel and isolated tests, faster bun install</a></p></li><li><p>&#128230; <a href="https://fast-check.dev/blog/2026/04/18/whats-new-in-fast-check-4-7-0/">Fast-Check 4.7 - Property-based testing framework</a></p></li><li><p>&#128230; <a href="https://github.com/honojs/node-server/releases/tag/v2.0.0">Hono Node.js Adapter 2.0 - Up to 2.3x faster</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7SVS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7SVS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7SVS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7SVS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7SVS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835cdaa3-6377-475d-93f9-1cf68288678b_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#129325; Fun</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Rn3t!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae88b573-b0eb-444a-9d89-b06bc07040a3_1000x1345.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Rn3t!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae88b573-b0eb-444a-9d89-b06bc07040a3_1000x1345.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Rn3t!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae88b573-b0eb-444a-9d89-b06bc07040a3_1000x1345.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Rn3t!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae88b573-b0eb-444a-9d89-b06bc07040a3_1000x1345.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Rn3t!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae88b573-b0eb-444a-9d89-b06bc07040a3_1000x1345.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Rn3t!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae88b573-b0eb-444a-9d89-b06bc07040a3_1000x1345.jpeg" width="1000" height="1345" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ae88b573-b0eb-444a-9d89-b06bc07040a3_1000x1345.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1345,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!Rn3t!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae88b573-b0eb-444a-9d89-b06bc07040a3_1000x1345.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Rn3t!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae88b573-b0eb-444a-9d89-b06bc07040a3_1000x1345.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Rn3t!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae88b573-b0eb-444a-9d89-b06bc07040a3_1000x1345.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Rn3t!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae88b573-b0eb-444a-9d89-b06bc07040a3_1000x1345.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!i6r_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03323313-1b5a-4ff0-8981-8d96b8f82a26_964x850.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!i6r_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03323313-1b5a-4ff0-8981-8d96b8f82a26_964x850.jpeg 424w, https://substackcdn.com/image/fetch/$s_!i6r_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03323313-1b5a-4ff0-8981-8d96b8f82a26_964x850.jpeg 848w, https://substackcdn.com/image/fetch/$s_!i6r_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03323313-1b5a-4ff0-8981-8d96b8f82a26_964x850.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!i6r_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03323313-1b5a-4ff0-8981-8d96b8f82a26_964x850.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!i6r_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03323313-1b5a-4ff0-8981-8d96b8f82a26_964x850.jpeg" width="964" height="850" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/03323313-1b5a-4ff0-8981-8d96b8f82a26_964x850.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:850,&quot;width&quot;:964,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!i6r_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03323313-1b5a-4ff0-8981-8d96b8f82a26_964x850.jpeg 424w, https://substackcdn.com/image/fetch/$s_!i6r_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03323313-1b5a-4ff0-8981-8d96b8f82a26_964x850.jpeg 848w, https://substackcdn.com/image/fetch/$s_!i6r_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03323313-1b5a-4ff0-8981-8d96b8f82a26_964x850.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!i6r_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03323313-1b5a-4ff0-8981-8d96b8f82a26_964x850.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>See ya! &#128075;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[This Week In React 277]]></title><description><![CDATA[TanStack RSC, React2Dos, Next.js, MUI, Base UI, Aria, StyledComponents, Storm | Pulsar, Nitro Fetch, Flow, Agent React DevTools, Pretext, Vector, Metro, Ease, Voltra | HTML-in]]></description><link>https://substack.thisweekinreact.com/p/this-week-in-react-277</link><guid isPermaLink="false">https://substack.thisweekinreact.com/p/this-week-in-react-277</guid><dc:creator><![CDATA[Sébastien Lorber]]></dc:creator><pubDate>Fri, 17 Apr 2026 12:37:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!8piL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ac19054-06b2-4ed0-a6b8-54c183572e90_1200x630.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi everyone, <a href="https://x.com/sebastienlorber">Seb</a> and <a href="https://x.com/jaworek3211">Jan</a> here &#128075;!</p><p>This week we finally have an experimental version of TanStack RSC! A new React DoS vulnerability affects Server Functions, so you probably need to upgrade React again. There are also important releases from the MUI team, and Styled Components is still alive!</p><p>On the React Native side, we got a new universal Haptics library, and a much faster fetch alternative. We heard VisionCamera 5 is around the corner.</p><p>Let&#8217;s dive in!</p><p>As always, thanks for supporting us on your favorite platform:</p><ul><li><p>&#129419; <a href="https://slo.im/last/b">Bluesky</a></p></li><li><p>&#10006;&#65039; <a href="https://slo.im/last/x">X / Twitter</a></p></li><li><p>&#128084; <a href="https://slo.im/last/l">LinkedIn</a></p></li><li><p>&#128125; <a href="https://slo.im/last/r">Reddit</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fdHN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cc62733-6647-46cd-b013-f5d3032a9478_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fdHN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cc62733-6647-46cd-b013-f5d3032a9478_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!fdHN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cc62733-6647-46cd-b013-f5d3032a9478_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!fdHN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cc62733-6647-46cd-b013-f5d3032a9478_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!fdHN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cc62733-6647-46cd-b013-f5d3032a9478_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fdHN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cc62733-6647-46cd-b013-f5d3032a9478_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5cc62733-6647-46cd-b013-f5d3032a9478_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;William Candillon&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="William Candillon" title="William Candillon" srcset="https://substackcdn.com/image/fetch/$s_!fdHN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cc62733-6647-46cd-b013-f5d3032a9478_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!fdHN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cc62733-6647-46cd-b013-f5d3032a9478_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!fdHN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cc62733-6647-46cd-b013-f5d3032a9478_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!fdHN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cc62733-6647-46cd-b013-f5d3032a9478_400x400.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/wcandillon">William Candillon</a></strong><a href="https://twitter.com/wcandillon">React-Native animations expert - Youtuber</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UxG9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UxG9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UxG9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UxG9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kZEu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76f28d4d-14c9-4239-b610-c4df1d597d18_1200x600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kZEu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76f28d4d-14c9-4239-b610-c4df1d597d18_1200x600.png 424w, https://substackcdn.com/image/fetch/$s_!kZEu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76f28d4d-14c9-4239-b610-c4df1d597d18_1200x600.png 848w, https://substackcdn.com/image/fetch/$s_!kZEu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76f28d4d-14c9-4239-b610-c4df1d597d18_1200x600.png 1272w, https://substackcdn.com/image/fetch/$s_!kZEu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76f28d4d-14c9-4239-b610-c4df1d597d18_1200x600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kZEu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76f28d4d-14c9-4239-b610-c4df1d597d18_1200x600.png" width="1200" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/76f28d4d-14c9-4239-b610-c4df1d597d18_1200x600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;The fastest Postgres + MySQL database&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The fastest Postgres + MySQL database" title="The fastest Postgres + MySQL database" srcset="https://substackcdn.com/image/fetch/$s_!kZEu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76f28d4d-14c9-4239-b610-c4df1d597d18_1200x600.png 424w, https://substackcdn.com/image/fetch/$s_!kZEu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76f28d4d-14c9-4239-b610-c4df1d597d18_1200x600.png 848w, https://substackcdn.com/image/fetch/$s_!kZEu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76f28d4d-14c9-4239-b610-c4df1d597d18_1200x600.png 1272w, https://substackcdn.com/image/fetch/$s_!kZEu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76f28d4d-14c9-4239-b610-c4df1d597d18_1200x600.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://planetscale.com/">The fastest Postgres + MySQL database</a></strong></p><p>PlanetScale Metal runs on blazing-fast NVMe in your favorite hyperscaler clouds. Get high-performance, reliability, and the best DX available for Postgres and MySQL.</p><p>Companies like Cash App, Cursor, and MyFitnessPal trust PlanetScale for their Tier 0 databases.</p><p>With PlanetScale, you get:</p><ul><li><p>The best performance with local NVMe</p></li><li><p>AI integration with our MCP, skills, and automatic schema recommendations</p></li><li><p>Built-in query observability with Insights</p></li><li><p>Pricing from $5/mo</p></li></ul><p><a href="https://planetscale.com/migrate">Migrate your database today</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UxG9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UxG9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UxG9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UxG9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#9883;&#65039; React</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8piL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ac19054-06b2-4ed0-a6b8-54c183572e90_1200x630.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8piL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ac19054-06b2-4ed0-a6b8-54c183572e90_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8piL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ac19054-06b2-4ed0-a6b8-54c183572e90_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8piL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ac19054-06b2-4ed0-a6b8-54c183572e90_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8piL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ac19054-06b2-4ed0-a6b8-54c183572e90_1200x630.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8piL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ac19054-06b2-4ed0-a6b8-54c183572e90_1200x630.jpeg" width="1200" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4ac19054-06b2-4ed0-a6b8-54c183572e90_1200x630.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;TanStack - React Server Components Your Way&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="TanStack - React Server Components Your Way" title="TanStack - React Server Components Your Way" srcset="https://substackcdn.com/image/fetch/$s_!8piL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ac19054-06b2-4ed0-a6b8-54c183572e90_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8piL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ac19054-06b2-4ed0-a6b8-54c183572e90_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8piL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ac19054-06b2-4ed0-a6b8-54c183572e90_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8piL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ac19054-06b2-4ed0-a6b8-54c183572e90_1200x630.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://tanstack.com/blog/react-server-components">TanStack - React Server Components Your Way</a></strong></p><p>Two weeks ago, we covered the TanStack Start RSC sneak peek that Tanner offered us at React Paris. And now, they are available as an experimental feature!</p><p>My highlights remain mostly the same:</p><ul><li><p><strong>Primitives</strong>: RSCs are supported through 3 primitive APIs that permit to manipulate RSCs as any other stream of data, immediately compatible with existing tools such as React Query, TanStack Router loaders, localStorage, CDNs and HTTP caches. It is entirely opt-in and does not impose a server-first approach nor any framework convention, giving you total freedom on how to compose those primitives.</p></li><li><p><strong>Composite Components</strong>: The server renders a RSC with slots that get filled by the client. You don&#8217;t need <code>&#8217;use client&#8217;</code> directives, although they are supported. This new concept creates an explicit boundary between the server and the client. It should be possible to co-locate client/server components in the same file this way.</p></li><li><p><strong>No Server Actions</strong>: A design decision for security reasons. Recent React CVEs affecting other RSC frameworks were due to Server Functions handling Flight payloads and don&#8217;t apply to TanStack Start, as <a href="https://www.youtube.com/watch?v=-dbvAMsRKi0">Jack Herrington explains in this video</a>.</p></li></ul><p>What strikes me is just how different this is from Next.js. It feels more like a library than a framework, and more in sync with the philosophy that initially attracted me to React.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UxG9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UxG9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UxG9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UxG9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://go.posthog.com/twir-apr15">PostHog - How we built automatic clustering for LLM traces</a></p></li><li><p>&#128272; <a href="https://www.imperva.com/blog/react2dos-cve-2026-23869-when-the-flight-protocol-crashes-at-takeoff/">React2DoS (CVE-2026-23869): When the Flight Protocol Crashes at Takeoff</a> - A new Denial-of-Service vulnerability affects the React Flight Protocol when deserializing Server Functions payloads. If you use Server Functions, upgrade asap to React 19.2.5 or <a href="https://github.com/vercel/next.js/releases/tag/v16.2.3">Next.js 16.2.3</a></p></li><li><p>&#128064; <a href="https://github.com/vercel/next.js/pull/92252">Next.js PR - Node.js streams: Fork points</a> - The SSR/RSC throughput is limited due to the use of standard Web Streams. The PR shows ongoing work to provide support for faster but non-standard Node.js streams, though the <code>experimental.useNodeStreams</code> feature flag. Accordingly to this former <a href="https://vercel.com/blog/we-ralph-wiggumed-webstreams-to-make-them-10x-faster">Vercel article about Web Streams</a>, the outcome could be quite significant.</p></li><li><p>&#128467;&#65039; <a href="https://www.dotjs.io/speak?utm_source=twir&amp;utm_medium=newsletter&amp;utm_campaign=CFP">dotJS 2026</a> - &#127467;&#127479; Paris - 18 September - Call For Papers for dotJS is open until April 28th 6 PM CET, submit now your talk proposals for the conference!</p></li><li><p>&#128220; <a href="https://github.blog/engineering/architecture-optimization/the-uphill-climb-of-making-diff-lines-performant/">GitHub - The uphill climb of making diff lines performant</a> - GitHub cut the rendering cost their React-based PR diff view. What worked includes using fewer DOM nodes and event handler, simpler CSS selectors, TanStack Virtual for large PRs, removing scattered useEffect, and more.</p></li><li><p>&#128220; <a href="https://valentinprugnaud.dev/posts/2026/04/if-you-cant-see-the-boundary-you-cant-reason-about-the-system">If You Can&#8217;t See the Boundary, You Can&#8217;t Reason About the System</a> - Explains the need to visually see the boundary of Client/Server components on the current page, and introduces a Next.js App Router tool to highlight those boundaries.</p></li><li><p>&#128220; <a href="https://programmingarehard.com/2026/04/11/contributing-to-react-router.html/">Contributing Callsite Revalidation Opt-out to React Router</a> - Explains how React Router and React Query behave differently regarding revalidation after a mutation, and motivations to contribute a new <code>unstable_defaultShouldRevalidate</code> API to React Router.</p></li><li><p>&#128220; <a href="https://tkdodo.eu/blog/the-vertical-codebase">The Vertical Codebase</a> - Colocate files by vertical features to scale your React codebase.</p></li><li><p>&#128220; <a href="https://yurimutti.com/posts/logging-nextjs-loglayer-instrumentation-console-override-structured-logs">Logging in Next.js with LogLayer: Instrumentation, Console Override, and Structured Logs</a> - Gives you one logging model across all runtimes.</p></li><li><p>&#128220; <a href="https://neciudan.dev/master-eslint-rules">Now more then ever, you need to master custom ESLint rules</a> - Deep dive into writing custom ESLint rules, with concrete React-focused examples, such as preventing useEffect antipatterns).</p></li><li><p>&#128220; <a href="https://tigerabrodi.blog/next-js-use-cache-remote-a-distributed-cache-in-one-line">Next.js use cache: remote: A Distributed Cache in One Line</a> - By default, the Cache Components feature works in memory, but it&#8217;s possible to cache data across serverless instances to increase cache hits.</p></li><li><p>&#128184; <a href="https://certificates.dev/react?friend=TWIR&amp;utm_source=twir&amp;utm_medium=newsletter&amp;utm_campaign=partner">Certificates.dev - Boost your skills with up to 6 live bootcamps led by Aurora Scharff and get React certified with our Mid &amp; Senior bundles</a></p></li><li><p>&#128230; <a href="https://mui.com/blog/introducing-mui-v9/">Material UI and MUI X 9.0</a> - This large release re-aligns the versions of the core design system and the advanced components. MUI moves from v7 straight to v9, and introduces the first Base UI-backed primitives in the codebase with new <code>NumberField</code> and <code>Menubar</code> components. MUI X also received several improvements, adding new Chat and Scheduler components in alpha.</p></li><li><p>&#128230; <a href="https://base-ui.com/react/overview/releases/v1-4-0">Base UI 1.4 - One-Time Password field (preview), update a Toast, many bug fixes</a></p></li><li><p>&#128230; <a href="https://github.com/unjs/unhead/releases/tag/v3.0.0">Unhead 3.0 - Streaming </a><code>&lt;head&gt;</code><a href="https://github.com/unjs/unhead/releases/tag/v3.0.0"> component for any framework</a></p></li><li><p>&#128230; <a href="https://github.com/orchetron/storm">Storm - Terminal UI framework based on React</a> - This new TUI addresses limitations of Ink, with cell-level diffing and dual-speed rendering architecture.</p></li><li><p>&#128230; <a href="https://github.com/styled-components/styled-components/releases/tag/styled-components%406.4.0">Styled Components 6.4 - React Server Components support, performance optimizations, RN improvements, and more</a> - The historical CSS-in-JS lib is in &#8220;maintenance mode&#8221; and yet it received a quite significant update!</p></li><li><p>&#128230; <a href="https://react-aria.adobe.com/releases/v1-17-0">React Aria 1.17 - Expandable rows in Table, window scrolling in Virtualizer, dependency consolidation, sub-path imports</a></p></li><li><p>&#128230; <a href="https://github.com/millionco/isolet">Isolet - Package any component into a self-contained, isolated widget</a></p></li><li><p>&#128230; <a href="https://github.com/kapishdima/remocn">Remocn - Production-ready animations, transitions, and scenes for Remotion</a></p></li><li><p>&#127897;&#65039; <a href="https://syntax.fm/show/995/next-js-vendor-lock-in-no-more">Syntax.fm 955 - Next.js Vendor Lock-in No More</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tCn-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9819e99-b178-4e3d-a234-3d5706f86261_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tCn-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9819e99-b178-4e3d-a234-3d5706f86261_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tCn-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9819e99-b178-4e3d-a234-3d5706f86261_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tCn-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9819e99-b178-4e3d-a234-3d5706f86261_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tCn-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9819e99-b178-4e3d-a234-3d5706f86261_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tCn-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9819e99-b178-4e3d-a234-3d5706f86261_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f9819e99-b178-4e3d-a234-3d5706f86261_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Dominik Dorfmeister&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Dominik Dorfmeister" title="Dominik Dorfmeister" srcset="https://substackcdn.com/image/fetch/$s_!tCn-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9819e99-b178-4e3d-a234-3d5706f86261_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tCn-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9819e99-b178-4e3d-a234-3d5706f86261_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tCn-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9819e99-b178-4e3d-a234-3d5706f86261_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tCn-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9819e99-b178-4e3d-a234-3d5706f86261_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/TkDodo">Dominik Dorfmeister</a></strong><a href="https://twitter.com/TkDodo">Web Developer - React-Query maintainer</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UxG9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UxG9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UxG9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UxG9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ACF0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85876ac7-0d11-4f9c-b7dc-09ad23b6b576_1200x628.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ACF0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85876ac7-0d11-4f9c-b7dc-09ad23b6b576_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ACF0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85876ac7-0d11-4f9c-b7dc-09ad23b6b576_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ACF0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85876ac7-0d11-4f9c-b7dc-09ad23b6b576_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ACF0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85876ac7-0d11-4f9c-b7dc-09ad23b6b576_1200x628.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ACF0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85876ac7-0d11-4f9c-b7dc-09ad23b6b576_1200x628.jpeg" width="1200" height="628" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/85876ac7-0d11-4f9c-b7dc-09ad23b6b576_1200x628.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:628,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Still writing tests manually?&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Still writing tests manually?" title="Still writing tests manually?" srcset="https://substackcdn.com/image/fetch/$s_!ACF0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85876ac7-0d11-4f9c-b7dc-09ad23b6b576_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ACF0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85876ac7-0d11-4f9c-b7dc-09ad23b6b576_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ACF0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85876ac7-0d11-4f9c-b7dc-09ad23b6b576_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ACF0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85876ac7-0d11-4f9c-b7dc-09ad23b6b576_1200x628.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q1&amp;utm_content=2nd">Still writing tests manually?</a></strong></p><p>Notion, Dropbox and LaunchDarkly have found a new testing paradigm - and they can&#8217;t imagine working without it. Built by <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q1&amp;utm_content=1st">ex-Palantir engineers</a>, Meticulous autonomously creates a continuously evolving suite of E2E UI tests that delivers <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q1&amp;utm_content=1st">near-exhaustive coverage</a> with <em>zero developer effort</em> - impossible to deliver by any other means.</p><p>It works like magic in the background:</p><ul><li><p>Near-exhaustive coverage on every test run</p></li><li><p>No test creation</p></li><li><p><strong>No maintenance (seriously)</strong></p></li><li><p>Zero flakes (built on a deterministic browser)</p></li></ul><p><strong>&#129320;</strong> Curious? <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q1&amp;utm_content=1st">Book in a time to learn more</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UxG9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UxG9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UxG9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UxG9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128241; React-Native</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sXc6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fb6b7f9-5a8d-430e-8a09-20b1d630a0d4_1200x630.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sXc6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fb6b7f9-5a8d-430e-8a09-20b1d630a0d4_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!sXc6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fb6b7f9-5a8d-430e-8a09-20b1d630a0d4_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!sXc6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fb6b7f9-5a8d-430e-8a09-20b1d630a0d4_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!sXc6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fb6b7f9-5a8d-430e-8a09-20b1d630a0d4_1200x630.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sXc6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fb6b7f9-5a8d-430e-8a09-20b1d630a0d4_1200x630.jpeg" width="1200" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4fb6b7f9-5a8d-430e-8a09-20b1d630a0d4_1200x630.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Pulsar - Haptic Feedback Library&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Pulsar - Haptic Feedback Library" title="Pulsar - Haptic Feedback Library" srcset="https://substackcdn.com/image/fetch/$s_!sXc6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fb6b7f9-5a8d-430e-8a09-20b1d630a0d4_1200x630.jpeg 424w, https://substackcdn.com/image/fetch/$s_!sXc6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fb6b7f9-5a8d-430e-8a09-20b1d630a0d4_1200x630.jpeg 848w, https://substackcdn.com/image/fetch/$s_!sXc6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fb6b7f9-5a8d-430e-8a09-20b1d630a0d4_1200x630.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!sXc6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fb6b7f9-5a8d-430e-8a09-20b1d630a0d4_1200x630.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://docs.swmansion.com/pulsar/">Pulsar - Haptic Feedback Library</a></strong></p><p>Meet Pulsar, a new library from Software Mansion that makes implementing haptic feedback much easier. Comes with SDKs for React Native, native iOS, and Android. See also the <a href="https://www.youtube.com/watch?v=RAunnxSlvhM">intro video</a>.</p><ul><li><p>150+ patterns to browse, filter, preview, and ship</p></li><li><p>Live Preview Playground app for testing on a physical device</p></li><li><p>Multiplatform SDKs</p></li><li><p>Audio preview for testing in a simulator</p></li><li><p>Pulsar Studio &#8211; coming later &#8211; will allow the design of custom haptic sequences</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UxG9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UxG9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UxG9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UxG9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://sentry.io/cookbook/debug-undefined-react-native/?utm_source=thisweekinreact&amp;utm_medium=paid-community&amp;utm_campaign=mobile-fy27q1-cookbook&amp;utm_content=newsletter-rn-link-rn-logs-trysentry">Sentry - A tutorial to debugging undefined properties in React Native by correlating frontend and backend logs</a></p></li><li><p>&#128064; <a href="https://github.com/swc-project/swc/pull/11702">SWC PR - Complete Hermes Flow stripping parity</a> - Currently, Babel is needed to strip non-TS code in React Native. The newly released <a href="https://swc.rs/docs/usage/flow">Flow support in SWC</a> could help you adopt an alternative toolchain, leading to build time improvements or faster unit tests.</p></li><li><p>&#128172; <a href="https://github.com/react-native-community/discussions-and-proposals/issues/993">React Native Proposal - Allow opting in to specific feature flags via public APIs</a> - Community proposal to expose experimental feature flags for testing before broad rollout.</p></li><li><p>&#128220; <a href="https://expo.dev/blog/how-to-keep-your-ota-updates-lean-and-fast">How to keep your OTA updates lean and fast</a> - Why smaller updates matter, how to ship them effectively, and how to monitor your usage.</p></li><li><p>&#128220; <a href="https://reactnativecrossroads.com/posts/react-native-085-changelog-dive/">React Native 0.85 changelog dive</a> - Analysis of 0.85&#8217;s Shadow Tree commit branching, Animation Backend changes, and breaking changes for library authors.</p></li><li><p>&#128220; <a href="https://reactnativecrossroads.com/posts/uniwind-pro-1-release/">Zero re-renders on theme change: Introducing Uniwind Pro</a> - A look into first stable release, the C++ Shadow Tree Engine, className Animations with Reanimated, Animated Theme Transitions, pricing, and more.</p></li><li><p>&#128220; <a href="https://themythicalengineer.com/the-complete-guide-to-react-native-build-optimization.html">The Complete Guide to React Native Build Optimization</a> - How to improve build times with Gradle/Metro parallelization and C++ compiler caching.</p></li><li><p>&#128230; <a href="https://github.com/facebook/react-native/releases/tag/v0.85.1">RN 0.85.1 - Animation backend as experimental</a> - Enables the new Shared Animation Backend in the <a href="https://reactnative.dev/docs/releases/release-levels">experimental Release Level</a>.</p></li><li><p>&#128230; <a href="https://github.com/margelo/react-native-nitro-fetch/releases/tag/v1.0.0">Nitro Fetch 1.0 - Fast networking library, drop-in replacement for fetch</a> - This Margelo library supports HTTP/3, Prefetching, Steaming, FormData, WebSockets, worklets, and more. Demo on &#128038; <a href="https://x.com/margelo_com/status/2043674988062859608">X</a> shows the impressive performance impact on the Bluesky app.</p></li><li><p>&#128230; <a href="https://www.callstack.com/blog/agent-react-devtools-give-ai-agents-access-to-react-internals">Agent React DevTools - Give AI Agents Access to React Internals</a> - New CLI from Callstack that exposes React component tree and profiling data to AI agents, enabling deeper debugging beyond UI trees.</p></li><li><p>&#128230; <a href="https://github.com/JubaKitiashvili/expo-pretext">Expo Pretext - Text layout primitive React Native</a> - Add Pretext support to React Native, unlocking new layouts currently difficult to achieve with CSS or Skia.</p></li><li><p>&#128230; <a href="https://github.com/gideon-del/react-native-nitro-vector">Nitro Vector - C++ vector path engine powered by Nitro Modules</a> - 104x faster bezier math, boolean ops, path analysis, and SVG parsing &#8212; all in C++ off the JS thread.</p></li><li><p>&#128230; <a href="https://github.com/steve228uk/metro-mcp">Metro MCP - MCP server for React Native debugging &amp; automation</a> - Plugin-based MCP server connecting to Metro via CDP &#8212; exposes console logs, network, Redux, components, test recording, and more. Works alongside Chrome DevTools.</p></li><li><p>&#128230; <a href="https://github.com/nandorojo/galeria/releases/tag/v3.0.0">Galeria 3.0 - New Architecture only, iOS 16+</a></p></li><li><p>&#128230; <a href="https://github.com/callstack/react-native-builder-bob/releases/tag/create-react-native-library%400.62.0">CRNL 0.62 - RN 0.85, Expo SDK 55 support</a></p></li><li><p>&#128230; <a href="https://github.com/facebook/metro/releases/tag/v0.84.3">Metro 0.84.3 - TLS support, Fast Refresh heartbeat, optimized cache</a></p></li><li><p>&#128230; <a href="https://github.com/callstackincubator/react-native-harness/releases/tag/v1.1.0">Harness 1.1 - CI improvements, unified GitHub Action, plugin system</a></p></li><li><p>&#128230; <a href="https://github.com/callstackincubator/rozenite/releases/tag/v1.7.0">Rozenite 1.7 - Metro-backed agent workflow, SQLite plugin, Webpack web support</a></p></li><li><p>&#128230; <a href="https://github.com/AppAndFlow/react-native-ease/releases/tag/v0.7.0">React Native Ease 0.7 - Animated borderColor, shadow properties</a></p></li><li><p>&#128230; <a href="https://github.com/callstackincubator/voltra/releases/tag/v1.4.0">Voltra 1.4 - Android theme-aware widget colors, Android ongoing (persistent) notifications</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=J8hmOaA5uzc">Beto - 5 React Native Styles Your AI Is Getting Wrong</a> - Linear Gradient (experimental), filter, boxShadow, gap, mixBlendMode, are available in RN, no need for external libraries.</p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=99ESJ-_CeWg">Callstack - AI-Assisted Migrations to React Native: From Months to Days</a> - Reducing migration using AI in real React Native workflows. Practical strategies for modernizing existing apps without starting from scratch.</p></li><li><p>&#127897;&#65039; <a href="https://infinite.red/react-native-radio/rnr-359-the-ai-apocalypse-the-past-present-and-future-of-software">RNR 359 - The AI Apocalypse? The past, present, and future of software</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UxG9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UxG9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UxG9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UxG9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128256; Other</strong></h2><ul><li><p>&#128064; <a href="https://github.github.com/gh-stack/">GitHub Stacked PRs in private preview</a> - A much-anticipated feature lets you break large changes into small, focused PRs that build on each other.</p></li><li><p>&#128220; <a href="https://www.inngest.com/blog/hanging-promises-for-control-flow">You can&#8217;t cancel a JavaScript promise (except sometimes you can)</a> - Using never-resolving promises to interrupt async functions.</p></li><li><p>&#128220; <a href="https://encore.dev/blog/rust-runtime">What We Learned Building a Rust Runtime for TypeScript</a> - How Encore built a Rust runtime embedded in Node.js via napi-rs, moving infrastructure concerns (HTTP, DB, pub/sub) out of the JS event loop. Benchmarks show 9x Express throughput with 80% less latency.</p></li><li><p>&#128230; <a href="https://developer.chrome.com/blog/chrome-148-beta">Chrome 148 Beta - Name-only container queries in CSS, Prompt API, Web Serial API on Android, and more</a> - Notably includes an origin trial for the <a href="https://github.com/WICG/html-in-canvas">HTML-in-Canvas</a> API that led to many impressive demos.</p></li><li><p>&#128230; <a href="https://github.com/yuku-toolchain/yuku">Yuku - High-performance JS/TS toolchain in Zig</a> - Already full spec compliance, competitive with Oxc on raw parsing speed.</p></li><li><p>&#128230; <a href="https://webpack.js.org/blog/2026-04-08-webpack-5-106/">Webpack 5.106 - Plugin validation hooks, CSS runtime injection, smarter tree shaking, experimental Oxc parser</a></p></li><li><p>&#128230; <a href="https://bun.com/blog/bun-v1.3.12">Bun 1.3.12 - WebView headless browser, Markdown in terminal, in-process Cron scheduler</a></p></li><li><p>&#128230; <a href="https://github.com/JamieMason/syncpack/releases/tag/14.0.0">Syncpack 14.0 - CLI for managing npm dependency versions, rewritten in Rust</a></p></li><li><p>&#128230; <a href="https://aejkatappaja.github.io/phantom-ui/">Phantom UI - Structure-aware skeleton loader for every framework, based on Web Component</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UxG9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UxG9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UxG9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UxG9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!UxG9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5bc2205-0963-48e3-8d67-bebb31a6c5e1_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#129325; Fun</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!H4bP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faed9b21e-c3cd-42f9-bdd3-2fb8157ba612_1000x1082.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!H4bP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faed9b21e-c3cd-42f9-bdd3-2fb8157ba612_1000x1082.jpeg 424w, https://substackcdn.com/image/fetch/$s_!H4bP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faed9b21e-c3cd-42f9-bdd3-2fb8157ba612_1000x1082.jpeg 848w, https://substackcdn.com/image/fetch/$s_!H4bP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faed9b21e-c3cd-42f9-bdd3-2fb8157ba612_1000x1082.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!H4bP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faed9b21e-c3cd-42f9-bdd3-2fb8157ba612_1000x1082.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!H4bP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faed9b21e-c3cd-42f9-bdd3-2fb8157ba612_1000x1082.jpeg" width="1000" height="1082" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aed9b21e-c3cd-42f9-bdd3-2fb8157ba612_1000x1082.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1082,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!H4bP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faed9b21e-c3cd-42f9-bdd3-2fb8157ba612_1000x1082.jpeg 424w, https://substackcdn.com/image/fetch/$s_!H4bP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faed9b21e-c3cd-42f9-bdd3-2fb8157ba612_1000x1082.jpeg 848w, https://substackcdn.com/image/fetch/$s_!H4bP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faed9b21e-c3cd-42f9-bdd3-2fb8157ba612_1000x1082.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!H4bP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faed9b21e-c3cd-42f9-bdd3-2fb8157ba612_1000x1082.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!V4Io!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fc16dfd-44f9-48bd-8912-76916a02f017_1000x757.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!V4Io!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fc16dfd-44f9-48bd-8912-76916a02f017_1000x757.jpeg 424w, https://substackcdn.com/image/fetch/$s_!V4Io!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fc16dfd-44f9-48bd-8912-76916a02f017_1000x757.jpeg 848w, https://substackcdn.com/image/fetch/$s_!V4Io!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fc16dfd-44f9-48bd-8912-76916a02f017_1000x757.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!V4Io!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fc16dfd-44f9-48bd-8912-76916a02f017_1000x757.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!V4Io!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fc16dfd-44f9-48bd-8912-76916a02f017_1000x757.jpeg" width="1000" height="757" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1fc16dfd-44f9-48bd-8912-76916a02f017_1000x757.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:757,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!V4Io!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fc16dfd-44f9-48bd-8912-76916a02f017_1000x757.jpeg 424w, https://substackcdn.com/image/fetch/$s_!V4Io!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fc16dfd-44f9-48bd-8912-76916a02f017_1000x757.jpeg 848w, https://substackcdn.com/image/fetch/$s_!V4Io!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fc16dfd-44f9-48bd-8912-76916a02f017_1000x757.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!V4Io!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fc16dfd-44f9-48bd-8912-76916a02f017_1000x757.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>See ya! &#128075;</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[This Week In React 276]]></title><description><![CDATA[Boneyard, Ink, MUI, React Router, Next.js, shadcn, Docusaurus, Comark, Forms, Shaders | RN 0.85, ViewTransition, Skia, Windows, CRNL, Maestro, True Sheet, Nitro Player, RNGH | JSIR, Security, esbuild]]></description><link>https://substack.thisweekinreact.com/p/this-week-in-react-276</link><guid isPermaLink="false">https://substack.thisweekinreact.com/p/this-week-in-react-276</guid><dc:creator><![CDATA[Sébastien Lorber]]></dc:creator><pubDate>Fri, 10 Apr 2026 12:27:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!O7CS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F497083b5-b1ad-44b8-9f1a-ebfb13e1e2a8_1462x866.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi there, <a href="https://x.com/sebastienlorber">Seb</a> and <a href="https://x.com/jaworek3211">Jan</a> here &#128075;!</p><p>This week brings a collection of smaller, yet still noteworthy, React releases and articles.</p><p>On the React Native side, v0.85 just dropped with a new Shared Animation backend. Speaking of animations, we have a little sneak peek of exciting things coming, such as <code>&lt;ViewTransition&gt;</code> and Skia Graphite.</p><p>With the recent surge in npm supply chain attacks, it&#8217;s worth reviewing the <a href="https://github.com/lirantal/npm-security-best-practices">npm Security Best Practices</a> guide to secure your setup.</p><p>Let&#8217;s dive in!</p><p>As always, thanks for supporting us on your favorite platform:</p><ul><li><p>&#129419; <a href="https://slo.im/last/b">Bluesky</a></p></li><li><p>&#10006;&#65039; <a href="https://slo.im/last/x">X / Twitter</a></p></li><li><p>&#128084; <a href="https://slo.im/last/l">LinkedIn</a></p></li><li><p>&#128125; <a href="https://slo.im/last/r">Reddit</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7kie!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58621530-8b68-4eb2-8d4c-03f8ba948c84_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7kie!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58621530-8b68-4eb2-8d4c-03f8ba948c84_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!7kie!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58621530-8b68-4eb2-8d4c-03f8ba948c84_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!7kie!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58621530-8b68-4eb2-8d4c-03f8ba948c84_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!7kie!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58621530-8b68-4eb2-8d4c-03f8ba948c84_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7kie!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58621530-8b68-4eb2-8d4c-03f8ba948c84_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/58621530-8b68-4eb2-8d4c-03f8ba948c84_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Mike Grabowski&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Mike Grabowski" title="Mike Grabowski" srcset="https://substackcdn.com/image/fetch/$s_!7kie!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58621530-8b68-4eb2-8d4c-03f8ba948c84_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!7kie!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58621530-8b68-4eb2-8d4c-03f8ba948c84_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!7kie!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58621530-8b68-4eb2-8d4c-03f8ba948c84_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!7kie!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58621530-8b68-4eb2-8d4c-03f8ba948c84_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/grabbou">Mike Grabowski</a></strong><a href="https://twitter.com/grabbou">CTO and founder - Callstack</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7HUw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7HUw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7HUw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f6d0d460-adad-429f-9123-074834af9dcd_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7HUw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AeI0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34048b2c-c7eb-48ef-a70f-41a3d4fe0cf2_1200x628.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AeI0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34048b2c-c7eb-48ef-a70f-41a3d4fe0cf2_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!AeI0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34048b2c-c7eb-48ef-a70f-41a3d4fe0cf2_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!AeI0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34048b2c-c7eb-48ef-a70f-41a3d4fe0cf2_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!AeI0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34048b2c-c7eb-48ef-a70f-41a3d4fe0cf2_1200x628.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AeI0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34048b2c-c7eb-48ef-a70f-41a3d4fe0cf2_1200x628.jpeg" width="1200" height="628" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/34048b2c-c7eb-48ef-a70f-41a3d4fe0cf2_1200x628.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:628,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Still writing tests manually?&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Still writing tests manually?" title="Still writing tests manually?" srcset="https://substackcdn.com/image/fetch/$s_!AeI0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34048b2c-c7eb-48ef-a70f-41a3d4fe0cf2_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!AeI0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34048b2c-c7eb-48ef-a70f-41a3d4fe0cf2_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!AeI0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34048b2c-c7eb-48ef-a70f-41a3d4fe0cf2_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!AeI0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34048b2c-c7eb-48ef-a70f-41a3d4fe0cf2_1200x628.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q1&amp;utm_content=1st">Still writing tests manually?</a></strong></p><p>Notion, Dropbox and LaunchDarkly have found a new testing paradigm - and they can&#8217;t imagine working without it. Built by <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q1&amp;utm_content=1st">ex-Palantir engineers</a>, Meticulous autonomously creates a continuously evolving suite of E2E UI tests that delivers <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q1&amp;utm_content=1st">near-exhaustive coverage</a> with <em>zero developer effort</em> - impossible to deliver by any other means.</p><p>It works like magic in the background:</p><ul><li><p>Near-exhaustive coverage on every test run</p></li><li><p>No test creation</p></li><li><p><strong>No maintenance (seriously)</strong></p></li><li><p>Zero flakes (built on a deterministic browser)</p></li></ul><p><strong>&#129320;</strong> Curious? <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q1&amp;utm_content=1st">Book in a time to learn more</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7HUw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7HUw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7HUw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f6d0d460-adad-429f-9123-074834af9dcd_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7HUw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#9883;&#65039; React</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!O7CS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F497083b5-b1ad-44b8-9f1a-ebfb13e1e2a8_1462x866.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!O7CS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F497083b5-b1ad-44b8-9f1a-ebfb13e1e2a8_1462x866.jpeg 424w, https://substackcdn.com/image/fetch/$s_!O7CS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F497083b5-b1ad-44b8-9f1a-ebfb13e1e2a8_1462x866.jpeg 848w, https://substackcdn.com/image/fetch/$s_!O7CS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F497083b5-b1ad-44b8-9f1a-ebfb13e1e2a8_1462x866.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!O7CS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F497083b5-b1ad-44b8-9f1a-ebfb13e1e2a8_1462x866.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!O7CS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F497083b5-b1ad-44b8-9f1a-ebfb13e1e2a8_1462x866.jpeg" width="1456" height="862" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/497083b5-b1ad-44b8-9f1a-ebfb13e1e2a8_1462x866.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:862,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Boneyard - Auto-generated skeleton screens&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Boneyard - Auto-generated skeleton screens" title="Boneyard - Auto-generated skeleton screens" srcset="https://substackcdn.com/image/fetch/$s_!O7CS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F497083b5-b1ad-44b8-9f1a-ebfb13e1e2a8_1462x866.jpeg 424w, https://substackcdn.com/image/fetch/$s_!O7CS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F497083b5-b1ad-44b8-9f1a-ebfb13e1e2a8_1462x866.jpeg 848w, https://substackcdn.com/image/fetch/$s_!O7CS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F497083b5-b1ad-44b8-9f1a-ebfb13e1e2a8_1462x866.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!O7CS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F497083b5-b1ad-44b8-9f1a-ebfb13e1e2a8_1462x866.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://boneyard.vercel.app/">Boneyard - Auto-generated skeleton screens</a></strong></p><p>Instead of manually creating skeleton screens for loading states, this innovative library snapshots your real UI at various breakpoints and captures skeleton &#8220;bones&#8221; - positioned, sized rectangles that mirror the layout exactly. It supports React, React Native, and other frameworks.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7HUw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7HUw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7HUw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f6d0d460-adad-429f-9123-074834af9dcd_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7HUw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://cwb.sh/platano?r=seb">Platano - Ship a revenue-ready AI image app this weekend. You know React? That&#8217;s all you need to launch on the App Store.</a></p></li><li><p>&#128467; <a href="https://reactsummit.com/?utm_source=thisweekinreact">React Summit</a> - &#127475;&#127473; Amsterdam - 12 &amp; 16 Jun. Catch the latest in React with inspiring talks, networking, and Amsterdam adventures. Save on tickets with promo code TWIR (-10%) !</p></li><li><p>&#128220; <a href="https://aurorascharff.no/posts/the-precompute-pattern-encoding-dynamic-data-into-urls-in-nextjs/">The Precompute Pattern: Encoding Dynamic Data into URLs in Next.js</a> - An advanced technique to maximize the ability for Next.js to pre-render pages. It works particularly well for low cardinality variants such as feature flags and auth status.</p></li><li><p>&#128220; <a href="https://developer.mozilla.org/en-US/blog/mdn-front-end-deep-dive/">Under the hood of MDN&#8217;s new frontend</a> - MDN launched a new frontend, replacing their old and difficult-to-maintain React CRA app for a new stack. They implemented their own Server Components system on top of Lit and Custom Elements, using Declarative Shadow DOM as a progressive enhancement.</p></li><li><p>&#128220; <a href="https://blog.railway.com/p/moving-railways-frontend-off-nextjs">Moving Railway&#8217;s Frontend Off Next.js</a> - Feedback on migrating a Page Router app with 200+ routes to TanStack Start in 2 PRs with zero downtime. Their app now builds faster, has a more explicit model, and layout composition is easier.</p></li><li><p>&#128220; <a href="https://neciudan.dev/you-really-really-dont-need-an-effect">You really, really, really don&#8217;t need an effect! I swear!</a> - And even when you need one (data fetching), someone already wrote that effect better than you will (React Query).</p></li><li><p>&#128220; <a href="https://tigerabrodi.blog/how-to-implement-spring-physics-buttons-with-framer-motion">How to implement spring physics buttons with Framer Motion</a></p></li><li><p>&#128184; <a href="https://certificates.dev/react?friend=TWIR&amp;utm_source=twir&amp;utm_medium=newsletter&amp;utm_campaign=partner">Certificates.dev - Go beyond tutorials. Get certified with real-world React coding exams prepped by Aurora Scharff. Trusted by 680 companies</a></p></li><li><p>&#128230; <a href="https://github.com/vadimdemedes/ink/releases/tag/v7.0.0">Ink 7.0 - React renderer for CLIs</a> - Unsurprisingly, this package has become quite popular with the rise of AI and terminal apps. This major version upgrades to Node 22, React 19.2, and adds many new hooks, features, and props.</p></li><li><p>&#128230; <a href="https://comark.dev/">Comark - Fast, streaming-ready Markdown parser with support for React and more</a> - An interesting alternative to Streamdown or MDX, coming from the Nuxt team.</p></li><li><p>&#128230; <a href="https://docusaurus.io/blog/releases/3.10">Docusaurus 3.10 - Security, Docusaurus Faster stable, VCS API, Strict MDX, Site Storage stable</a> - A milestone release to prepare for Docusaurus v4.</p></li><li><p>&#128230; <a href="https://shaders.com/">Shaders beta - The component library for creative WebGPU effects in the browser</a> - A nice solution for modern creative web dev, coming with first-class React components. Commercial usage of React components is free, although there&#8217;s a paid offering.</p></li><li><p>&#128230; <a href="https://github.com/react-hook-form/react-hook-form/releases/tag/v7.72.0">React Hook Form 7.72 - Built-in form-level validation</a> - Useful feature for cross-field validation.</p></li><li><p>&#128230; <a href="https://github.com/edmundhung/conform/releases/tag/v1.18.0">Conform 1.18 - Progressively enhance HTML forms with React</a></p></li><li><p>&#128230; <a href="https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7140">React Router 7.14 - Support for Vite 8, unstable RSC Framework Mode improvements</a></p></li><li><p>&#128230; <a href="https://ui.shadcn.com/docs/changelog/2026-04-shadcn-apply">shadcn CLI 4.2 - New </a><code>shadcn apply</code><a href="https://ui.shadcn.com/docs/changelog/2026-04-shadcn-apply"> command to switch presets easily</a></p></li><li><p>&#128230; <a href="https://github.com/mui/material-ui/releases/tag/v9.0.0">Material UI 9.0 - Accessibility improvements, sx prop performance, and cleanup of deprecated APIs</a></p></li><li><p>&#128230; <a href="https://mantine.dev/changelog/9-0-0/">Mantine 9.0 - New components: Scheduling, FloatingWindow, OverflowList, Marquee, and more</a></p></li><li><p>&#128230; <a href="https://github.com/amannn/next-intl/releases/tag/v4.9.0">Next-Intl 4.9 - Support </a><code>&lt;Link transitionTypes&gt;</code></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=NBjycPpPHQQ">Web Dev Simplified - You Need To Start Using This Underrated React Hook - </a><code>useSyncExternalStore</code></p></li><li><p>&#127909; <a href="https://www.youtube.com/playlist?list=PL53Z0yyYnpWhsizNWtlnyM7XWFUSw437J">React Paris 2026 - YouTube Playlist</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SdVa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc293f8a3-d2f1-4cb3-95a2-8abd57beb746_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SdVa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc293f8a3-d2f1-4cb3-95a2-8abd57beb746_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!SdVa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc293f8a3-d2f1-4cb3-95a2-8abd57beb746_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!SdVa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc293f8a3-d2f1-4cb3-95a2-8abd57beb746_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!SdVa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc293f8a3-d2f1-4cb3-95a2-8abd57beb746_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SdVa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc293f8a3-d2f1-4cb3-95a2-8abd57beb746_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c293f8a3-d2f1-4cb3-95a2-8abd57beb746_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;William Candillon&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="William Candillon" title="William Candillon" srcset="https://substackcdn.com/image/fetch/$s_!SdVa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc293f8a3-d2f1-4cb3-95a2-8abd57beb746_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!SdVa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc293f8a3-d2f1-4cb3-95a2-8abd57beb746_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!SdVa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc293f8a3-d2f1-4cb3-95a2-8abd57beb746_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!SdVa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc293f8a3-d2f1-4cb3-95a2-8abd57beb746_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/wcandillon">William Candillon</a></strong><a href="https://twitter.com/wcandillon">React-Native animations expert - Youtuber</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7HUw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7HUw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7HUw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f6d0d460-adad-429f-9123-074834af9dcd_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7HUw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nz9k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfdd450e-bd66-4bd6-987e-df45bb507755_1200x567.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nz9k!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfdd450e-bd66-4bd6-987e-df45bb507755_1200x567.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nz9k!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfdd450e-bd66-4bd6-987e-df45bb507755_1200x567.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nz9k!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfdd450e-bd66-4bd6-987e-df45bb507755_1200x567.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nz9k!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfdd450e-bd66-4bd6-987e-df45bb507755_1200x567.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nz9k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfdd450e-bd66-4bd6-987e-df45bb507755_1200x567.jpeg" width="1200" height="567" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dfdd450e-bd66-4bd6-987e-df45bb507755_1200x567.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:567,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;No breakpoints, no console.log &#8212; just AI &amp; time travel&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="No breakpoints, no console.log &#8212; just AI &amp; time travel" title="No breakpoints, no console.log &#8212; just AI &amp; time travel" srcset="https://substackcdn.com/image/fetch/$s_!nz9k!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfdd450e-bd66-4bd6-987e-df45bb507755_1200x567.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nz9k!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfdd450e-bd66-4bd6-987e-df45bb507755_1200x567.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nz9k!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfdd450e-bd66-4bd6-987e-df45bb507755_1200x567.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nz9k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfdd450e-bd66-4bd6-987e-df45bb507755_1200x567.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://wallabyjs.com/?referrer=ThisWeekInReact8Apr26">No breakpoints, no console.log &#8212; just AI &amp; time travel</a></strong></p><p>15x faster TypeScript and JavaScript debugging than with breakpoints and <code>console.log</code>, while upgrading your AI agent into an expert debugger with real-time context.</p><p>Wallaby.js runs your tests as you type, feeding your AI assistant live runtime values, code coverage, error details, and execution paths &#8212; all right next to your code. With <a href="https://wallabyjs.com/blog/wallaby-v3.html?referrer=ThisWeekInReact8Apr26">Wallaby v3&#8217;s new engine</a> &#128640;, tests start instantly with cached results, prioritize active files, and stream updates in real time.</p><p>Built for testing, Wallaby includes a <strong>Time Travel Debugger</strong>, the ability to run only opened files, full-context AI integration, smart test runs, and more.</p><p><a href="https://wallabyjs.com/?referrer=ThisWeekInReact8Apr26">&#10145;&#65039; Learn More</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7HUw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7HUw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7HUw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f6d0d460-adad-429f-9123-074834af9dcd_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7HUw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128241; React-Native</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bera!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99110b59-b258-4a30-b771-842830f4e60c_1200x701.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bera!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99110b59-b258-4a30-b771-842830f4e60c_1200x701.jpeg 424w, https://substackcdn.com/image/fetch/$s_!bera!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99110b59-b258-4a30-b771-842830f4e60c_1200x701.jpeg 848w, https://substackcdn.com/image/fetch/$s_!bera!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99110b59-b258-4a30-b771-842830f4e60c_1200x701.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!bera!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99110b59-b258-4a30-b771-842830f4e60c_1200x701.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bera!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99110b59-b258-4a30-b771-842830f4e60c_1200x701.jpeg" width="1200" height="701" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/99110b59-b258-4a30-b771-842830f4e60c_1200x701.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:701,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;React Native 0.85&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="React Native 0.85" title="React Native 0.85" srcset="https://substackcdn.com/image/fetch/$s_!bera!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99110b59-b258-4a30-b771-842830f4e60c_1200x701.jpeg 424w, https://substackcdn.com/image/fetch/$s_!bera!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99110b59-b258-4a30-b771-842830f4e60c_1200x701.jpeg 848w, https://substackcdn.com/image/fetch/$s_!bera!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99110b59-b258-4a30-b771-842830f4e60c_1200x701.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!bera!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99110b59-b258-4a30-b771-842830f4e60c_1200x701.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://reactnative.dev/blog/2026/04/07/react-native-0.85">React Native 0.85</a></strong></p><p>React Native 0.85 notably ships with a new Shared Animation Backend built in collaboration with Software Mansion, alongside a few other improvements and breaking changes:</p><ul><li><p><strong>Shared Animation Backend</strong>: This new internal engine will soon be enabled in React Native 0.85.1 and power both Animated and Reanimated. It enables performance benefits for Reanimated, and the core Animated API will finally animate layout props through the native driver!</p></li><li><p><strong>DevTools Improvements</strong>: Multiple simultaneous CDP connections allow you to debug with DevTools, VS Code, and AI agents simultaneously without sessions dropping.</p></li><li><p><strong>Metro TLS Support</strong>: HTTPS and WSS during development for testing secure APIs.</p></li><li><p><strong>Breaking Changes</strong>: Jest preset moved to <code>@react-native/jest-preset</code>, dropped EOL Node versions, and removed <code>StyleSheet.absoluteFillObject</code>.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7HUw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7HUw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7HUw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f6d0d460-adad-429f-9123-074834af9dcd_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7HUw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://go.posthog.com/twir-apr8">Product for Engineers - What we wish we knew about building AI agents</a></p></li><li><p>&#128064; <a href="https://github.com/facebook/react/pull/35764">React PR - ViewTransition support for React Native Fabric</a> - Behind a flag, not ready for prime time, but this is one of many PRs showing that <code>&lt;ViewTransition&gt;</code> for React Native is being actively worked on!</p></li><li><p>&#128064; <a href="https://github.com/Shopify/react-native-skia/pull/3813">React Native Skia - First Graphite pre-release</a>- Google&#8217;s next-gen Skia renderer (Vulkan/Metal/Dawn) comes to RN Skia, now available in the <code>@next</code> distribution channel.</p></li><li><p>&#128220; <a href="https://expo.dev/blog/expo-brownfield-how-to-add-expo-to-your-existing-native-app-without-a-rewrite">Expo brownfield: How to add Expo to your existing native app without a rewrite</a> - SDK 55 introduced a new &#8220;isolated&#8221; approach to integrate Expo in an existing native app. The Expo app is built ahead of time and distributed as a native binary artifact</p></li><li><p>&#128220; <a href="https://heartit.tech/react-native-jsi-deep-dive-part-1-the-runtime-you-never-see/">React Native JSI Deep Dive Series</a> - Comprehensive 12-part series covering JSI internals, from C++ architecture to TurboModule integration.</p></li><li><p>&#128220; <a href="https://www.callstack.com/blog/how-we-optimized-agent-device-for-mobile-app-automation">How We Optimized Agent Device for Mobile App Automation</a> - Deep dive on reducing LLM token usage by 50% for AI-driven mobile testing through accessibility snapshots and smarter context management.</p></li><li><p>&#128230; <a href="https://devblogs.microsoft.com/react-native/%F0%9F%9A%80react-native-windows-v0-82-is-here/">RN Windows 0.82 - Fabric-only, XAML UI Hosting</a> - Community modules can now embed native XAML controls directly in Fabric. New accessibility override API gives third-party modules fine-grained control over screen reader behavior.</p></li><li><p>&#128230; <a href="https://github.com/callstack/react-native-builder-bob/releases/tag/create-react-native-library%400.60.0">Create React Native Library 0.60 - Experimental C++ TurboModule, Vite web support for examples</a> - New templates can now scaffold experimental C++ TurboModules for native development. You can now test both native and web support without custom configuration.</p></li><li><p>&#128230; <a href="https://maestro.dev/blog/maestro-cli-2-4-0">Maestro CLI 2.4 - iOS 26 support, new </a><code>list-device</code><a href="https://maestro.dev/blog/maestro-cli-2-4-0"> commands for easier device selection</a></p></li><li><p>&#128230; <a href="https://sheet.lodev09.com/blog/release-3-10">True Sheet 3.10 - iOS 26 scroll edge effects, grabber accessibility</a></p></li><li><p>&#128230; <a href="https://nitroplayer.riteshshukla.in/">Nitro Player 1.0 - Audio player with playlist management, playback controls, and support for Android Auto and CarPlay</a></p></li><li><p>&#128230; <a href="https://github.com/Shopify/react-native-skia/releases/tag/v2.6.0">Skia 2.6 - New immutable Path API</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion/react-native-gesture-handler/releases/tag/v2.31.0">Gesture Handler 2.31 - Various bug fixes, fix unresponsive handlers</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7HUw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7HUw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7HUw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f6d0d460-adad-429f-9123-074834af9dcd_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7HUw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128256; Other</strong></h2><ul><li><p>&#128064; <a href="https://discourse.llvm.org/t/rfc-jsir-a-high-level-ir-for-javascript/90456">JSIR - A High-Level IR for JavaScript (RFC)</a> - Google&#8217;s new JavaScript IR (Intermediate Representation) proposal for static analysis. Already used internally for code analysis and deobfuscation, notably decompiling Hermes bytecode.</p></li><li><p>&#128220; <a href="https://socket.dev/blog/hidden-blast-radius-of-the-axios-compromise">The Hidden Blast Radius of the Axios Compromise</a> - Last week, the popular <code>axios</code> library got compromised through a <a href="https://socket.dev/blog/axios-maintainer-confirms-social-engineering-behind-npm-compromise">sophisticated social engineering attack</a>. Even if your app doesn&#8217;t depend on the library, you may still be affected through transitive dependencies or using <code>npx</code> in critical CI workflows.</p></li><li><p>&#128220; <a href="https://frontendmasters.com/blog/what-to-know-in-javascript-2026-edition/">What To Know in JavaScript (2026 Edition)</a> - Comprehensive roundup covering ES2025/2026 features, framework updates, runtime landscape, and build tools.</p></li><li><p>&#128220; <a href="https://polypane.app/blog/the-intl-api-the-best-browser-api-youre-not-using/">The Intl API: The best browser API you&#8217;re not using</a></p></li><li><p>&#128230; <a href="https://www.bram.us/2026/04/02/view-transitions-toolkit/">View Transitions Toolkit - Utility functions for View Transitions</a> - Filling in gaps for advanced View Transitions patterns. Feature detection, animation optimization, playback control, and automatic navigation types.</p></li><li><p>&#128230; <a href="https://eslint.org/blog/2026/04/eslint-v10.2.0-released/">ESLint 10.2 - Language-aware rules, Temporal support</a></p></li><li><p>&#128230; <a href="https://github.com/evanw/esbuild/releases/tag/v0.28.0">esbuild 0.28 - Import Text proposal, integrity checks</a></p></li><li><p>&#128230; <a href="https://github.com/sindresorhus/ky/releases/tag/v2.0.0">Ky 2.0 - JavaScript HTTP client based on the Fetch API</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7HUw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7HUw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7HUw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f6d0d460-adad-429f-9123-074834af9dcd_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7HUw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!7HUw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d0d460-adad-429f-9123-074834af9dcd_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#129325; Fun</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ez0G!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e54c34f-51d2-467f-ba9b-e59d0eb3c755_948x266.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ez0G!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e54c34f-51d2-467f-ba9b-e59d0eb3c755_948x266.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ez0G!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e54c34f-51d2-467f-ba9b-e59d0eb3c755_948x266.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ez0G!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e54c34f-51d2-467f-ba9b-e59d0eb3c755_948x266.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ez0G!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e54c34f-51d2-467f-ba9b-e59d0eb3c755_948x266.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ez0G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e54c34f-51d2-467f-ba9b-e59d0eb3c755_948x266.jpeg" width="948" height="266" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8e54c34f-51d2-467f-ba9b-e59d0eb3c755_948x266.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:266,&quot;width&quot;:948,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!ez0G!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e54c34f-51d2-467f-ba9b-e59d0eb3c755_948x266.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ez0G!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e54c34f-51d2-467f-ba9b-e59d0eb3c755_948x266.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ez0G!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e54c34f-51d2-467f-ba9b-e59d0eb3c755_948x266.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ez0G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e54c34f-51d2-467f-ba9b-e59d0eb3c755_948x266.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KLI5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8ea7d8-c724-4f4d-b2cb-71727490100e_1000x1121.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KLI5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8ea7d8-c724-4f4d-b2cb-71727490100e_1000x1121.jpeg 424w, https://substackcdn.com/image/fetch/$s_!KLI5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8ea7d8-c724-4f4d-b2cb-71727490100e_1000x1121.jpeg 848w, https://substackcdn.com/image/fetch/$s_!KLI5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8ea7d8-c724-4f4d-b2cb-71727490100e_1000x1121.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!KLI5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8ea7d8-c724-4f4d-b2cb-71727490100e_1000x1121.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KLI5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8ea7d8-c724-4f4d-b2cb-71727490100e_1000x1121.jpeg" width="1000" height="1121" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0f8ea7d8-c724-4f4d-b2cb-71727490100e_1000x1121.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1121,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!KLI5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8ea7d8-c724-4f4d-b2cb-71727490100e_1000x1121.jpeg 424w, https://substackcdn.com/image/fetch/$s_!KLI5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8ea7d8-c724-4f4d-b2cb-71727490100e_1000x1121.jpeg 848w, https://substackcdn.com/image/fetch/$s_!KLI5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8ea7d8-c724-4f4d-b2cb-71727490100e_1000x1121.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!KLI5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f8ea7d8-c724-4f4d-b2cb-71727490100e_1000x1121.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>See ya! &#128075;</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[This Week In React 275]]></title><description><![CDATA[&#9883;&#65039; Next.js, TanStack RSC, React Compiler, Inertia, Astro, Trusted Types, Signals | &#128241; ExecuTorch, Unistyles, RN.run, Preflight, Confetti, AI, Lynx | &#128256; Pretext, Axios, Node, Playwright, Turborep]]></description><link>https://substack.thisweekinreact.com/p/this-week-in-react-275</link><guid isPermaLink="false">https://substack.thisweekinreact.com/p/this-week-in-react-275</guid><dc:creator><![CDATA[Sébastien Lorber]]></dc:creator><pubDate>Fri, 03 Apr 2026 13:07:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!tQOh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d462314-95f6-441f-b4ea-17a4b21e893d_1200x628.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi everyone, <a href="https://x.com/sebastienlorber">Seb</a> and <a href="https://x.com/jaworek3211">Jan</a> here &#128075;!</p><p>This week, we have news about popular React meta-frameworks. Next.js Adapters API should help host it anywhere without compromise. TanStack Start unveils a preview of its React Server Components. The React Compiler port to Rust is being actively worked on.</p><p>No major announcement in the React Native world, but still many interesting releases. React Native v0.85 should be released next week.</p><p>Axios has been compromised in a major supply chain attack. Stay safe and make sure to adopt security best practices!</p><p>Let&#8217;s dive in!</p><p>As always, thanks for supporting us on your favorite platform:</p><ul><li><p>&#129419; <a href="https://slo.im/last/b">Bluesky</a></p></li><li><p>&#10006;&#65039; <a href="https://slo.im/last/x">X / Twitter</a></p></li><li><p>&#128084; <a href="https://slo.im/last/l">LinkedIn</a></p></li><li><p>&#128125; <a href="https://slo.im/last/r">Reddit</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hfxy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa94156ca-7abc-4ca0-a858-d2bd12b65591_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hfxy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa94156ca-7abc-4ca0-a858-d2bd12b65591_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!hfxy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa94156ca-7abc-4ca0-a858-d2bd12b65591_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!hfxy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa94156ca-7abc-4ca0-a858-d2bd12b65591_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!hfxy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa94156ca-7abc-4ca0-a858-d2bd12b65591_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hfxy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa94156ca-7abc-4ca0-a858-d2bd12b65591_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a94156ca-7abc-4ca0-a858-d2bd12b65591_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Evan Bacon&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Evan Bacon" title="Evan Bacon" srcset="https://substackcdn.com/image/fetch/$s_!hfxy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa94156ca-7abc-4ca0-a858-d2bd12b65591_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!hfxy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa94156ca-7abc-4ca0-a858-d2bd12b65591_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!hfxy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa94156ca-7abc-4ca0-a858-d2bd12b65591_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!hfxy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa94156ca-7abc-4ca0-a858-d2bd12b65591_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/Baconbrix">Evan Bacon</a></strong><a href="https://twitter.com/Baconbrix">Engineering Manager - Expo</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CtH_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CtH_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CtH_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CtH_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IMMp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54003e91-1fed-4be1-b06f-74bdf77c8973_1200x628.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IMMp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54003e91-1fed-4be1-b06f-74bdf77c8973_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!IMMp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54003e91-1fed-4be1-b06f-74bdf77c8973_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!IMMp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54003e91-1fed-4be1-b06f-74bdf77c8973_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!IMMp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54003e91-1fed-4be1-b06f-74bdf77c8973_1200x628.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IMMp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54003e91-1fed-4be1-b06f-74bdf77c8973_1200x628.jpeg" width="1200" height="628" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/54003e91-1fed-4be1-b06f-74bdf77c8973_1200x628.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:628,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Still writing tests manually?&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Still writing tests manually?" title="Still writing tests manually?" srcset="https://substackcdn.com/image/fetch/$s_!IMMp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54003e91-1fed-4be1-b06f-74bdf77c8973_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!IMMp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54003e91-1fed-4be1-b06f-74bdf77c8973_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!IMMp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54003e91-1fed-4be1-b06f-74bdf77c8973_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!IMMp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54003e91-1fed-4be1-b06f-74bdf77c8973_1200x628.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=11march&amp;utm_content=1st">Still writing tests manually?</a></strong></p><p>Notion, Dropbox and LaunchDarkly have found a new testing paradigm - and they can&#8217;t imagine working without it. Built by <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=11march&amp;utm_content=2nd">ex-Palantir engineers</a>, Meticulous autonomously creates a continuously evolving suite of E2E UI tests that delivers <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=11march&amp;utm_content=2nd">near-exhaustive coverage</a> with <em>zero developer effort</em> - impossible to deliver by any other means.</p><p>It works like magic in the background:</p><ul><li><p>Near-exhaustive coverage on every test run</p></li><li><p>No test creation</p></li><li><p><strong>No maintenance (seriously)</strong></p></li><li><p>Zero flakes (built on a deterministic browser)</p></li></ul><p><strong>&#129320;</strong> Curious? <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=11march&amp;utm_content=2nd">Book in a time to learn more</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CtH_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CtH_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CtH_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CtH_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#9883;&#65039; React</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tQOh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d462314-95f6-441f-b4ea-17a4b21e893d_1200x628.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tQOh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d462314-95f6-441f-b4ea-17a4b21e893d_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tQOh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d462314-95f6-441f-b4ea-17a4b21e893d_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tQOh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d462314-95f6-441f-b4ea-17a4b21e893d_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tQOh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d462314-95f6-441f-b4ea-17a4b21e893d_1200x628.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tQOh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d462314-95f6-441f-b4ea-17a4b21e893d_1200x628.jpeg" width="1200" height="628" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2d462314-95f6-441f-b4ea-17a4b21e893d_1200x628.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:628,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Next.js Across Platforms: Adapters, OpenNext, and Our Commitments&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Next.js Across Platforms: Adapters, OpenNext, and Our Commitments" title="Next.js Across Platforms: Adapters, OpenNext, and Our Commitments" srcset="https://substackcdn.com/image/fetch/$s_!tQOh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d462314-95f6-441f-b4ea-17a4b21e893d_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tQOh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d462314-95f6-441f-b4ea-17a4b21e893d_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tQOh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d462314-95f6-441f-b4ea-17a4b21e893d_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tQOh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d462314-95f6-441f-b4ea-17a4b21e893d_1200x628.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://nextjs.org/blog/nextjs-across-platforms">Next.js Across Platforms: Adapters, OpenNext, and Our Commitments</a></strong></p><p>Next.js 16.2 now ships with a stable, typed, versioned Adapter API. It was built in collaboration with many partners: OpenNext, Netlify, Cloudflare, AWS Amplify, and Google Cloud. This helps ensure Next.js works well on every platform across all its features. There&#8217;s now a public test suite to verify your adapter, and Vercel also relies on it.</p><p>The <a href="https://nextjs.org/ecosystem-working-group">Next.js Ecosystem Working Group</a> explains Vercel&#8217;s commitment. Partners will not participate in Next.js design decisions and roadmap, but can still impact it through feedback. They will be kept in the loop early, have time to adapt, and get direct support to fix adapter breakage.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CtH_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CtH_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CtH_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CtH_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TpX8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F391193d1-9165-45d3-bfc1-c2d9eb0beaf4_1200x656.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TpX8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F391193d1-9165-45d3-bfc1-c2d9eb0beaf4_1200x656.jpeg 424w, https://substackcdn.com/image/fetch/$s_!TpX8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F391193d1-9165-45d3-bfc1-c2d9eb0beaf4_1200x656.jpeg 848w, https://substackcdn.com/image/fetch/$s_!TpX8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F391193d1-9165-45d3-bfc1-c2d9eb0beaf4_1200x656.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!TpX8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F391193d1-9165-45d3-bfc1-c2d9eb0beaf4_1200x656.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TpX8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F391193d1-9165-45d3-bfc1-c2d9eb0beaf4_1200x656.jpeg" width="1200" height="656" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/391193d1-9165-45d3-bfc1-c2d9eb0beaf4_1200x656.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:656,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;TanStart Start RSC preview&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="TanStart Start RSC preview" title="TanStart Start RSC preview" srcset="https://substackcdn.com/image/fetch/$s_!TpX8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F391193d1-9165-45d3-bfc1-c2d9eb0beaf4_1200x656.jpeg 424w, https://substackcdn.com/image/fetch/$s_!TpX8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F391193d1-9165-45d3-bfc1-c2d9eb0beaf4_1200x656.jpeg 848w, https://substackcdn.com/image/fetch/$s_!TpX8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F391193d1-9165-45d3-bfc1-c2d9eb0beaf4_1200x656.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!TpX8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F391193d1-9165-45d3-bfc1-c2d9eb0beaf4_1200x656.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#127909; <strong><a href="https://youtu.be/8XGcc-FRPuo?si=VnH91DpiPI35PFB4&amp;t=1167">TanStart Start RSC preview</a></strong></p><p>Tanner Linsley gave a talk at React Paris last week. The 2nd part unveils for the first time what React Server Components will look like in TanStack Start, to be released very soon.</p><p>My highlights:</p><ul><li><p><strong>Primitives</strong>: You have full flexibility to decide how to compose these RSC APIs, and can adopt them incrementally. RSC flight payloads are just streams of text; you can sync/cache/persist/manipulate these on your own terms.</p></li><li><p><strong>Composite Components</strong>: You don&#8217;t need <code>&#8217;use client&#8217;</code> directives, although they are supported. This new concept creates an explicit boundary between the server and the client. I assume it should be possible to co-locate client/server components in the same file.</p></li><li><p><strong>No Server Actions</strong>: A design decision for security reasons, but you can use server functions with validation.</p></li></ul><p>What strikes me is just how different this is from Next.js. It feels more like a library than a framework, and it seems more in sync with the philosophy that initially attracted me to React: you make your own decisions, even though sometimes more flexibility means more glue code and ways to shoot yourself in the foot. In any case, I agree with Tanner: we deserve another React meta-framework&#8212;one that&#8217;s less opinionated and innovates in a different direction.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CtH_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CtH_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CtH_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CtH_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://crowdin.info/AII2d2o">Lingui - Lightweight, developer-first i18n tooling for modern product teams</a></p></li><li><p>&#128064; <a href="https://github.com/facebook/react/pull/36173">React Compiler PR - WIP port of React Compiler to Rust</a> - As previously announced, the React Compiler is being ported to Rust through AI. The algorithm is the same, based on a Rust-based Babel AST, already passing 100% of the Babel integration fixture tests. The goal is to integrate nicely with Babel, SWC, and OXC.</p></li><li><p>&#128064; <a href="https://github.com/facebook/react/pull/35816">React PR - Enable Trusted Types integration</a> - The browser Trusted Types API is now Baseline Newly Available, and React now integrates with it to prevent XSS and force you to sanitize unsafe inputs. For example, with <code>dangerouslySetInnerHTML={{__html: policy.createHTML(text)}}</code>.</p></li><li><p>&#128064; <a href="https://github.com/vercel/next.js/pull/92012">Next.js PR - </a><code>experimental.useOffline with retries + hook to show offline indicator</code></p></li><li><p>&#128064; <a href="https://github.com/TanStack/query/pull/10359">TanStack Query ESLint PR - Add </a><code>prefer-query-options</code><a href="https://github.com/TanStack/query/pull/10359"> rule</a></p></li><li><p>&#128467;&#65039; <a href="https://www.dotjs.io/?utm_source=twir&amp;utm_medium=newsletter&amp;utm_campaign=EB">dotJS 2026</a> - &#127467;&#127479; Paris - 18 September - Early bird tickets are available until April 14th 6 PM CET, save 100&#8364; on the next price. dotJS comes with dotAI on September 17, book now your early bird ticket for each conference, or a combo to attend both.</p></li><li><p>&#128220; <a href="https://tanstack.com/blog/tanstack-router-signal-graph">TanStack Router&#8217;s New Reactive Core: A Signal Graph</a> - They refactored the router state store, splitting it into many small stores using signals, leading to more efficient fine-grained subscriptions. The original <code>router.state</code> is still a public API, but now derived from the smaller store.</p></li><li><p>&#128220; <a href="https://tigerabrodi.blog/when-do-you-really-need-starttransition">When Do You Really Need startTransition?</a> - When an update triggers expensive rendering.</p></li><li><p>&#128220; <a href="https://julesblom.com/writing/colocated-svg-defs">Hoistable SVG Defs in React</a> - How to colocate SVG <code>&lt;defs&gt;</code> with components instead of centralizing them.</p></li><li><p>&#128220; <a href="https://handlewithcare.dev/blog/making_react_prosemirror_really_really_fast/">Making React ProseMirror really, really fast</a></p></li><li><p>&#128220; <a href="https://neciudan.dev/lets-build-dynamic-shimmer-skeletons">Build your own shimmer skeleton that never goes out of sync</a></p></li><li><p>&#128220; <a href="https://inside-react.vercel.app/blog/how-does-react-fiber-render-your-ui">How Does React Fiber Render Your UI</a></p></li><li><p>&#128184; <a href="https://go.posthog.com/twir-apr1">Product for Engineers - WTF does a product manager do? (and why engineers should care)</a></p></li><li><p>&#128230; <a href="https://laravel.com/blog/inertia-v3-whats-changed-since-the-first-beta">Inertia 3.0 - Build React/modern SPAs with server-based routers</a> - This solution to integrate React and other frontend frameworks with traditional backends (optimized for Laravel) now comes with a Vite 8 plugin, SSR in dev, optimistic updates, and more.</p></li><li><p>&#128230; <a href="https://tanstack.com/blog/tanstack-db-0.6-app-ready-with-persistence-and-includes">TanStack DB 0.6 - Persistence, Offline Support, and Hierarchical Data</a></p></li><li><p>&#128230; <a href="https://astro.build/blog/astro-610/">Astro 6.1 - Improved image optimization, markdown config, expose i18n fallback routes</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!My1S!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e17d273-4537-492e-95b8-aeb63d03d02d_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!My1S!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e17d273-4537-492e-95b8-aeb63d03d02d_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!My1S!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e17d273-4537-492e-95b8-aeb63d03d02d_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!My1S!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e17d273-4537-492e-95b8-aeb63d03d02d_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!My1S!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e17d273-4537-492e-95b8-aeb63d03d02d_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!My1S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e17d273-4537-492e-95b8-aeb63d03d02d_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7e17d273-4537-492e-95b8-aeb63d03d02d_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Mike Grabowski&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Mike Grabowski" title="Mike Grabowski" srcset="https://substackcdn.com/image/fetch/$s_!My1S!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e17d273-4537-492e-95b8-aeb63d03d02d_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!My1S!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e17d273-4537-492e-95b8-aeb63d03d02d_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!My1S!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e17d273-4537-492e-95b8-aeb63d03d02d_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!My1S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e17d273-4537-492e-95b8-aeb63d03d02d_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/grabbou">Mike Grabowski</a></strong><a href="https://twitter.com/grabbou">CTO and founder - Callstack</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CtH_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CtH_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CtH_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CtH_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QV59!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc6901fa-1603-478f-8163-0ad33f33a5cc_2879x1420.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QV59!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc6901fa-1603-478f-8163-0ad33f33a5cc_2879x1420.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QV59!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc6901fa-1603-478f-8163-0ad33f33a5cc_2879x1420.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QV59!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc6901fa-1603-478f-8163-0ad33f33a5cc_2879x1420.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QV59!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc6901fa-1603-478f-8163-0ad33f33a5cc_2879x1420.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QV59!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc6901fa-1603-478f-8163-0ad33f33a5cc_2879x1420.jpeg" width="1456" height="718" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fc6901fa-1603-478f-8163-0ad33f33a5cc_2879x1420.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:718,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Atomic CRM: The Open-Source CRM Toolkit for Developers&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Atomic CRM: The Open-Source CRM Toolkit for Developers" title="Atomic CRM: The Open-Source CRM Toolkit for Developers" srcset="https://substackcdn.com/image/fetch/$s_!QV59!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc6901fa-1603-478f-8163-0ad33f33a5cc_2879x1420.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QV59!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc6901fa-1603-478f-8163-0ad33f33a5cc_2879x1420.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QV59!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc6901fa-1603-478f-8163-0ad33f33a5cc_2879x1420.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QV59!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc6901fa-1603-478f-8163-0ad33f33a5cc_2879x1420.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://github.com/marmelab/atomic-crm">Atomic CRM: The Open-Source CRM Toolkit for Developers</a></strong></p><p>Stop struggling with locked-in CRMs and expensive seats. Atomic CRM gives you the power of a professional CRM with the total freedom of open-source.</p><p>It&#8217;s the only toolkit that combines a high-end user experience with data sovereignty. No more lock-in, no more &#8220;renting&#8221; your contacts.</p><p>Everything you need is already there:</p><ul><li><p><strong>Native Mobile App</strong> for on-the-go access.</p></li><li><p><strong>Intuitive Kanban Boards</strong> for pipeline management.</p></li><li><p><strong>Built-in Email Tracking</strong> to stay on top of leads.</p></li><li><p><strong>Free SSO</strong> for seamless team integration.</p></li><li><p><strong>MCP Server Integration</strong> for productivity gains.</p></li></ul><p>Why settle for a black box SaaS when you can own the entire platform? <a href="https://marmelab.com/atomic-crm/">Deploy Atomic CRM</a> on your own infrastructure in minutes and regain control over your most valuable asset: your data.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CtH_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CtH_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CtH_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CtH_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128241; React-Native</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nKU1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2454471-4b97-43c3-a8c6-2505239e4b5c_1200x972.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nKU1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2454471-4b97-43c3-a8c6-2505239e4b5c_1200x972.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nKU1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2454471-4b97-43c3-a8c6-2505239e4b5c_1200x972.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nKU1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2454471-4b97-43c3-a8c6-2505239e4b5c_1200x972.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nKU1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2454471-4b97-43c3-a8c6-2505239e4b5c_1200x972.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nKU1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2454471-4b97-43c3-a8c6-2505239e4b5c_1200x972.jpeg" width="1200" height="972" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b2454471-4b97-43c3-a8c6-2505239e4b5c_1200x972.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:972,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;RN ExecuTorch 0.8&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="RN ExecuTorch 0.8" title="RN ExecuTorch 0.8" srcset="https://substackcdn.com/image/fetch/$s_!nKU1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2454471-4b97-43c3-a8c6-2505239e4b5c_1200x972.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nKU1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2454471-4b97-43c3-a8c6-2505239e4b5c_1200x972.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nKU1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2454471-4b97-43c3-a8c6-2505239e4b5c_1200x972.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nKU1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2454471-4b97-43c3-a8c6-2505239e4b5c_1200x972.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://github.com/software-mansion/react-native-executorch/releases/tag/v0.8.0">RN ExecuTorch 0.8</a></strong></p><p>Software Mansion just dropped the biggest release to date for React Native ExecuTorch. Version 0.8 expands the library&#8217;s capabilities far beyond its initial scope, introducing official support for bare React Native applications (no longer strictly tied to Expo) and deep integration with Vision Camera.</p><p><strong>Key callouts:</strong></p><ul><li><p><strong>Vision Camera Integration:</strong> You can now seamlessly run ExecuTorch models directly on camera frames in real-time.</p></li><li><p><strong>New Computer Vision Models:</strong> The release introduces powerful new CV hooks, such as <code>useInstanceSegmentation</code> and <code>useSemanticSegmentation</code>.</p></li><li><p><strong>Bare RN Support:</strong> You can now use ExecuTorch in bare React Native apps by utilizing the bare React Native resource fetcher instead of the Expo one.</p></li><li><p><strong>Expanded NLP:</strong> Continues to grow its Natural Language Processing suite with implementations for Speech-to-Text, Text-to-Speech, Text Embeddings, and more.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CtH_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CtH_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CtH_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CtH_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://frontendmasters.com/courses/react-performance-v2/?utm_source=reactweekly&amp;utm_medium=email&amp;utm_campaign=reactperf">Make React apps fast where it actually matters. Learn how to diagnose real bottlenecks and fix slow, janky React apps using modern React 19 patterns.</a></p></li><li><p>&#128064; <a href="https://vue.lynxjs.org/">Lynx Vue</a> - Vue + Lynx = Vue Native? An AI-powered attempt to bridge native development with a popular framework.</p></li><li><p>&#128467;&#65039; <a href="https://appjs.co/?utm_source=thisweekinreact">App.js Conf</a> - &#127477;&#127473; Krak&#243;w - 27-29 May - Join Charlie Cheever, William Candillon, Jay Meistrich, Perttu L&#228;hteenlahti, and more! Prices increase in May&#8212;secure your seat now. Get a 15% discount with code &#8220;TWIR&#8221;.</p></li><li><p>&#128220; <a href="https://expo.dev/blog/how-fig-keeps-millions-eating-safely-with-a-five-engineer-team-and-expo">Fig case study</a> - How five engineers can scale to millions of users with Expo to provide crucial info about dietary needs.<br>&#128230; <a href="https://github.com/RamboWasReal/react-native-preflight">Preflight - Simplify Maestro E2E testing for React Native</a> - deep link to any screen, inject state, compare visual regressions with reports, router agnostic.</p></li><li><p>&#128230; <a href="https://github.com/AlirezaHadjar/react-native-fast-confetti/releases/tag/v2.0.0-beta.2">Fast Confetti 2.0</a> - Rewritten composition API and physics engine, more customization and natural feeling animations.</p></li><li><p>&#128230; <a href="https://www.reactnative.run/">ReactNative.run</a> - Run React Native in a browser, Metro bundler mapped to the web. Similar concept to Expo Snack.</p></li><li><p>&#128230; <a href="https://github.com/callstackincubator/agent-device/releases/tag/v0.11.0%20">Agent Device 0.11</a> - iOS Simulator no longer takes focus from the current window + lots of fixes and small features</p></li><li><p>&#128230; <a href="https://www.callstack.com/blog/brownie-a-type-safe-shared-state-workflow-for-brownfield-react-native">Brownie 3.5 - Shared-State Workflow for Brownfield now with Android support.</a></p></li><li><p>&#128230; <a href="https://github.com/Guccio163/react-native-reshuffled">Reshuffled 0.2 - Nitro-powered grid layout - onDragEnd worklet callbacks</a></p></li><li><p>&#128230; <a href="https://github.com/infinitered/reactotron/releases/tag/reactotron-app%403.9.0">Reactotron 3.9 - MCP server integration</a></p></li><li><p>&#128230; <a href="https://github.com/pawicao/react-native-header-motion/releases/tag/v1.0.0">React Native Header Motion 1.0 - New context-first header API, explicit navigation bridging, better performance</a></p></li><li><p>&#128230; <a href="https://github.com/jpudysz/react-native-unistyles/releases/tag/v3.2.0">Unistyles 3.2 - Add support for dropShadow, Suspense trees, RTL ShadowTree updates on Android</a></p></li><li><p>&#128230; <a href="https://github.com/MeliValesca/react-native-morph-card">Morph Card - Native card-to-modal morph transition</a></p></li><li><p>&#129302; <a href="https://github.com/software-mansion-labs/skills/tree/main/skills/react-native-best-practices">Software Mansion skills</a> - Best practices, AI skills for animations, gestures, SVG, and libraries maintained by SWM.</p></li><li><p>&#129302; <a href="https://github.com/react-navigation/skills">React Navigation AI skills</a> - Official guidelines that help with migration to newer versions and static config.</p></li><li><p>&#129302; <a href="https://www.callstack.com/blog/announcing-codex-plugins-for-react-native-development">Codex plugins for React Native development</a> - Build and test RN apps in Codex.</p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=t3rTRMDoev8">William Candillon - React Native WebGPU in 100 seconds</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=EWZZ-qekCW0">Beto - react-i18next in React Native &amp; Expo</a></p></li><li><p>&#127897;&#65039; <a href="https://infinite.red/react-native-radio/rnr-358-react-native-for-meta-quest-part-2-developer-friendly">React Native Radio 358 - React Native for Meta Quest Part 2: Developer Friendly</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CtH_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CtH_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CtH_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CtH_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128256; Other</strong></h2><ul><li><p>&#9888;&#65039; <a href="https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan">axios Compromised on npm - Malicious Versions Drop Remote Access Trojan</a> - <code>axios@1.14.1</code> and <code>axios@0.30.4</code> have been compromised for approximately 4 hours on 30 March, and you might have too if you installed dependencies during that time frame. Even if you don&#8217;t use it directly, it&#8217;s probably a transitive dependency in your projects. Make sure to follow the defensive measures, such as adding <code>min-release-age=7d</code> to your <code>.npmrc</code>.</p></li><li><p>&#128220; <a href="https://willybrauner.com/journal/signal-the-push-pull-based-algorithm">Signals, the push-pull based algorithm</a></p></li><li><p>&#128230; <a href="https://github.com/chenglou/pretext">Pretext - Text measurement and layout algorithm in pure TypeScript</a> - This innovative lib went viral this week, with fun/impressive but useless demos everywhere. However, the lib unlocks real new possibilities that are impossible or inefficient to achieve with DOM/CSS, as explained in this related article: <a href="https://denodell.com/blog/youre-looking-at-the-wrong-pretext-demo">You&#8217;re Looking at the Wrong Pretext Demo</a>.</p></li><li><p>&#128230; <a href="https://developer.chrome.com/blog/element-scoped-view-transitions">Chrome 147 - </a><code>Element.startViewTransition()</code> - The first browser to ship element-scoped view transitions, enabling multiple view transitions to run simultaneously.</p></li><li><p>&#128230; <a href="https://github.com/microsoft/playwright/releases/tag/v1.59.0">Playwright 1.59 - Screencast recording, observability for agents, </a><code>await using</code> - New features that could be helpful to give feedback to AI agents, and post review videos in PRs.</p></li><li><p>&#128230; <a href="https://vercel.com/blog/making-turborepo-ninety-six-percent-faster-with-agents-sandboxes-and-humans">Turborepo 2.9 - 96% faster with agents, sandboxes, and humans</a></p></li><li><p>&#128230; <a href="https://github.com/huggingface/transformers.js/releases/tag/4.0.0">Transformers.js 4.0 - Machine Learning for the web - New WebGPU backend</a></p></li><li><p>&#128230; <a href="https://nodejs.org/en/blog/release/v25.9.0">Node.js 25.9 - Test runner module mocking improvements, </a><code>using</code><a href="https://nodejs.org/en/blog/release/v25.9.0"> + AsyncLocalStorage, </a><code>stream/iter</code><a href="https://nodejs.org/en/blog/release/v25.9.0"> API</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CtH_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CtH_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CtH_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CtH_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!CtH_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eb40e50-a649-40ad-88a7-06c825890f59_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#129325; Fun</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!awSM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9cd7593-ad16-4f19-8ab8-5e6b23a43c3e_1158x236.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!awSM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9cd7593-ad16-4f19-8ab8-5e6b23a43c3e_1158x236.jpeg 424w, https://substackcdn.com/image/fetch/$s_!awSM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9cd7593-ad16-4f19-8ab8-5e6b23a43c3e_1158x236.jpeg 848w, https://substackcdn.com/image/fetch/$s_!awSM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9cd7593-ad16-4f19-8ab8-5e6b23a43c3e_1158x236.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!awSM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9cd7593-ad16-4f19-8ab8-5e6b23a43c3e_1158x236.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!awSM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9cd7593-ad16-4f19-8ab8-5e6b23a43c3e_1158x236.jpeg" width="1158" height="236" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d9cd7593-ad16-4f19-8ab8-5e6b23a43c3e_1158x236.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:236,&quot;width&quot;:1158,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!awSM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9cd7593-ad16-4f19-8ab8-5e6b23a43c3e_1158x236.jpeg 424w, https://substackcdn.com/image/fetch/$s_!awSM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9cd7593-ad16-4f19-8ab8-5e6b23a43c3e_1158x236.jpeg 848w, https://substackcdn.com/image/fetch/$s_!awSM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9cd7593-ad16-4f19-8ab8-5e6b23a43c3e_1158x236.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!awSM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9cd7593-ad16-4f19-8ab8-5e6b23a43c3e_1158x236.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KOBM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1fa4771-d6ec-4e7e-97e4-1d6b9a28a376_1000x692.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KOBM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1fa4771-d6ec-4e7e-97e4-1d6b9a28a376_1000x692.jpeg 424w, https://substackcdn.com/image/fetch/$s_!KOBM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1fa4771-d6ec-4e7e-97e4-1d6b9a28a376_1000x692.jpeg 848w, https://substackcdn.com/image/fetch/$s_!KOBM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1fa4771-d6ec-4e7e-97e4-1d6b9a28a376_1000x692.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!KOBM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1fa4771-d6ec-4e7e-97e4-1d6b9a28a376_1000x692.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KOBM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1fa4771-d6ec-4e7e-97e4-1d6b9a28a376_1000x692.jpeg" width="1000" height="692" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a1fa4771-d6ec-4e7e-97e4-1d6b9a28a376_1000x692.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:692,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!KOBM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1fa4771-d6ec-4e7e-97e4-1d6b9a28a376_1000x692.jpeg 424w, https://substackcdn.com/image/fetch/$s_!KOBM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1fa4771-d6ec-4e7e-97e4-1d6b9a28a376_1000x692.jpeg 848w, https://substackcdn.com/image/fetch/$s_!KOBM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1fa4771-d6ec-4e7e-97e4-1d6b9a28a376_1000x692.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!KOBM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1fa4771-d6ec-4e7e-97e4-1d6b9a28a376_1000x692.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>See ya! &#128075;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[This Week In React 274]]></title><description><![CDATA[&#9883;&#65039; Next.js, React Router, Storybook, HeroUI, Remotion, Lucide, useEffect | &#128241; Reanimated, Worklets, Nitro Fetch, Navigation, Rozenite, MMKV, Windows, Swift | &#128256; TypeScript, Signals, Zero, Valibot]]></description><link>https://substack.thisweekinreact.com/p/this-week-in-react-274</link><guid isPermaLink="false">https://substack.thisweekinreact.com/p/this-week-in-react-274</guid><dc:creator><![CDATA[Sébastien Lorber]]></dc:creator><pubDate>Fri, 27 Mar 2026 14:14:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pTvN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2cd2caf-cfa0-4864-995c-ec43eefca740_1200x628.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi everyone, Seb here &#128075;!</p><p>This week: a new Next.js release, a React Aria-based UI library, Remotion updates, Storybook MCP, and more.</p><p>On React Native, multi-threading keeps improving (Worklets, Reanimated), and React Navigation v8 looks close.</p><p>Sorry for the weird duplicate email last week, just a mistake &#128517;</p><p>As always, thanks for supporting us on your favorite platform:</p><ul><li><p>&#129419; <a href="https://slo.im/last/b">Bluesky</a></p></li><li><p>&#10006;&#65039; <a href="https://slo.im/last/x">X / Twitter</a></p></li><li><p>&#128084; <a href="https://slo.im/last/l">LinkedIn</a></p></li><li><p>&#128125; <a href="https://slo.im/last/r">Reddit</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_TYJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86e3b5b7-3a59-4954-b093-e49a68213420_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_TYJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86e3b5b7-3a59-4954-b093-e49a68213420_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!_TYJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86e3b5b7-3a59-4954-b093-e49a68213420_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!_TYJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86e3b5b7-3a59-4954-b093-e49a68213420_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!_TYJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86e3b5b7-3a59-4954-b093-e49a68213420_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_TYJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86e3b5b7-3a59-4954-b093-e49a68213420_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/86e3b5b7-3a59-4954-b093-e49a68213420_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Jack Herrington&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Jack Herrington" title="Jack Herrington" srcset="https://substackcdn.com/image/fetch/$s_!_TYJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86e3b5b7-3a59-4954-b093-e49a68213420_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!_TYJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86e3b5b7-3a59-4954-b093-e49a68213420_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!_TYJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86e3b5b7-3a59-4954-b093-e49a68213420_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!_TYJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86e3b5b7-3a59-4954-b093-e49a68213420_400x400.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/jherr">Jack Herrington</a></strong><a href="https://twitter.com/jherr">Principal Engineer - Youtuber</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Hu_h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Hu_h!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Hu_h!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2bkQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8f279ae-1817-464c-9c6f-29af5c971bca_1200x628.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2bkQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8f279ae-1817-464c-9c6f-29af5c971bca_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!2bkQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8f279ae-1817-464c-9c6f-29af5c971bca_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!2bkQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8f279ae-1817-464c-9c6f-29af5c971bca_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!2bkQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8f279ae-1817-464c-9c6f-29af5c971bca_1200x628.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2bkQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8f279ae-1817-464c-9c6f-29af5c971bca_1200x628.jpeg" width="1200" height="628" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f8f279ae-1817-464c-9c6f-29af5c971bca_1200x628.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:628,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Still writing tests manually?&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Still writing tests manually?" title="Still writing tests manually?" srcset="https://substackcdn.com/image/fetch/$s_!2bkQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8f279ae-1817-464c-9c6f-29af5c971bca_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!2bkQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8f279ae-1817-464c-9c6f-29af5c971bca_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!2bkQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8f279ae-1817-464c-9c6f-29af5c971bca_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!2bkQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8f279ae-1817-464c-9c6f-29af5c971bca_1200x628.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=26q1&amp;utm_content=1st">Still writing tests manually?</a></strong></p><p>Notion, Dropbox and LaunchDarkly have found a new testing paradigm - and they can&#8217;t imagine working without it. Built by <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=11march&amp;utm_content=2nd">ex-Palantir engineers</a>, Meticulous autonomously creates a continuously evolving suite of E2E UI tests that delivers <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=11march&amp;utm_content=2nd">near-exhaustive coverage</a> with <em>zero developer effort</em> - impossible to deliver by any other means.</p><p>It works like magic in the background:</p><ul><li><p>Near-exhaustive coverage on every test run</p></li><li><p>No test creation</p></li><li><p><strong>No maintenance (seriously)</strong></p></li><li><p>Zero flakes (built on a deterministic browser)</p></li></ul><p><strong>&#129320;</strong> Curious? <a href="https://www.meticulous.ai/?utm_source=thisweekinreact&amp;utm_medium=newsletter&amp;utm_campaign=11march&amp;utm_content=2nd">Book in a time to learn more</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Hu_h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Hu_h!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Hu_h!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#9883;&#65039; React</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pTvN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2cd2caf-cfa0-4864-995c-ec43eefca740_1200x628.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pTvN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2cd2caf-cfa0-4864-995c-ec43eefca740_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!pTvN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2cd2caf-cfa0-4864-995c-ec43eefca740_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!pTvN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2cd2caf-cfa0-4864-995c-ec43eefca740_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!pTvN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2cd2caf-cfa0-4864-995c-ec43eefca740_1200x628.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pTvN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2cd2caf-cfa0-4864-995c-ec43eefca740_1200x628.jpeg" width="1200" height="628" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b2cd2caf-cfa0-4864-995c-ec43eefca740_1200x628.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:628,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Next.js 16.2&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Next.js 16.2" title="Next.js 16.2" srcset="https://substackcdn.com/image/fetch/$s_!pTvN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2cd2caf-cfa0-4864-995c-ec43eefca740_1200x628.jpeg 424w, https://substackcdn.com/image/fetch/$s_!pTvN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2cd2caf-cfa0-4864-995c-ec43eefca740_1200x628.jpeg 848w, https://substackcdn.com/image/fetch/$s_!pTvN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2cd2caf-cfa0-4864-995c-ec43eefca740_1200x628.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!pTvN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2cd2caf-cfa0-4864-995c-ec43eefca740_1200x628.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://nextjs.org/blog/next-16-2">Next.js 16.2</a></strong></p><p>A great minor release that comes with significant performance improvements, but also impactful DX improvements and new interesting features:</p><ul><li><p>~400% faster <code>next dev</code> startup</p></li><li><p>~50% faster rendering thanks to a React core RSC contribution</p></li><li><p>Redesigned error page</p></li><li><p>Server Function logging in dev</p></li><li><p><code>next dev --inspect</code> to attach a Node.js debugger</p></li><li><p>Link <code>transitionTypes</code></p></li><li><p>Dev Overlay now renders <code>Error.cause</code> and a hydration diff indicator to identify client/server</p></li><li><p>Many new experimental features</p></li><li><p><a href="https://nextjs.org/blog/next-16-2-ai">AI improvements</a>: generates <code>AGENTS.md</code> to read versioned docs for agents, browser log forwarding, agent devtools CLI.</p></li><li><p><a href="https://nextjs.org/blog/next-16-2-turbopack">Turbopack improvements</a>: Faster builds, Server Fast Refresh, tree shaking of dynamic imports, PostCSS config, Subresource Integrity, inline loader config, and more.</p></li></ul><p>Related resources:</p><ul><li><p>&#128220;<a href="https://aurorascharff.no/posts/implementing-nextjs-16-use-cache-with-next-intl-internationalization/">Implementing Next.js 16 &#8216;use cache&#8217; with next-intl Internationalization</a> - Recently updated to include usage of the new <code>experimental.rootParams</code> feature, letting cached components read the locale directly instead of receiving it as a prop.</p></li><li><p>&#128220; <a href="https://aurorascharff.no/posts/error-handling-in-nextjs-with-catch-error">Error Handling in Next.js with catchError</a> - This new <code>unstable_catchError()</code> API is a framework-aware alternative to <code>react-error-boundary</code> that discards Next.js control flow errors and can refetch RSC data.</p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=PXq6awYzfT8">Ankita Kulkarni - Next.js 16.2 Just Changed AI Coding Forever</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Hu_h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Hu_h!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Hu_h!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://go.posthog.com/twir-mar25">Product for Engineers - WTF does a product manager do? (and why engineers should care)</a></p></li><li><p>&#128220; <a href="https://neciudan.dev/name-your-effects">Start naming your useEffect functions, you will thank me later</a> - Advocates for giving an inline name to Effect functions to convey your intent, even if it&#8217;s encapsulated within a custom hook. If you can&#8217;t find a decent name, maybe the Effect does too much or should not exist.</p></li><li><p>&#128220; <a href="https://saschb2b.com/blog/use-hook-react">use(): The Hook That Breaks the Rules (On Purpose)</a></p></li><li><p>&#128220; <a href="https://tkdodo.eu/blog/test-ids-are-an-a11y-smell">Test IDs are an a11y smell</a></p></li><li><p>&#128220; <a href="https://raphaelbronsveld.com/blog/type-safety-in-react-router">Type Safety in React Router</a></p></li><li><p>&#128220; <a href="https://pavi2410.com/blog/post-react-compiler-coding-guide/">Post-React Compiler React Coding Guide (For AI Agents)</a></p></li><li><p>&#128184; <a href="https://blog.sentry.io/setting-up-next-js-source-maps-sentry/?utm_source=thisweekinreact&amp;utm_medium=paid-community&amp;utm_campaign=nextjs-fy27q1-nextjs&amp;utm_content=newsletter-link-blog-sourcemaps-learnmore">Sentry - Why your Next.js stack traces point to random chunks (and how to fix it)</a></p></li><li><p>&#128230; <a href="https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7132">React Router 7.13.1 &amp; 7.13.2</a> - Recent patches introduced new unstable APIs such as the <code>getRequest()</code> API for RSCs, and a future flag to access &#8220;pass-through&#8221; (un-normalized) <code>Request</code> objects. The <code>&lt;Link unstable_mask&gt;</code> makes it easier to implement URL masking, letting you replicate Instagram-like UX: open gallery images in a modal, and render them full screen on refresh.</p></li><li><p>&#128230; <a href="https://heroui.com/docs/react/releases/v3-0-0">HeroUI 3.0</a> - We usually don&#8217;t feature most UI libraries, but this one, based on React Aria and Tailwind, has been cooking for a while, and looks more polished than the average UI lib. Although it&#8217;s not a cross-platform abstraction, it offers a React Native variant using similar composition patterns and design tokens.</p></li><li><p>&#128230; <a href="https://github.com/storybookjs/storybook/releases/tag/v10.3.0">Storybook 10.3 - MCP, Vite 8, Next.js 16.2, ESLint 10</a> - There&#8217;s a dedicated article on the <a href="https://storybook.js.org/blog/storybook-mcp-for-react/">Storybook MCP for React</a><strong>.</strong></p></li><li><p>&#128230; <a href="https://lucide.dev/guide/version-1">Lucide Icons 1.0</a> - Quite popular icon solution in React and shacn/ui.</p></li><li><p>&#128230; <a href="https://github.com/facebook/lexical/releases/tag/v0.42.0">Lexical 0.42 - Extensible text editor framework from Meta</a></p></li><li><p>&#128230; <a href="https://github.com/ddoemonn/hiraki">Hiraki - Zero-dependency React drawer component</a></p></li><li><p>&#128230; <a href="https://github.com/vercel-labs/json-render/pull/240">json-render Ink - Generative UI for the terminal, comes with 27 React components</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=EayVHo7XTEg">Jonny Burger - Remotion is getting even better!</a> - Cool features landed recently in the React video creation tool, such as Light Leaks, Sound Effects, Rspack, and AI-related improvements. Let&#8217;s not forget the <a href="https://www.youtube.com/watch?v=ppYO5COPGXk">integration with Vercel Sandbox</a>: I wouldn&#8217;t be surprised if we could soon fully vibe-code videos directly in the cloud.</p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QIeC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdde36c70-a2bd-4335-a144-5f77b69b1b80_400x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QIeC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdde36c70-a2bd-4335-a144-5f77b69b1b80_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QIeC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdde36c70-a2bd-4335-a144-5f77b69b1b80_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QIeC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdde36c70-a2bd-4335-a144-5f77b69b1b80_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QIeC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdde36c70-a2bd-4335-a144-5f77b69b1b80_400x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QIeC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdde36c70-a2bd-4335-a144-5f77b69b1b80_400x400.jpeg" width="400" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dde36c70-a2bd-4335-a144-5f77b69b1b80_400x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Evan Bacon&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Evan Bacon" title="Evan Bacon" srcset="https://substackcdn.com/image/fetch/$s_!QIeC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdde36c70-a2bd-4335-a144-5f77b69b1b80_400x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QIeC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdde36c70-a2bd-4335-a144-5f77b69b1b80_400x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QIeC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdde36c70-a2bd-4335-a144-5f77b69b1b80_400x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QIeC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdde36c70-a2bd-4335-a144-5f77b69b1b80_400x400.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://twitter.com/Baconbrix">Evan Bacon</a></strong><a href="https://twitter.com/Baconbrix">Engineering Manager - Expo</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Hu_h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Hu_h!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Hu_h!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128184; Sponsor</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!habS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa84abe91-c9ae-4463-95ef-2813945f2cf4_1200x600.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!habS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa84abe91-c9ae-4463-95ef-2813945f2cf4_1200x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!habS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa84abe91-c9ae-4463-95ef-2813945f2cf4_1200x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!habS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa84abe91-c9ae-4463-95ef-2813945f2cf4_1200x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!habS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa84abe91-c9ae-4463-95ef-2813945f2cf4_1200x600.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!habS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa84abe91-c9ae-4463-95ef-2813945f2cf4_1200x600.jpeg" width="1200" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a84abe91-c9ae-4463-95ef-2813945f2cf4_1200x600.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;React Native for Fire TV App Development&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="React Native for Fire TV App Development" title="React Native for Fire TV App Development" srcset="https://substackcdn.com/image/fetch/$s_!habS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa84abe91-c9ae-4463-95ef-2813945f2cf4_1200x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!habS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa84abe91-c9ae-4463-95ef-2813945f2cf4_1200x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!habS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa84abe91-c9ae-4463-95ef-2813945f2cf4_1200x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!habS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa84abe91-c9ae-4463-95ef-2813945f2cf4_1200x600.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://fandf.co/4cGtUp9">React Native for Fire TV App Development</a></strong></p><p>Your existing React Native codebase can now run on Fire TV with minimal changes,&#8239;thanks to Amazon Developer&#8217;s new operating system, Vega.&#8239;What&#8217;s&#8239;included:&#8239;&#8239;</p><ul><li><p>40+ open-source libraries you already rely on, like reanimated&#8239;</p></li><li><p>Reduced bundle size&#8239;-&#8239;React Native is built into the OS and dynamically linked&#8239;</p></li><li><p>Vega Module Resolver Preset (VMRP)&#8239;to&#8239;automatically replace libraries with their Vega-platform ported equivalencies&#8239;</p></li><li><p>Vega Studio, a VS code-extension,&#8239;for building, testing, and&#8239;optimizing&#8239;Vega apps&#8239;</p></li></ul><p>Ready&#8239;to&#8239;reach new audiences?&#8239;Check out&#8239;our&#8239;getting started guide.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Hu_h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Hu_h!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Hu_h!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128241; React-Native</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3atr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9632f3a6-ae4e-4d63-8fda-71cf386b370c_1200x480.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3atr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9632f3a6-ae4e-4d63-8fda-71cf386b370c_1200x480.jpeg 424w, https://substackcdn.com/image/fetch/$s_!3atr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9632f3a6-ae4e-4d63-8fda-71cf386b370c_1200x480.jpeg 848w, https://substackcdn.com/image/fetch/$s_!3atr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9632f3a6-ae4e-4d63-8fda-71cf386b370c_1200x480.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!3atr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9632f3a6-ae4e-4d63-8fda-71cf386b370c_1200x480.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3atr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9632f3a6-ae4e-4d63-8fda-71cf386b370c_1200x480.jpeg" width="1200" height="480" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9632f3a6-ae4e-4d63-8fda-71cf386b370c_1200x480.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:480,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Worklets 0.8 - Shareable, Bundle mode improvements&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Worklets 0.8 - Shareable, Bundle mode improvements" title="Worklets 0.8 - Shareable, Bundle mode improvements" srcset="https://substackcdn.com/image/fetch/$s_!3atr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9632f3a6-ae4e-4d63-8fda-71cf386b370c_1200x480.jpeg 424w, https://substackcdn.com/image/fetch/$s_!3atr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9632f3a6-ae4e-4d63-8fda-71cf386b370c_1200x480.jpeg 848w, https://substackcdn.com/image/fetch/$s_!3atr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9632f3a6-ae4e-4d63-8fda-71cf386b370c_1200x480.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!3atr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9632f3a6-ae4e-4d63-8fda-71cf386b370c_1200x480.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><a href="https://github.com/software-mansion/react-native-reanimated/releases/tag/worklets-0.8.0">Worklets 0.8 - Shareable, Bundle mode improvements</a></p><p>It&#8217;s now easier to use the Bundle mode, which unlocks running <a href="https://x.com/swmansion/status/2036489933490110922">more complex things in background threads</a>. Also read the dedicated article on <a href="https://x.com/swmansion/status/2034667004297183312">Shareable &#8211; shared memory&#8217;s missing piece</a>, a runtime-bound shared memory primitive that was extracted from Reanimated, and that you can now use for non-animation use cases too!</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Hu_h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Hu_h!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Hu_h!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>&#128184; <a href="https://frontendmasters.com/courses/react-performance-v2/?utm_source=reactweekly&amp;utm_medium=email&amp;utm_campaign=reactperf">Make React apps fast where it actually matters. Learn how to diagnose real bottlenecks and fix slow, janky React apps using modern React 19 patterns.</a></p></li><li><p>&#128272; <a href="https://www.aikido.dev/blog/glassworm-strikes-react-packages-phone-numbers">Glassworm Strikes Popular React Native Phone Number Packages in Supply Chain Attack</a> - Affects <code>react-native-country-select</code> and <code>react-native-international-phone-number</code>.</p></li><li><p>&#128220; <a href="https://codewithbeto.dev/blog/glow-input-reanimated-css">Glow Effect on TextInput with Reanimated CSS Animations</a></p></li><li><p>&#128220; <a href="https://expo.dev/blog/how-fieldy-adopted-expo-for-their-ai-wearable">From skeptic to convert: how Fieldy adopted Expo for their AI wearable</a></p></li><li><p>&#128230; <a href="https://github.com/software-mansion/react-native-reanimated/releases">Reanimated 4.3 - CSS animations for SVG, Shared Values on multiple threads, typesafety</a></p></li><li><p>&#128230; <a href="https://github.com/react-navigation/react-navigation/releases/tag/%40react-navigation%2Fcore%407.17.0">React Navigation 7.17 - New </a><code>.with()</code><a href="https://github.com/react-navigation/react-navigation/releases/tag/%40react-navigation%2Fcore%407.17.0"> method on static config to add a wrapper around the navigator</a> - Also available in v8.alpha. React Navigation <a href="https://x.com/reactnavigation/status/2036819119194964031">wants us to use the Static API</a> more. It unlocks automatic type inference and deep linking, and yet covers most dynamic use cases.</p></li><li><p>&#128230; <a href="https://github.com/googlemaps/react-native-navigation-sdk">React Native Navigation SDK</a> - TIL that Google provides an official React Native library for Google Maps (in beta).</p></li><li><p>&#128230; <a href="https://www.swift.org/blog/swift-6.3-released/">Swift 6.3 - C interop, module selectors, Swift Build preview, Android SDK, and more</a></p></li><li><p>&#128230; <a href="https://github.com/margelo/react-native-nitro-fetch/releases/tag/v0.2.0">Nitro Fetch 0.2 - Add support for Streaming, formData, AbortController, RN 0.85</a></p></li><li><p>&#128230; <a href="https://github.com/microsoft/react-native-windows/releases/tag/react-native-windows_v0.82.0">React Native Windows 0.82 - New-Architecture only</a></p></li><li><p>&#128230; <a href="https://github.com/callstackincubator/rozenite/releases">Rozenite 1.5 &amp; 1.6 - DevTools for AI Agents, new File System plugin</a></p></li><li><p>&#128230; <a href="https://github.com/mrousavy/react-native-mmkv/releases/tag/v4.3.0">MMKV 4.3 - MMKV upgrade, </a><code>compareBeforeSet</code><a href="https://github.com/mrousavy/react-native-mmkv/releases/tag/v4.3.0"> optimization, configure default log level at build time</a></p></li><li><p>&#128230; <a href="https://github.com/uni-stack/uniwind/releases/tag/v1.6.0">Uniwind 1.6 - Border curve utilities</a></p></li><li><p>&#128230; <a href="https://github.com/wix/Detox/releases">Detox 20.48-50 - Support simulator launch </a><code>--arch</code><a href="https://github.com/wix/Detox/releases">, liquidGlass overlay</a></p></li><li><p>&#128230; <a href="https://github.com/callstackincubator/agent-device/releases/tag/v0.10.0">Agent Device 0.10 - Can control macOS apps</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=zUfPhL_EU2Y">Beto - React Navigation v8 Crash Course &#8212; Liquid Glass, Tabs &amp; More</a></p></li><li><p>&#127909; <a href="https://www.youtube.com/watch?v=OwgUx22bU0U">notJust.dev - State of React Native - What&#8217;s new in 2026</a></p></li><li><p>&#127897;&#65039; <a href="https://infinite.red/react-native-radio/rnr-357-react-native-082084-expo-55">RNR 357 - React Native 0.82&#8211;0.84 &amp; Expo 55</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Hu_h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Hu_h!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Hu_h!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#128256; Other</strong></h2><ul><li><p>&#128220; <a href="https://shift.infinite.red/fix-flaky-jest-tests-in-ci-with-maxworkers-and-why-it-works-e3d3189f35a4">Fix Flaky Jest Tests in CI with maxWorkers (and why it works)</a> - Tests parallelization can lead to timeouts, but you can fine-tune parameters to reduce test time and flakiness.</p></li><li><p>&#128220; <a href="https://adventures.nodeland.dev/archive/who-is-responsible-for-ai-generated-code/">Who Is Responsible for AI-Generated Code?</a> - Will Node.js ban AI-generated code from its core, even when there&#8217;s a human in the loop?</p></li><li><p>&#128220; <a href="https://43081j.com/2026/03/three-pillars-of-javascript-bloat">The Three Pillars of JavaScript Bloat</a></p></li><li><p>&#128230; <a href="https://devblogs.microsoft.com/typescript/announcing-typescript-6-0/">TypeScript 6.0</a> - A &#8220;bridge&#8221; release toward the 7.0 Go rewrite, which is almost complete. This release also changes defaults (<code>strict: true</code>, <code>types: []</code>...), improves subpath imports, adds types for Temporal and upsert, and more.</p></li><li><p>&#128230; <a href="https://jovidecroock.com/blog/mixed-signals/">Mixed Signals - Bridging the Server-Client Boundary with Signals</a> - The Preact team is working on a new transport-agnostic solution in which the reactive signal graph spans the network boundary.</p></li><li><p>&#128230; <a href="https://wasmer.io/posts/edgejs-safe-nodejs-using-wasm-sandbox">Edge.js - Running Node apps inside a WebAssembly Sandbox</a></p></li><li><p>&#128230; <a href="https://zero.rocicorp.dev/docs/release-notes/1.0">Zero 1.0 - Sync engine is now stable e</a></p></li><li><p>&#128230; <a href="https://arrow-js.com/">ArrowJS - UI framework for the agentic era</a></p></li><li><p>&#128230; <a href="https://valibot.dev/blog/valibot-v1.3-release-notes/">Valibot 1.3 - Smarter pipelines, result caching, and new validators</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Hu_h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Hu_h!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png" width="600" height="64" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:64,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Hu_h!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 424w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 848w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1272w, https://substackcdn.com/image/fetch/$s_!Hu_h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53329bea-59b9-41aa-81ad-3ecc1557a3e4_600x64.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>&#129325; Fun</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rqty!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aa761bc-7d70-40e7-8b51-5ff8b4087b5e_1000x307.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rqty!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aa761bc-7d70-40e7-8b51-5ff8b4087b5e_1000x307.jpeg 424w, https://substackcdn.com/image/fetch/$s_!rqty!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aa761bc-7d70-40e7-8b51-5ff8b4087b5e_1000x307.jpeg 848w, https://substackcdn.com/image/fetch/$s_!rqty!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aa761bc-7d70-40e7-8b51-5ff8b4087b5e_1000x307.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!rqty!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aa761bc-7d70-40e7-8b51-5ff8b4087b5e_1000x307.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rqty!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aa761bc-7d70-40e7-8b51-5ff8b4087b5e_1000x307.jpeg" width="1000" height="307" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8aa761bc-7d70-40e7-8b51-5ff8b4087b5e_1000x307.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:307,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;alt&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="alt" title="alt" srcset="https://substackcdn.com/image/fetch/$s_!rqty!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aa761bc-7d70-40e7-8b51-5ff8b4087b5e_1000x307.jpeg 424w, https://substackcdn.com/image/fetch/$s_!rqty!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aa761bc-7d70-40e7-8b51-5ff8b4087b5e_1000x307.jpeg 848w, https://substackcdn.com/image/fetch/$s_!rqty!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aa761bc-7d70-40e7-8b51-5ff8b4087b5e_1000x307.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!rqty!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aa761bc-7d70-40e7-8b51-5ff8b4087b5e_1000x307.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>See ya! &#128075;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.thisweekinreact.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week In React! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item></channel></rss>