<?xml version="1.0" encoding="UTF-8"?><rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Reactiflux - Transcripts</title><link>https://www.reactiflux.com/transcripts</link><atom:link href="http://rss.144-124-237-35.sslip.io/reactiflux/transcripts" rel="self" type="application/rss+xml"></atom:link><description>Read transcripts of our past text-based Q&amp;A events, most recently with TMiR 2026-06: React Compiler is getting rusty, what does AI mean for engineering culture on Thursday June 25th, 2026 - Powered by AtomRSS</description><generator>AtomRSS</generator><webMaster>contact@atomgroup.dev (AtomRSS)</webMaster><language>en</language><image><url>https://reactiflux.com/logo-banner.png</url><title>Reactiflux - Transcripts</title><link>https://www.reactiflux.com/transcripts</link></image><lastBuildDate>Sun, 09 Aug 2026 22:17:04 GMT</lastBuildDate><ttl>5</ttl><item><title>TMiR 2026-06: React Compiler is getting rusty, what does AI mean for engineering culture</title><description>&lt;iframe width=&quot;100%&quot; height=&quot;180&quot; frameborder=&quot;no&quot; scrolling=&quot;no&quot; seamless=&quot;&quot; src=&quot;https://share.transistor.fm/e/37e947eb&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#intros&quot;&gt;00:00:14&lt;/a&gt;]&lt;/code&gt; Intros&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#new-releases&quot;&gt;00:02:31&lt;/a&gt;]&lt;/code&gt; New releases
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#react-router-8&quot;&gt;00:02:34&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://remix.run/blog/react-router-v8&quot;&gt;React Router 8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#babel-8&quot;&gt;00:05:39&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://babeljs.io/blog/2026/06/16/8.0.0/&quot;&gt;Babel 8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#astro-7&quot;&gt;00:07:15&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://astro.build/blog/astro-7/&quot;&gt;Astro 7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#ts-70-rc&quot;&gt;00:09:13&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-rc/&quot;&gt;TS 7.0 RC&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#esm-only-no-programmatic-api-right-now&quot;&gt;00:09:42&lt;/a&gt;]&lt;/code&gt; ESM only, no programmatic API right now&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#nub-js-from-zod-creator&quot;&gt;00:10:41&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://nubjs.com/&quot;&gt;Nub JS&lt;/a&gt;, from Zod creator&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#legend-list-30-with-dom-support&quot;&gt;00:14:13&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/jmeistrich/status/2059922504320225316&quot;&gt;Legend List 3.0 with DOM support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#tsrx-revamped-the-syntax&quot;&gt;00:14:44&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://tsrx.dev/blog/rethinking-tsrx&quot;&gt;TSRX revamped the syntax&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#react-core-news&quot;&gt;00:16:28&lt;/a&gt;]&lt;/code&gt; React Core news
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#react-compiler-in-rust-is-rolling-out&quot;&gt;00:16:32&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/sebastienlorber.com/post/3moibsmtqjk2x&quot;&gt;React Compiler in Rust is rolling out&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#pr-was-merged-after-testing-at-meta-and-improved&quot;&gt;00:16:57&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/react/react/pull/36173#issuecomment-4608356402&quot;&gt;PR was merged after testing at Meta and improved&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#oxlint-swc-rspack-next-all-integrating&quot;&gt;00:17:35&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/sebastienlorber.com/post/3moibsmtqjk2x%20&quot;&gt;Oxlint, SWC, RSPack, Next all integrating&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#rolldown-tried-integrating-directly-but-removed-due-to-binary-size-increase&quot;&gt;00:17:50&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/evanyou/status/2069593612153987373&quot;&gt;Rolldown tried integrating directly but removed due to binary size increase&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#bun-tried-optimizing-the-rust-compiler-code&quot;&gt;00:18:18&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://gist.github.com/Jarred-Sumner/84df369c35216f40d61d1ea9f95771c2&quot;&gt;Bun tried optimizing the Rust Compiler code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#other-core-improvements&quot;&gt;00:18:57&lt;/a&gt;]&lt;/code&gt; Other core improvements
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#fragment-refs-have-been-documented-in-canary&quot;&gt;00:19:17&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react.dev/reference/react/Fragment#fragmentinstance&quot;&gt;Fragment Refs have been documented&lt;/a&gt; in canary&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#react-devtools-mcp-tools-including-component-tree-and-perf-analysis-apis&quot;&gt;00:21:42&lt;/a&gt;]&lt;/code&gt; React DevTools MCP tools, including &lt;a href=&quot;https://github.com/react/react/pull/36597&quot;&gt;component tree&lt;/a&gt; and &lt;a href=&quot;https://github.com/react/react/pull/36598&quot;&gt;perf analysis&lt;/a&gt; APIs&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#react-foundation-progress&quot;&gt;00:22:28&lt;/a&gt;]&lt;/code&gt; React Foundation progress
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#theres-an-early-reactfoundation-website-advertising-funding-for-maintainers-and-community-groups&quot;&gt;00:22:39&lt;/a&gt;]&lt;/code&gt; There’s a(n early) &lt;a href=&quot;https://react.foundation/&quot;&gt;react.foundation&lt;/a&gt; website, advertising funding for maintainers and community groups&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#theyre-gonna-have-a-booth-at-chain-react-at-the-end-of-july-&quot;&gt;00:25:41&lt;/a&gt;]&lt;/code&gt; They’re gonna have a booth at &lt;a href=&quot;https://chainreactconf.com/&quot;&gt;Chain React at the end of July&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#why-is-meta-destroying-its-engineering-organization&quot;&gt;00:26:11&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://newsletter.pragmaticengineer.com/p/why-is-meta-destroying-its-engineering&quot;&gt;Why is Meta destroying its engineering organization?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#ai-demands-more-engineering-discipline-not-less-&quot;&gt;00:32:46&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://charitydotwtf.substack.com/p/ai-demands-more-engineering-discipline&quot;&gt;AI demands more engineering discipline. Not less&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#christoph-nakazawa-posted-his-modern-engineering-values-and-how-he-uses-ai&quot;&gt;00:40:51&lt;/a&gt;]&lt;/code&gt; Christoph Nakazawa posted his &lt;a href=&quot;https://cpojer.net/posts/modern-engineering-values&quot;&gt;“Modern Engineering Values” and how he uses AI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#cloudflare-bought-voidzero-&quot;&gt;00:42:42&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://voidzero.dev/posts/voidzero-cloudflare&quot;&gt;Cloudflare bought VoidZero&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#npm-security-updates&quot;&gt;00:43:44&lt;/a&gt;]&lt;/code&gt; NPM / security updates
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#github-actions-allows-enforcing-pinned-action-shas&quot;&gt;00:43:48&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.blog/changelog/2025-08-15-github-actions-policy-now-supports-blocking-and-sha-pinning-actions/&quot;&gt;Github Actions allows enforcing pinned action SHAs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#github-actions-has-a-package-manager-and-it-might-be-the-worst&quot;&gt;00:44:21&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://nesbitt.io/2025/12/06/github-actions-package-manager.html&quot;&gt;GitHub Actions Has a Package Manager, and It Might Be the Worst&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#npm-12-will-disable-install-scripts-and-git-deps-by-default&quot;&gt;00:45:27&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.blog/changelog/2026-06-09-upcoming-breaking-changes-for-npm-v12/&quot;&gt;NPM 12 will disable install scripts and Git deps by default&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#code-optimization-still-matters&quot;&gt;00:46:25&lt;/a&gt;]&lt;/code&gt; Code optimization still matters!
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#tanstack-table-cut-memory-in-v9-by-90-on-large-lists-by-optimizing-js-objects-and-optimized-ts-perf&quot;&gt;00:46:53&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://tanstack.com/blog/tanstack-table-v9-memory-performance&quot;&gt;TanStack Table cut memory in v9 by 90% on large lists by optimizing JS objects&lt;/a&gt; and &lt;a href=&quot;https://tanstack.com/blog/tanstack-table-v9-typescript-performance&quot;&gt;optimized TS perf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#pierre-diffs-was-significantly-optimized---has-to-handle-virtualization-syntax-highlighting-source-loading&quot;&gt;00:47:25&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://pierre.computer/writing/on-rendering-diffs&quot;&gt;Pierre Diffs was significantly optimized&lt;/a&gt; - has to handle virtualization, syntax highlighting, source loading&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#compilecat-is-a-new-optimizing-compiler-to-improve-js-execution-after-bundling-similar-to-closure-compiler-the-rspack-team-says-theyre-working-on-something-similar-&quot;&gt;00:48:38&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/isaac-mason/compilecat&quot;&gt;CompileCat is a new optimizing compiler to improve JS execution after bundling&lt;/a&gt;, similar to Closure Compiler. (&lt;a href=&quot;https://x.com/jiahan_c/status/2065630866668453898&quot;&gt;the RSPack team says they’re working on something similar&lt;/a&gt; )&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#marks-react-redux-signals-draft-perf-pr-and-updated-react-redux-benchmarks-repo&quot;&gt;00:51:22&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/reduxjs/react-redux/pull/2318&quot;&gt;Mark’s React-Redux \+ signals draft perf PR&lt;/a&gt; and &lt;a href=&quot;https://github.com/reduxjs/react-redux-benchmarks&quot;&gt;updated React-Redux benchmarks repo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#aurora-scharffs-preferred-rsc-component-architecture&quot;&gt;00:52:51&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://aurorascharff.no/posts/component-architecture-for-react-server-components/&quot;&gt;Aurora Scharff’s preferred RSC component architecture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-06#lovable-projects-now-use-tanstack-start-by-default&quot;&gt;00:53:34&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://lovable.dev/blog/building-apps-using-tanstack-start&quot;&gt;Lovable projects now use TanStack Start by default&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;this-month-in-react-june-news-roundup&quot;&gt;This Month in React: June News Roundup&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; All right. Hello. Thank you for joining us for the June edition of This Month in React. We&#39;re coming to you live from Reactiflux, the best place for professional developers using React. [00:00:05]&lt;/p&gt;
&lt;h2 id=&quot;intros&quot;&gt;Intros&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I am Carl. I&#39;m a staff product developer and freelance community leader here at, Reactiflux, where I do things like build Euno, a moderation bot that helps us keep the community operating. [00:00:14]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I&#39;m Mark Erikson. My day job is at Replay.io where we use time travel debugging to build things like automated QA tools and awesome React analysis. And outside of that, I run around at conferences, give talks, and work on Redux [00:00:27]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Heck yeah. The big news that we wanna discuss this month, is around some changes that shipped for the React compiler. it&#39;s in Rust now. There you go. It&#39;s the news. You don&#39;t have to listen. Yeah. we&#39;re gonna talk about Meta and we&#39;re gonna talk about its engineering culture, b- framed around a blog post from Gergely Orosz, who is wonderful and a great writer. yeah. Talk a little bit more about AI, &#39;cause of course we are, and some broad best practices and stuff. [00:00:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl (editing):&lt;/strong&gt; And I&#39;m trying something we haven&#39;t done before today. I&#39;m gonna self-sponsor this &#39;cause we don&#39;t have anyone else paying our bills right now. [00:01:05]&lt;/p&gt;
&lt;p&gt;Uh, we are sponsored by Euno, a moderator support tool for Discord, offering one-click setup for spam defense, moderation audit logs, and decision-making tools. That&#39;s euno.reactiflux.com, E-U-N-O.reactiflux.com. Uh, Euno is named after the goddess of good order and lawful governance. Uh, it helps moderators make decisions about bans together while automatically filtering out compromised account spam. A single setup/command gets you anonymous user reports, shared moderation history and resolution voting, a private ticketing channel, and anti-spam based on message velocity. [00:01:10]&lt;/p&gt;
&lt;p&gt;With a 90-day trial, you can get a feel for it before deciding if $100 per year is worth the time you&#39;ll save banning spammers and deleting garbage. If you have a Discord server, give it a shot and let me know. That&#39;s euno.reactiflux.com, E-U-N-O.react iflux.com. [00:01:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yep. congrats to you, Carl. Thank you for all the work you&#39;ve put in on this, and I can, vouch that this has been very thoroughly tested on our end [00:01:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl (editing):&lt;/strong&gt; We&#39;re also sponsored by me, Carl. Uh, these episodes cost me about 300 bucks out of pocket each episode, uh, for editing and supporting tools. If you&#39;d like to learn more about anything Mark and I discuss, let&#39;s talk about consulting or a contract software engineering gig. [00:02:06]&lt;/p&gt;
&lt;p&gt;You probably know where to find me, but Discord or email is the most reliable. I&#39;m at vcarl, that&#39;s Victor Charlie Alpha Romeo Lima, @reactiflux.com. Let me know [00:02:21]&lt;/p&gt;
&lt;h2 id=&quot;new-releases&quot;&gt;New releases&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; But yeah, first the new releases. [00:02:32]&lt;/p&gt;
&lt;h2 id=&quot;react-router-8&quot;&gt;&lt;a href=&quot;https://remix.run/blog/react-router-v8&quot;&gt;React Router 8&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; First up, React Router v8 shipped. We got that now. yeah. This... they talk a lot about the early days of React Router, and it... [00:02:34]&lt;/p&gt;
&lt;p&gt;they&#39;re, like, proactively trying to manage the pain that people experience because, I... React Router got a reputation for shipping a lot of breaking changes with every new release. I guess specifically they got a reputation of flip-flopping back and forth between two different paradigms, like every other release, and it just frustrated a lot of people with, &quot;Why do we have to refactor again?&quot; So it&#39;s funny how much of this blog post is dedicated to saying, &quot;We&#39;re not doing that anymore, we swear. Please don&#39;t hate us.&quot; [00:02:43]&lt;/p&gt;
&lt;p&gt;But yeah, generally it looks like this is essentially a no-op versus the latest version of v7. if you are already using the latest version of seven with no, deprecated features, it... [00:03:09]&lt;/p&gt;
&lt;p&gt;This should be a drop-in replacement. yeah, I think this, As far as I know, the mo- most of what th- this is bringing out is, emphasis on the framework mode. [00:03:22]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I know that they&#39;ve done a lot of work on trying to use feature flags to make new features available, essentially following the, majors don&#39;t introduce new stuff, they just remove old stuff kind of a [00:03:31]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; pattern. [00:03:42]&lt;/p&gt;
&lt;p&gt;And see, so the feature flags are the way that they implemented the better, major version releases. So th- now by the time, by the end of the previous major version release, they will have introduced new feature flags for everything that they are about to release in the next breaking change. [00:03:44]&lt;/p&gt;
&lt;p&gt;which is, it&#39;s really smart. I actually really admire that method of changing. managing feature flags, I have experienced, adds a lot of complexity to day-to-day development. and I have a ton of respect for them for landing on this process for releasing new changes, new features, new abilities to their widely used library, and here they are still, eight years later after they started using this, still putting it to practice. [00:04:01]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Couple interesting notes from the support matrix here. Node 22, okay, that&#39;s fine. they now require at least React 19.2 [00:04:25]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; as [00:04:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; a minimum version, so that... I, don&#39;t know if version 7 expected 19.0 or 18, I would have to check. But just noting that React Router now requires the latest and greatest React 19. [00:04:38]&lt;/p&gt;
&lt;p&gt;And also the package is shipping as ESM only, we are very clearly now on the trend of lots of tools and libraries going ESM only. there was the early wave of tools that went ESM only and everyone else complained because it didn&#39;t work right. [00:04:50]&lt;/p&gt;
&lt;p&gt;And now with, some of the improvements to Node itself, we&#39;re seeing a lot of packages say now is the time to go ESM only [00:05:07]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, we&#39;ve got another release that went ESM only next. [00:05:16]&lt;/p&gt;
&lt;p&gt;I wanna flag, I just found... I was clicking through the blog post and they have a link to their governance document, which explains their new feature process. and actually this whole document is very well thought out and I would highly recommend that you familiarize yourself with this governance document, &#39;cause, it&#39;s just a bunch of really high quality engineering practices. [00:05:21]&lt;/p&gt;
&lt;p&gt;Definitely check it out. [00:05:38]&lt;/p&gt;
&lt;h2 id=&quot;babel-8&quot;&gt;&lt;a href=&quot;https://babeljs.io/blog/2026/06/16/8.0.0/&quot;&gt;Babel 8&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So on the, ESM note, Babel 8 just shipped, and the, big highlights there, the Babel packages themselves are also now ESM only. TypeScript types are built in, and the default compilation settings for building your projects no longer target ES5 or CommonJS. So essentially they&#39;re saying we&#39;ve, rather than necessarily being about backwards compatibility by default and always trying to cross-compile your code to, support, IE 11 or whatever, now we&#39;re targeting the modern JavaScript ecosystem. Which is also pretty much what, TypeScript 7 is doing as well. [00:05:39]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I am extremely here for that transition. I wish that it had happened several years ago. Babel as a compatibility layer I think is really good and really great, but we&#39;ve been on evergreen browsers for most of my career at this point, and I, yeah, just, the long tail of what it means to support ESM 5 and Require is just, it&#39;s really... [00:06:23]&lt;/p&gt;
&lt;p&gt;That tail&#39;s really long at this point. It&#39;s very far away. I don&#39;t know. I, think the, trade-offs are not quite there. Yeah. Yeah, Babel 7. I don&#39;t know. I&#39;ve, Are people still manually installing and managing Ba- Babel versions themselves? This feels like something I haven&#39;t wrangled with personally in a long time. It&#39;s all downstream of the rest of the tools I use [00:06:44]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yeah, I&#39;m disconnected enough from day-to-day app development that I don&#39;t have an answer to that question. [00:07:07]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; fair. Ha Okay. Anyway, moving on. [00:07:12]&lt;/p&gt;
&lt;h2 id=&quot;astro-7&quot;&gt;&lt;a href=&quot;https://astro.build/blog/astro-7/&quot;&gt;Astro 7&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; We&#39;ve got Astro v7, major release of Astro. Astro&#39;s a project that I have always meant to explore more deeply than I really have. I have used it for a, trivial project here or there. If you&#39;re building a static portfolio site, brochure, marketing, whatever you wanna call it, it&#39;s really good. it hits a good balance between engineering ability, it gives you escape hatches to manually control stuff, while still being largely content oriented. [00:07:15]&lt;/p&gt;
&lt;p&gt;So it&#39;s very good if what you&#39;re managing is what&#39;s on the page rather than, like, how it behaves or what data&#39;s available. so it, not as great for a full app. there are certain types of apps that work great in that environment, but an application less [00:07:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Like my mental model of Astro is it essentially replaces Gatsby [00:07:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yes [00:08:03]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; in terms of, we, we pull in data sources, we build sites that are static by default, but can have lots of dynamic content with your rendering framework of choice [00:08:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Would agree with that, with all the same caveats of a lot of apps need something a lot more complicated than that. [00:08:14]&lt;/p&gt;
&lt;p&gt;But if you&#39;re building co- a content site, it&#39;s a really great tool for that. Yeah. Looks like mostly they&#39;re touting, s- build improvements, upgraded internal dependencies, V8, new roll down bundler. [00:08:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Faster markdown parsing. [00:08:33]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Advanced routing to give you a single entry point with full control over the request pipeline. They can detect coding agents automatically that looks like a local development feature. It&#39;s, you can run the dev server in the background and output structured JSON for machine-readable feedback. That&#39;s really smart, actually. I love that. there&#39;s a ton of cases where, just like in testing and such, raw human readable HTML and CSS, it... that&#39;s just a lot of content. It&#39;s a lot of bytes. It&#39;s a lot of tokens. so giving machine-readable outputs at the framework level is really helpful. I like that a lot. That seems like a really smart feature, and I think we&#39;re gonna start seeing that for more. [00:08:34]&lt;/p&gt;
&lt;h2 id=&quot;ts-70-rc&quot;&gt;&lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-rc/&quot;&gt;TS 7.0 RC&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And I mentioned this a minute ago and we&#39;ve mentioned it in previous episodes, but TypeScript version 7 is now at release candidate. think the biggest change here from a user point of view is that p- the previous releases had shipped as a separate native preview package and now it&#39;s the actual TypeScript package itself, the RC tag has all new binary and faster compilation stuff in there. [00:09:13]&lt;/p&gt;
&lt;h2 id=&quot;esm-only-no-programmatic-api-right-now&quot;&gt;ESM only, no programmatic API right now&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; One other thing to note is that the, 7.0 release, number one, it builds off 6.0 where they change the default settings to favor modern compatibility instead of backwards compatibility. but then also 7.0 will not ship with a programmatic API. So tools that depend on the c- on the TypeScript compiler package to programmatically drive compilation, parse files, do that sort of thing, will not work out of the box with 7. [00:09:42]&lt;/p&gt;
&lt;p&gt;The idea was get the full working compiler in people&#39;s hands now and they&#39;re still trying to nail down the details of what the programmatic API will be like, and they&#39;re hoping to have that out in a 7.1 [00:10:18]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool. Nice. Yeah, and we discussed that at more length last month, so I don&#39;t know that I wanna rehash all of that again. Difference between beta and RC is just not that big. [00:10:31]&lt;/p&gt;
&lt;h2 id=&quot;nub-js-from-zod-creator&quot;&gt;&lt;a href=&quot;https://nubjs.com/&quot;&gt;Nub JS&lt;/a&gt;, from Zod creator&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Okay, the, the next one&#39;s very interesting. Colin, the creator of Zod, just announced something called nub. Those of you with keen eyes will notice that this is bun backwards, in the same way that Deno is Node rearranged. clearly there&#39;s only so many letters we can use in naming JavaScript runtimes at this point. [00:10:41]&lt;/p&gt;
&lt;p&gt;The s- the sales pitch for this, Node was run JavaScript on the file system outside the browser. Deno was, &quot;Oops, we made a bunch of mistakes designing Node. Let&#39;s completely redesign the security and the process architecture and bake a bunch more stuff in.&quot; Bun was, &quot;Let&#39;s build Node compatibility on a different JavaScript engine, and also add every other built-in programming method and API we can think of while we&#39;re at it so it does everything at once.&quot; [00:11:07]&lt;/p&gt;
&lt;p&gt;Nub, on the other hand, is, &quot;Let&#39;s start with actual Node, let&#39;s override a bunch of its configuration options, and let&#39;s build in a more modern environment, things like better TypeScript stripping and better, package JSON handling and a bunch of other pieces into Node directly so it feels like Node much better rather than one of the, one of the other options.&quot; [00:11:43]&lt;/p&gt;
&lt;p&gt;I, like this idea. we&#39;ve been using things like ts-node and TSX and all these other type-stripping approaches. Node has a type-stripping option built in. This apparently goes up to the level of being able to output the non-strippable pieces of TS syntax, so like e- enums and things like that. But then it bakes in a whole bunch of other features as well. I like this idea. I, it, makes a lot of sense to me [00:12:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I&#39;d agree. It&#39;s interesting. I was always skeptical about Bun because of what you said, it starts from a brand-new runtime, and runtimes are difficult. It&#39;s hard. It&#39;s... Getting it right is tricky. clearly it&#39;s worked well enough for many people, but I&#39;ve struggled with it a little bit. [00:12:45]&lt;/p&gt;
&lt;p&gt;Sure, There&#39;s plenty of room for opportunity in the tools surrounding Node.js as well. But I&#39;m skeptical of this package manager. It says a pnpm-compatible manager built in, and it, reads whatever lock file you already have, writes to the same format. I don&#39;t know. I&#39;m skeptical of that. look, we made a magic package manager that is cross-compatible with every existing package manager. sure, I&#39;m sure you did. Can&#39;t wait to find out what bugs you missed. [00:13:02]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I saw a tweet from Colin where he said that this was all implemented with AI, not surprisingly given today&#39;s no but it, but there was a lot of very careful planning and, defining the feature set and working out the requirements and then, using the agents to actually do the work on it [00:13:33]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And, like we s- we were talking about last month, if you&#39;ve got an existing set of tests to make sure that your code works against which all of these open source package managers are going to, then it&#39;s definitely a lot easier to create a functioning replacement. [00:13:52]&lt;/p&gt;
&lt;p&gt;yeah, I don&#39;t know. It&#39;s interesting. Curious, we&#39;ll, we&#39;ll see how it shakes out. We&#39;ll see if it works. see how it does for people [00:14:06]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yep. [00:14:11]&lt;/p&gt;
&lt;h2 id=&quot;legend-list-30-with-dom-support&quot;&gt;&lt;a href=&quot;https://x.com/jmeistrich/status/2059922504320225316&quot;&gt;Legend List 3.0 with DOM support&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Another release announcement. Legend List 3.0 came out, and this is originally, I think the original version of this was React Native only. Jay Misiorek&#39;s also the creator of the Legend State Signals library. but apparently he&#39;s figured out how to port the underlying list virtualization logic over to React DOM as well, and says that it&#39;s one of the fastest, if n- if not the actual fastest virtualized list implementation out there . [00:14:13]&lt;/p&gt;
&lt;h2 id=&quot;tsrx-revamped-the-syntax&quot;&gt;&lt;a href=&quot;https://tsrx.dev/blog/rethinking-tsrx&quot;&gt;TSRX revamped the syntax&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And then, other follow-up note, I think it was last month we had mentioned something called TSRX, where Dominic Ganaway and the Ripple project had said, &quot;We&#39;re, annoyed at the JSX specification being stuck for, the last 10 to 12 years. [00:14:44]&lt;/p&gt;
&lt;p&gt;We have come up with what we think is a better syntax, that, adds more flexibility.&quot; And, after they announced it, they got a bunch of feedback on, people not liking some of what they designed. And so th- they did a couple different blog posts about how they&#39;ve stepped back and rethought what the syntax is. [00:15:02]&lt;/p&gt;
&lt;p&gt;Things like, the original TSRX wanted you to put quotes around every bit of text that you had in there, whereas JSX just is angle bracket, words, angle bracket. And so they&#39;ve, gone back to that as a syntax for text. So to be honest, I don&#39;t have a good mental picture of what the actual differences are between this and JSX at this point, &#39;cause I, haven&#39;t gone through it in detail. [00:15:21]&lt;/p&gt;
&lt;p&gt;But they, looks like they do have some control flow syntax embedded as well. so they&#39;re somewhere in between their original p- proposal and standard JSX at this point [00:15:49]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Neat. It&#39;s a big swing. I said last month that I think it&#39;s interesting that now in the AI era you can just update documentation and the tool knows how to use it, which was not the case for previously. So that might make it easier for tools like this to succeed, because you can just drop in a different markdown document and the tools will know how to write the new code, so to an extent. It&#39;s not perfect. [00:16:02]&lt;/p&gt;
&lt;h2 id=&quot;react-core-news&quot;&gt;React Core news&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Let&#39;s get into the main content with some React core updates first? [00:16:28]&lt;/p&gt;
&lt;h2 id=&quot;react-compiler-in-rust-is-rolling-out&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/sebastienlorber.com/post/3moibsmtqjk2x&quot;&gt;React Compiler in Rust is rolling out&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; All right, so the biggest thing this month is that the React compiler port into Rust has officially been merged, and there&#39;s been a whole flurry of activity of different build tools now trying to actually integrate this. so the React teams had said, &quot;We have been trying out the port at Meta. It appears to emit identical results with the TypeScript implementation of the compiler.&quot; [00:16:32]&lt;/p&gt;
&lt;h2 id=&quot;pr-was-merged-after-testing-at-meta-and-improved&quot;&gt;&lt;a href=&quot;https://github.com/react/react/pull/36173#issuecomment-4608356402&quot;&gt;PR was merged after testing at Meta and improved&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; they did a bunch of work to optimize it and handle some more cases, and the PR itself got merged, about a week-ish ago, I think. So now that it&#39;s at least more or less available, then the question is, how do you actually use it? [00:16:57]&lt;/p&gt;
&lt;p&gt;I don&#39;t know if you can actually just install the Rust version of the compiler right now. I&#39;d have to double-check that. But n- since we have a whole bunch of build tools, and most of today&#39;s build tools are now written in Rust, a lot of different teams have been exploring how do we actually integrate this into the build tools. [00:17:14]&lt;/p&gt;
&lt;h2 id=&quot;oxlint-swc-rspack-next-all-integrating&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/sebastienlorber.com/post/3moibsmtqjk2x%20&quot;&gt;Oxlint, SWC, RSPack, Next all integrating&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So Oxlint, SWC, RSpack, Next, and Bun have all been trying to figure out how do we integrate with this, make it a, an option or built-in or something along those lines. [00:17:35]&lt;/p&gt;
&lt;h2 id=&quot;rolldown-tried-integrating-directly-but-removed-due-to-binary-size-increase&quot;&gt;&lt;a href=&quot;https://x.com/evanyou/status/2069593612153987373&quot;&gt;Rolldown tried integrating directly but removed due to binary size increase&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; One interesting note is that Rolldown tried to actually add this into their system, so there would just be a built-in turn on the React compiler option. [00:17:50]&lt;/p&gt;
&lt;p&gt;And what they saw was that it increased the binary size from, 28 megs to 33 megs, and they decided that was too much extra size to force everybody to download, actually reverted it, and they&#39;re exploring further options on how they can integrate it. [00:18:01]&lt;/p&gt;
&lt;h2 id=&quot;bun-tried-optimizing-the-rust-compiler-code&quot;&gt;&lt;a href=&quot;https://gist.github.com/Jarred-Sumner/84df369c35216f40d61d1ea9f95771c2&quot;&gt;Bun tried optimizing the Rust Compiler code&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; On the other hand, Bun taking the Rust code and tried to both integrate it and also see can we improve the Rust code itself to make the compiler run faster. [00:18:18]&lt;/p&gt;
&lt;p&gt;I think a couple of the other teams have also been seeing, now that the Rust code for the compiler exists, can we also make it faster as well? So there&#39;s clearly still a lot of development opportunities for different teams to explore in terms of how is it integrated into the build step, how fast does it run, but we now at least have the merged PR as a baseline for all that different work [00:18:33]&lt;/p&gt;
&lt;h2 id=&quot;other-core-improvements&quot;&gt;Other core improvements&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Couple other things I noticed. one is that the React team has been working on something called Fragment Refs for a while. We, might have mentioned this once or twice in the past. [00:18:57]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, I think not a long time though. It&#39;s b- it&#39;s been a minute [00:19:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; it&#39;s been a while. The PRs were sitting out there or getting quietly iterated on. [00:19:11]&lt;/p&gt;
&lt;h2 id=&quot;fragment-refs-have-been-documented-in-canary&quot;&gt;&lt;a href=&quot;https://react.dev/reference/react/Fragment#fragmentinstance&quot;&gt;Fragment Refs have been documented&lt;/a&gt; in canary&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So the idea for a Fragment Ref is that a React fragment by design does not have any single DOM node associated with it, because it&#39;s meant to be like a virtual container for many children. That&#39;s why we wrap them in a fragment in the first place. but what happens if you want to do something like listen to a DOM event for any of the children directly underneath the fragment, or perform some other DOM operation? [00:19:17]&lt;/p&gt;
&lt;p&gt;So Fragment Refs are a, I think, now in Canary feature where you can put a ref prop onto a fragment and you get back something that looks like a DOM node in terms of the methods you can call, add event listener and that sort of thing. and under the hood, React just does the work to pass the references on to all of its children automatically. [00:19:48]&lt;/p&gt;
&lt;p&gt;So it looks to your code like you&#39;re dealing with an actual DOM node, and under the hood, React takes care of, oh, there&#39;s 15 children directly under this fragment, let me just collect the interactions with all of them. So, that is apparently now in Canary, and they&#39;ve actually updated the documentation page on fragments to say that you can use refs on them [00:20:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Nice. Cool. the value here I think is really specific, and, it might, be unintuitive. it... let&#39;s say you wanted all of those DOM methods you just talked about, you wanted to be able to measure the size of this block of nodes or add an event or whatever. [00:20:40]&lt;/p&gt;
&lt;p&gt;Another way you could do that is to wrap it in a div. If you have a div, cool, great, free DOM node. You can do all those things. but that doesn&#39;t work in certain layouts. if you wanted to have a grid where all of them share a single, drag end event, you can&#39;t just wrap that in a div because that breaks the grid layout. [00:20:57]&lt;/p&gt;
&lt;p&gt;So this is a situation for, flex or grid, where there&#39;s an implied mandatory hierarchy of the DOM nodes itself, and you are rendering those s- containers, those children, s- let&#39;s say from a map. You&#39;re mapping over data, then this is super helpful for adding a whole bunch of different types of behaviors, which is why it&#39;s worth the effort. [00:21:19]&lt;/p&gt;
&lt;h2 id=&quot;react-devtools-mcp-tools-including-component-tree-and-perf-analysis-apis&quot;&gt;React DevTools MCP tools, including &lt;a href=&quot;https://github.com/react/react/pull/36597&quot;&gt;component tree&lt;/a&gt; and &lt;a href=&quot;https://github.com/react/react/pull/36598&quot;&gt;perf analysis&lt;/a&gt; APIs&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And then one other thing that I have a vested interest in, the re- there&#39;s been a series of PRs posted to improve the React Dev Tools by adding MCP tools so that agents can query and inspect it. some form of imperative API so that you can programmatically ask, what is the component tree, and even turn performance profiling on and off. [00:21:42]&lt;/p&gt;
&lt;p&gt;and then some, some additional wrappers to expose that data. I&#39;ve spent a bunch of time doing React performance analysis work. I am doing some of that at my day job right now. so I&#39;m, I am also keeping a very close eye on this because it&#39;s very heav- heavily related to my interests. [00:22:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yes, it is. Yeah, and we&#39;ve got... [00:22:26]&lt;/p&gt;
&lt;h2 id=&quot;react-foundation-progress&quot;&gt;React Foundation progress&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; we mentioned briefly the React Foundation last month, and most of what we said was that we haven&#39;t been able to see very much of what&#39;s happening. We can see things. Visible change is happening. [00:22:28]&lt;/p&gt;
&lt;h2 id=&quot;theres-an-early-reactfoundation-website-advertising-funding-for-maintainers-and-community-groups&quot;&gt;There’s a(n early) &lt;a href=&quot;https://react.foundation/&quot;&gt;react.foundation&lt;/a&gt; website, advertising funding for maintainers and community groups&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; The React repos have moved, there&#39;s also a new website being developed. I&#39;ve seen some chatter about that. [00:22:39]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Like the, foundation page exists, but the, uh the current form of the page is very vibe coded. And so, a- they&#39;re, like what&#39;s there is accurate, but not well designed. [00:22:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, it is definitely vibe coded vibes. but yeah, so that, that, should change soon. [00:22:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; The, couple of the interesting bits for me, if you look at the, React Foundation website right now, there&#39;s a strong emphasis on helping support the community financially. Some of that is they&#39;re apparently intending to sell swag, shirts, and whatever, they intend money fairly to maintainers of some of the most common React ecosystem libraries. They also talk- they&#39;ve also talked both in the past and I think on the website about helping financially support different, communities, meetups, conferences as well. And then I think they are taking over running the official React Conf as well [00:23:05]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, I know that they&#39;ve actually been having some struggles getting meetups. they wanna support local React-based meetups, people aren&#39;t doing local React-based meetups anymore. It&#39;s all AI stuff or whatever. it&#39;s... I think the... I, think my intuition here a little bit is that some of their mental model for how the React community exists is still, maybe not fully reacted to the shifts over the last two years. [00:23:45]&lt;/p&gt;
&lt;p&gt;I love the idea of collecting nonprofit donations and then distributing them out to library maintainers. I think that is super, super good. And doing it with a, proper foundation with, governance and a board of directors is super good. I&#39;ve ac- I actually thought quite a bit about trying to do a business adjacent to this, just, hey, we got a community. [00:24:14]&lt;/p&gt;
&lt;p&gt;What if we did, a bunch of little events and had a membership subscription or whatever, and then funneled 80% of that money to the people who make the community exist. and I, ended up not just &#39;cause it&#39;s it was hard. It&#39;s a lot of work. It&#39;s a ton. Access also helps. starting from I am the manager of the React core team is a very strong position to create a foundation. [00:24:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; the flip side of all this is that as I discussed last month, I have no idea what&#39;s going on with the development of React itself. the- there&#39;s PRs around the compiler and the dev tools. I really haven&#39;t seen much activity on the core library in the last few months. [00:24:58]&lt;/p&gt;
&lt;p&gt;Joe Savona c- and put up a post confirming that he is no longer on the React team at Meta. He&#39;s now working on something AI related. and then that kind of ties into what we&#39;ll talk about in a minute with what is going on at Meta anyway. So here feels like the development process on React itself is rather fragmented and confused right now [00:25:14]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Which is unfortunate. [00:25:39]&lt;/p&gt;
&lt;h2 id=&quot;theyre-gonna-have-a-booth-at-chain-react-at-the-end-of-july&quot;&gt;They’re gonna have a booth at &lt;a href=&quot;https://chainreactconf.com/&quot;&gt;Chain React at the end of July&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; But if you wanna talk to the core team or, some members of the foundation, or generally people close to the development of React, they will have a booth at Chain React, July 30th, which it&#39;s a React Native conference specifically, And it is, where is it? And it is in Portland. So yeah, if you&#39;re, around the Pacific Northwest or willing to travel, so yeah, check it out. [00:25:41]&lt;/p&gt;
&lt;p&gt;Okay, moving on a little bit. jumping off your tangent you just teed me up for, thank you. [00:26:04]&lt;/p&gt;
&lt;h2 id=&quot;why-is-meta-destroying-its-engineering-organization&quot;&gt;&lt;a href=&quot;https://newsletter.pragmaticengineer.com/p/why-is-meta-destroying-its-engineering&quot;&gt;Why is Meta destroying its engineering organization?&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Why is Meta destroying its engineering organization? this is a newsletter post put out by Gergely Orosz, who&#39;s very influential, I would say. He puts out a, pragmatic engineering newsletter. It&#39;s very good. I read it occasionally. I read posts from him. [00:26:11]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; well written and sourced [00:26:27]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Very well-sourced, very timely. He does a good job of being timely. so y- this is a, this, is again, a well-written, well-researched, well-presented post, talking about the engineering values of Meta historically. it brings in the, original Facebook little red book, which is a little, culture document describing the values of the company. [00:26:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; move fast and break things, but also like a, lot of stuff about how we want to think about building stuff for the customer [00:26:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. okay, so Move Fast and Break Things is notorious. here are eight, no seven other values from the same book. [00:26:57]&lt;/p&gt;
&lt;p&gt;Done is better than perfect, [00:27:05]&lt;/p&gt;
&lt;p&gt;fail harder, [00:27:07]&lt;/p&gt;
&lt;p&gt;what would you do if you weren&#39;t afraid, [00:27:08]&lt;/p&gt;
&lt;p&gt;every day feels like a week, [00:27:10]&lt;/p&gt;
&lt;p&gt;the Wright brothers did not have pilot licenses, [00:27:12]&lt;/p&gt;
&lt;p&gt;the foolish wait and fortune favors the bold. [00:27:15]&lt;/p&gt;
&lt;p&gt;And I don&#39;t know, a lot of those are values I can, agree with. [00:27:17]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; It&#39;s better to get something done and see what happens than to waste all of our time discussing if we should try doing something [00:27:22]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Yeah. So I don&#39;t know, it&#39;s, it&#39;s a good doc. This is good speaking about the engineering cultural history and some of the actual timelines of improvements and, releases that they made. and it&#39;s, it lists a number of problems. th- they started tracking engineers&#39; keystrokes with no way to opt out on work laptops. [00:27:28]&lt;/p&gt;
&lt;p&gt;it says &quot;30 to 50% of engineers and core teams have been forcefully reassigned to data labeling.&quot; You think you&#39;re gonna be a core AI engineer and oops, you&#39;re just n- t- you&#39;re a competent, skilled professional tagging data the same as a legion of other competent, skilled professionals training your replacement. [00:27:52]&lt;/p&gt;
&lt;p&gt;I have a, friend of mine who was recently laid off from Meta who has been involved in, basically, just trying to resist this type of pressure. like for being forcefully reassigned to a team that you are not interested in being on, that sucks. [00:28:10]&lt;/p&gt;
&lt;p&gt;and it&#39;s part of your contract. It&#39;s ultimately, at the end of the day, you&#39;re in a hierarchical corporate system. They have hired you to perform work at their leisure, at their desire, and it is entirely within their legal contractual right to say, &quot;You work on this now.&quot; [00:28:24]&lt;/p&gt;
&lt;p&gt;and that doesn&#39;t, What if it, wasn&#39;t their contractual right? What if they did have to actually negotiate with you and put you somewhere that was mutually compatible? So I don&#39;t know. That&#39;s, that&#39;s the pushback that they have been trying to support and organize. [00:28:40]&lt;/p&gt;
&lt;p&gt;But, meta is maybe not doing so great. I guess, one, one concrete engineering point that this, draws attention to was the r- disappointing AI model development. Like losing momentum effectively. Like Llama 1, 2, 3 were all very cutting-edge and competitive, and Llama 4 released over a year ago now, which I guess was the last release. I don&#39;t know of another release from them. [00:28:53]&lt;/p&gt;
&lt;p&gt;so yeah, I don&#39;t... as a symptom of declining engineering culture, their frontier AI model is no longer competitive. [00:29:20]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yeah. So some of the points it makes is that they, they, used to have v- pretty good engineering culture based on we&#39;re, trying to build the right things the right way at scale. The question of, whether the apps that they&#39;re building are useful for society is a different question, but at least they were mostly trying to build them the right way. [00:29:28]&lt;/p&gt;
&lt;p&gt;And now it seems like in the last year or two they have shifted to a focus on AI. They&#39;ve had a bunch of layoffs. Engineers have been forcefully reassigned, and the, I know the performance review topic c- has come up repeatedly when I&#39;ve talked to even, React core team members. They, they want to spend their time doing things that will benefit the greater React community, but they have to, in order to get good performance reviews, they have to show, like, how is this actually benefiting Meta the company. [00:29:44]&lt;/p&gt;
&lt;p&gt;And so whether that&#39;s something like, &quot;We&#39;re gonna build this new React feature because it makes Ads Manager faster,&quot; or, just, interactions in some way. So that I know has been a struggle just for the React team, and it&#39;s clearly a major problem for everyone else at the company at this point. How justify my existence? [00:30:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; there&#39;s a book that I love called Moral Mazes that speaks a lot about this type of problem. we, we&#39;re talking about engineering culture. [00:30:35]&lt;/p&gt;
&lt;p&gt;That&#39;s... Culture is the downstream result of a vast group of people interacting with each other. The culture is the emergent property of how those individuals interact with each other. And Moral Mazes is a really wonderful sociological study of the firm, the c- the American corporation. And so it ends up speaking a lot about subjects like performance reviews. [00:30:44]&lt;/p&gt;
&lt;p&gt;And here in this blog post, the Pragmatic Engineer Newsletter, it says, &quot;The biggest problem, people stop caring about real work and focus on performative work.&quot; and like what you just said about how they can&#39;t do what&#39;s best for the overall growth of the library because that&#39;s not the criteria upon which they&#39;re judged. [00:31:05]&lt;/p&gt;
&lt;p&gt;They are judged on their impact within the company, and specifically the impact on the company as judged by their immediate supervisor with, with the supervisor chain. So it, ultimately you&#39;re... The, incentives flow down in that kind of way. So it&#39;s actually... [00:31:23]&lt;/p&gt;
&lt;p&gt;there&#39;s, a deep fundamental misalignment between open source and, the American corporation, I&#39;m not gonna go into capitalism a w- But, that&#39;s very true. Open source is a c- is a public good. It&#39;s a, it&#39;s, it&#39;s a public square. It&#39;s a shared resource that they&#39;re, people don&#39;t pay for. and those types of resources they&#39;re the economic concept of the tragedy of the commons. [00:31:41]&lt;/p&gt;
&lt;p&gt;It&#39;s a well-known principle that people don&#39;t just casually take care of stuff. If it&#39;s a public common, it&#39;s going to get more extraction than it is investment. So it&#39;s... I don&#39;t know. It&#39;s, it, there, the, th- that&#39;s a fundamental tension, and I feel like any time we&#39;re talking about companies under-investing in, open source, that&#39;s kinda why. [00:32:03]&lt;/p&gt;
&lt;p&gt;It&#39;s because they can&#39;t. They&#39;re not allowed to. If you&#39;re a big publicly traded company that has gone to IPO and has shareholders, you have a fiduciary duty to those shareholders, and fiduciary duty does not include volunteer effort to public goods. So it&#39;s, that&#39;s, there you go. That&#39;s the tension. [00:32:27]&lt;/p&gt;
&lt;p&gt;Anyway, let&#39;s move on [00:32:44]&lt;/p&gt;
&lt;h2 id=&quot;ai-demands-more-engineering-discipline-not-less&quot;&gt;&lt;a href=&quot;https://charitydotwtf.substack.com/p/ai-demands-more-engineering-discipline&quot;&gt;AI demands more engineering discipline. Not less&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Great post from Charity Majors who, somebody who I&#39;ve ... They, are such a well-spoken, phenomenal writer speaking about engineering culture. And I, especially they talk about opera- or, yeah, I was gonna say operationalizing, production environments. [00:32:46]&lt;/p&gt;
&lt;p&gt;they run a company that makes its money on observability, [00:33:05]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Honeycomb [00:33:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Honeycomb. great company, great mission, great blogger, great writer. so i- she&#39;s put out a post, AI Demands More Engineering Discipline, Not Less. [00:33:10]&lt;/p&gt;
&lt;p&gt;Charity says in her post, &quot;What happened in 2025 was this, the economics of code production were turned upside down. Instead of being very hard, time-consuming, and expensive to generate code, it became effectively free and instant. Lines of code went from being treasured, reused, cared for and carefully curated to being disposable and regenerable practically overnight.&quot; [00:33:20]&lt;/p&gt;
&lt;p&gt;And something I&#39;ve said on this podcast before is that, code&#39;s kind of a liability. over time code is not an asset, it is a drain. It is something to be maintained. It is a cost center. so I agree with that. I think that read is correct. The, economics of code production were turned upside down. [00:33:38]&lt;/p&gt;
&lt;p&gt;it&#39;s m- because code is not an asset, because code is a liability, the ability to discard it and replace it with something new that is, has differ- has a different risk profile is massive. [00:33:57]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; It&#39;s, ironic because, as developers we have historically resisted, taking the time to write documentation or writing tests or actually planning out our work, and suddenly it turns out that in order to get good results from AI, we actually need to do all of the above. [00:34:12]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, and it&#39;s like I have always known what the right choice to make was. it&#39;s y- several years ago when I was working as a tech lead, it&#39;s okay, we have this feature. I know that it is deficient in these , these areas. no, we don&#39;t have end-to-end tests. no, we don&#39;t have functional integration tests for all corner cases. [00:34:30]&lt;/p&gt;
&lt;p&gt;Because we don&#39;t have an existing end-to-end harness, because we don&#39;t have a framework for mocking network responses for requests initiated from components deep in the tree, deep in the hierarchy. there, it&#39;s, it... Engineering excellence is a momentum-based metric. You cannot skip ahead [00:34:53]&lt;/p&gt;
&lt;p&gt;You can&#39;t write end-to-end tests if you haven&#39;t built a reliable framework upon which to run end-to-end test suites. and so it&#39;s hard to do. It&#39;s hard to keep that momentum up over a long enough time span to where you start observing the benefits, and so most companies didn&#39;t. [00:35:12]&lt;/p&gt;
&lt;p&gt;the number of times where I would get feedback on something, and it&#39;s like, why don&#39;t we have this already?&quot; It&#39;s, &#39;cause that would&#39;ve taken two weeks, and I can do it now, but I didn&#39;t have two weeks.&quot; and I gotta say, I&#39;m finding it much easier to find those two weeks with AI. AI is an amnesiac, so it needs to start from scratch every time. [00:35:30]&lt;/p&gt;
&lt;p&gt;if you&#39;re working on a new feature or just built something brand new, I just ask Claude, &quot;Hey, familiarize yourself with this code base, how much of that did you get from docs versus the code?&quot; [00:35:50]&lt;/p&gt;
&lt;p&gt;And it does a little analysis, and it comes back and says, &quot;Oh, the documentation is out of date in these locations, and these concepts should be pulled in.&quot; &quot;Great. Can you do that work for me?&quot; It&#39;s like, &quot;Oh, yeah. Cool, cool. And so then instead of, what, six hours of, reading code and putting together my own notes and understanding what documentation is currently available and synthesizing it to get, a fact-based update and then writing brand-new prose to fill in those docs, I, I, I can do that in 10 minutes in a background process. [00:36:00]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yeah, I, love generating architecture exploration e- explanation type docs. I&#39;ve, found that extremely useful. In fact, that was my gateway that eventually led to me using aI to write code. It does feel like I&#39;m leaving some understanding on the table, that my understanding is can be very much more surface level. some of it is, there&#39;s ar- areas of our code base and our projects I just haven&#39;t looked at, and operating off of a vague mental model. I, skimmed through a handful of architecture docs. that&#39;s certainly not, that&#39;s certainly not enough to actually understand what&#39;s going [00:36:30]&lt;/p&gt;
&lt;p&gt;Yeah place. It&#39;s, easier entry, but maybe not as much depth [00:37:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; That&#39;s very true. I assuage my own guilt in that, the like, &quot;Oh no, I, know that I&#39;m only seeing 30% of this.&quot; &#39; Cause for one, every code base is too large for your brain. you are never going to fully understand all of it at the same time. And any time that I did fully understand something, the, amount of time it took to get to that understanding, and then the only time I ever did that was to change it, [00:37:09]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Mm. [00:37:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; So then as soon as I&#39;m done with that, as soon as I have gotten my understanding up to 100%, cool, great, I&#39;m changing it. That&#39;s now out of date. That knowledge is now useless. [00:37:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I&#39;m, sure I&#39;ve mentioned this in previous episodes. I am a huge fan of the concept that programming is building a working mental model of the system. it&#39;s a, it&#39;s about theory building. So you understand what we are trying to build as a domain, as a project. [00:37:46]&lt;/p&gt;
&lt;p&gt;You understand the current system, the architecture, the quirks, the concepts, so that for any task you work on, whether it&#39;s a feature, a bug, whatever, you are starting from my current understanding. You break down the new problem based on your understanding. You come up with a plan, you implement it, you spend six hours trying to make it work, and by the time you&#39;re done, you not only have working code, you have updated your mental model on the system. So I would say it&#39;s not that you&#39;ve made your previous knowledge useless, but we are continually modifying that understanding [00:38:03]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yes, sure. I agree with that. I agree with that, but I also discount it a little bit more than I think you are. Like, I&#39;d agree that, developing an, accurate mental model is core. You need to do that as writing, as part of writing code. I, at least, am satisfied at the level that I am able to develop a mental model w- via AI. [00:38:36]&lt;/p&gt;
&lt;p&gt;I guess th- this is, a feedback cycle. You have to develop your mental model, check it against what the AI is telling you, and then make sure it&#39;s what you intended, and then make sure that what you intended is compatible with a functioning projec- will it achieve what you meant it to? [00:39:03]&lt;/p&gt;
&lt;p&gt;And those are all really hard, oh, another thing I wanna say your mental model, are, the building blocks that you have available to develop your mental model, are those complex enough to, capture what you&#39;re making? [00:39:19]&lt;/p&gt;
&lt;p&gt;That&#39;s something I run into fairly often. It&#39;s like the system architecture, the system design inter- interview questions. Like, how would you build Twitter to be re- resilient? Those are hard problems. That&#39;s re- you know, de- developing a system that can manage hundreds of millions of requests is, yeah, it&#39;s really tough, and AI is really helpful for me for exploring that. [00:39:33]&lt;/p&gt;
&lt;p&gt;it ends up being... Okay, oh, wait, here let me try and frame this in a sentence. It used to be critically essential to develop an accurate mental model through the process of reading and writing code yourself, and now it&#39;s much more important to be able to ask the correct question at the correct time of the code base. [00:39:58]&lt;/p&gt;
&lt;p&gt;Because now you can... The, frontier models are smart enough and the tools are capable enough, they can pretty meaningfully answer any question that you have about a fixed set of code. If you, bound it to like, &quot;Here&#39;s the code, here&#39;s your world, tell me about it. Answer this question for me,&quot; it can. [00:40:18]&lt;/p&gt;
&lt;p&gt;And so now it&#39;s up to you to know what the right questions are to ask given the present state of the existing code [00:40:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yeah. So let&#39;s tie that then into the next link in the list. [00:40:46]&lt;/p&gt;
&lt;h2 id=&quot;christoph-nakazawa-posted-his-modern-engineering-values-and-how-he-uses-ai&quot;&gt;Christoph Nakazawa posted his &lt;a href=&quot;https://cpojer.net/posts/modern-engineering-values&quot;&gt;“Modern Engineering Values” and how he uses AI&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; so Krzysztof Nakazawa is a long time figure in the React ecosystem. He&#39;s worked on Jest and graphQL and a whole bunch of other tools. more recently, he shipped a data fetching library called Fate. he&#39;s built a game with JavaScript called Athena Crisis. He got hired by Void Zero, which we&#39;ll talk about in a second. so like re- like really smart, capable long-term engineer, and he is now fully doing everything with AI. [00:40:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yep. [00:41:21]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; He put up a post on modern engineering values where he talk about how he uses AI effectively, but also then what are the principles that he&#39;s using in trying to build projects. And he talks about, ownership and taste and strict guardrails and fast feedbacks loops, which is what we were hitting on a minute [00:41:21]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yep. [00:41:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Being able, to know what is the right context that I feed into the agents so that they are able to come up with the answers. maybe actually, owning some more your own code instead of depending on third-party libraries. Thinking differently about how you build prototypes and ship things. so very relevant to like we&#39;re, doing the same work, but maybe at a higher level, and you do have to know where you&#39;re trying to go [00:41:44]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yes. Yeah, agree. Yeah, I like this, bit from Christoph&#39;s post, &quot;I&#39;ve found that coding agents now write code that is as good or better than what I could write,&quot; which I would agree. I find that true as well. &quot;And they do it in minutes instead of weeks. Since coding is no longer the bottleneck, I get a lot of work done that otherwise wouldn&#39;t have happened at all.&quot; [00:42:12]&lt;/p&gt;
&lt;p&gt;100% agree with that. That is... I have started and finished so many more projects than I would have before because I, can do it in a day instead of in a week. it&#39;s a 7X speed multiplier for me. So it&#39;s good. [00:42:30]&lt;/p&gt;
&lt;h2 id=&quot;cloudflare-bought-voidzero&quot;&gt;&lt;a href=&quot;https://voidzero.dev/posts/voidzero-cloudflare&quot;&gt;Cloudflare bought VoidZero&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; In industry news, Void Zero, the company behind VitePlus and a couple other pieces, has been bought by Cloudflare, this continues the trend of a bunch of open source build tool developers try to get funding, try to make a company, and then they probably get swallowed up by someone bigger because there is no money in running open source build tools. Bun and a whole bunch of others all getting bought out. nobody is making money off of open source build tools. There is no build m- there is no financial model, hosting, or anything else. So we&#39;ll see how it plays out. to be clear, this is about the team and the VitePlus and Void tool sets and frameworks. [00:42:42]&lt;/p&gt;
&lt;p&gt;This does not affect Vite, the open source bundler, at all, other than these are some of the same people working on it. but it continues the pattern, and I don&#39;t see that pattern changing anytime soon [00:43:32]&lt;/p&gt;
&lt;h2 id=&quot;npm--security-updates&quot;&gt;NPM / security updates&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; We got some more security updates from NPM. Great. [00:43:44]&lt;/p&gt;
&lt;h2 id=&quot;github-actions-allows-enforcing-pinned-action-shas&quot;&gt;&lt;a href=&quot;https://github.blog/changelog/2025-08-15-github-actions-policy-now-supports-blocking-and-sha-pinning-actions/&quot;&gt;Github Actions allows enforcing pinned action SHAs&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; GitHub Actions now supports blocking and pinning actions to a specific SHA. So that&#39;s, that&#39;s really good. If you... So this is helpful for avoiding vulnerable actions. if you&#39;re aware that some specific release of an action was compromised, you can now block that one specifically. [00:43:48]&lt;/p&gt;
&lt;p&gt;Or say, &quot;We know this one is good. Only use this version.&quot; wow. Ability to select precisely what code you&#39;re running. This feels like table stakes to me. It&#39;s shocking that we&#39;re only just getting it [00:44:09]&lt;/p&gt;
&lt;h2 id=&quot;github-actions-has-a-package-manager-and-it-might-be-the-worst&quot;&gt;&lt;a href=&quot;https://nesbitt.io/2025/12/06/github-actions-package-manager.html&quot;&gt;GitHub Actions Has a Package Manager, and It Might Be the Worst&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; there&#39;s, a guy named Andrew Nesbitt, I think we may have linked one or two of his articles previously, but he has become an expert on package managers and packaging systems, and I think he wrote an, a couple articles talking about, yep, GitHub Actions is totally a package manager. It doesn&#39;t look like one, but it is, and it&#39;s bad [00:44:21]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yes. Yeah, people shit on NPM for a lot of reasons, but you know what? The w- most most of the ecosystem problems in JavaScript around dependencies are because NPM is one of the only functional package managers in programming. Cargo or NuGet or, like, all of the other... [00:44:39]&lt;/p&gt;
&lt;p&gt;Every other language has a shitty dependency manager. It does not support what I would call core features of a dependency manager. For instance, pinning versions. Just, it&#39;s shocking to me how ineffective we are at sharing code in the vast majority of programming. anyway, yeah. So great. So many things are terrible dependency managers, and GitHub Actions is now a slightly less terrible pa- package manager [00:44:58]&lt;/p&gt;
&lt;h2 id=&quot;npm-12-will-disable-install-scripts-and-git-deps-by-default&quot;&gt;&lt;a href=&quot;https://github.blog/changelog/2026-06-09-upcoming-breaking-changes-for-npm-v12/&quot;&gt;NPM 12 will disable install scripts and Git deps by default&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; GitHub also put out some breaking changes for npm 12. They are not going to run install scripts and Git dependencies by default. that is... This is literally something I&#39;ve seen discussed as a security vulnerability for 10 years. [00:45:27]&lt;/p&gt;
&lt;p&gt;So it finally got exploited enough times that they&#39;re like, &quot;Nope, okay, we gotta get rid of it.&quot; great, cool. They&#39;re getting rid of the thing that has been discussed as something that should be gotten rid of for a long time [00:45:43]&lt;/p&gt;
&lt;p&gt;specifically it&#39;s, NPM will no longer run pre-install, install, or post-install scripts from dependencies unless you allow list them. So no builds basically [00:45:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; what I think pnpm als- already does [00:46:05]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Plenty of package managers already do that because running untrustworthy code from a network is really dangerous. [00:46:08]&lt;/p&gt;
&lt;p&gt;Don&#39;t do it. This is what I mean, like, I just said, NPM is one of the most advanced package managers in all of programming, and it still gets basic shit wrong. Stop it. Security models. [00:46:13]&lt;/p&gt;
&lt;h2 id=&quot;code-optimization-still-matters&quot;&gt;Code optimization still matters!&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; All right, last major item for the day. topic, a related topic, but, bit of a grab bag. There&#39;s a whole bunch of good articles about code optimization that came out in the last few weeks, and I&#39;ve spent a lot of time doing performance profiling. I have literally given a talk this year on how to do performance profiling. So we had several articles on, and from people who did performance optimization work on tools and libraries. [00:46:25]&lt;/p&gt;
&lt;h2 id=&quot;tanstack-table-cut-memory-in-v9-by-90-on-large-lists-by-optimizing-js-objects-and-optimized-ts-perf&quot;&gt;&lt;a href=&quot;https://tanstack.com/blog/tanstack-table-v9-memory-performance&quot;&gt;TanStack Table cut memory in v9 by 90% on large lists by optimizing JS objects&lt;/a&gt; and &lt;a href=&quot;https://tanstack.com/blog/tanstack-table-v9-typescript-performance&quot;&gt;optimized TS perf&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; First off, there&#39;s a couple articles from the TanStack Table folks where they talked about how they were able to save a bunch of memory within TanStack Table by switching out the JavaScript prototypes that were being used, as well as how they optimized, the TypeScript compilation performance. [00:46:53]&lt;/p&gt;
&lt;p&gt;Now, yes, TypeScript&#39;s version seven&#39;s gonna make all our TypeScript faster, whatever, but it&#39;s still good to actually try to improve the, type checking time if possible. [00:47:14]&lt;/p&gt;
&lt;h2 id=&quot;pierre-diffs-was-significantly-optimized---has-to-handle-virtualization-syntax-highlighting-source-loading&quot;&gt;&lt;a href=&quot;https://pierre.computer/writing/on-rendering-diffs&quot;&gt;Pierre Diffs was significantly optimized&lt;/a&gt; - has to handle virtualization, syntax highlighting, source loading&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; next, there&#39;s something called the Pierre Computer Company, which is making essentially like a, GitHub for, as a service kind of a, set of tools. [00:47:25]&lt;/p&gt;
&lt;p&gt;And they&#39;ve put out a couple JavaScript libraries, one for rendering tree views in the UI, but they also put out one that is a diffs rendering library. And so they&#39;ve put up a post on how they heavily optimized all the list virtualization and the syntax highlighting and all the other complexities of trying to render diffs efficiently in the browser. [00:47:35]&lt;/p&gt;
&lt;p&gt;And I&#39;ve seen several other applications pop up which use that library in the UI. part of me make, wonders if GitHub perhaps consider using that library in their UI given the, how slow their React based, PR view is at this point [00:47:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl (editing):&lt;/strong&gt; oh, shoot. We had an audio problem. For some reason, we lost about the last 10 minutes of my audio. Mark&#39;s came through just fine. Uh, and luckily he did most of the talking in the last little bit here. Uh, but unfortunately we lost about four to five minutes of me responding to things that Mark said. Uh, oops, sorry. [00:48:20]&lt;/p&gt;
&lt;h2 id=&quot;compilecat-is-a-new-optimizing-compiler-to-improve-js-execution-after-bundling-similar-to-closure-compiler-the-rspack-team-says-theyre-working-on-something-similar-&quot;&gt;&lt;a href=&quot;https://github.com/isaac-mason/compilecat&quot;&gt;CompileCat is a new optimizing compiler to improve JS execution after bundling&lt;/a&gt;, similar to Closure Compiler. (&lt;a href=&quot;https://x.com/jiahan_c/status/2065630866668453898&quot;&gt;the RSPack team says they’re working on something similar&lt;/a&gt; )&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; A couple more of these. So someone recently started a site called Performance.dev. Their first article previously was on how the linear UI is fast using sync engines, and they just put up another post on how a tool called Conductor implemented a bunch of optimizations, handling some of the UI layer interaction with Tari, list virtualization, and a bunch of other pieces. [00:48:38]&lt;/p&gt;
&lt;p&gt;so those are, apps and libraries making things faster. I saw a couple, winks on something different. So we all use minifiers in our bundling process. It&#39;s, part of all modern build tool chains. minifiers do things like they don&#39;t just rename variables from my variable to A. [00:49:03]&lt;/p&gt;
&lt;p&gt;They, they strip white space. They turn true and false into bang zero and bang one be- because it takes up fewer characters, et cetera. But they also do things like stripping out dead code. So if a library has only r- has a, an if statement that says, &quot;Only run this in development,&quot; it will convert that to if false, and then it will say, &quot;Oh, that code can&#39;t run. [00:49:25]&lt;/p&gt;
&lt;p&gt;Just delete that code from the bundle and optimize the output.&quot; And so every time you run a build, a minifier is optimizing the output. And the major mini- the major minifiers, optimizers have been things like Terser and, ESBuild has had one built in, Rolldown has one built in. there&#39;s be- there&#39;s one that&#39;s been around for a very long time called the Google Closure Compiler. [00:49:49]&lt;/p&gt;
&lt;p&gt;this dates back to when Google first built a lot of their early web spa type tooling. 2008, 2009, somewhere in that timeframe. it&#39;s, extremely powerful and has a lot of very advanced optimizations that other minifiers still don&#39;t have, but it&#39;s also big and complicated and maybe a little bit on the slow side. [00:50:14]&lt;/p&gt;
&lt;p&gt;interestingly, the React team still uses the Closure Compiler to build the React library so that the production version of React is as fast as it can possibly be. So I saw two different announcements of teams that are attempting to write their own advanced optimizer tools. one person built something called CompileCat, and then the other one&#39;s a mention of an internal tool that&#39;s not released yet, but the, RSPACK team at ByteDance said they&#39;re also working on a similar tool. [00:50:35]&lt;/p&gt;
&lt;p&gt;So presumably doing things like actually looking at not just the JavaScript, but the TypeScript types in order to be able to, be smarter and produce better output code as well. [00:51:11]&lt;/p&gt;
&lt;h2 id=&quot;marks-react-redux--signals-draft-perf-pr-and-updated-react-redux-benchmarks-repo&quot;&gt;&lt;a href=&quot;https://github.com/reduxjs/react-redux/pull/2318&quot;&gt;Mark’s React-Redux \+ signals draft perf PR&lt;/a&gt; and &lt;a href=&quot;https://github.com/reduxjs/react-redux-benchmarks&quot;&gt;updated React-Redux benchmarks repo&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And then I guess we&#39;ll wrap up this section with three things for me. so I, think I briefly mentioned last month that I was working on a proof of concept to try to optimize React-Redux&#39;s subscription notifications for our large applications. so I have a draft PR, and I&#39;ve put that up, and the early numbers look promising, like 20% to 30% faster depending on the situation. [00:51:22]&lt;/p&gt;
&lt;p&gt;as part of that, I also updated my React-Redux benchmarks repo so that I&#39;ve got better metrics that I&#39;m capturing and, a better, more realistic set of example scenarios to be measuring against. And then one of the conference talks that I&#39;ve been doing this year is literally on the basics of performance optimization. [00:51:50]&lt;/p&gt;
&lt;p&gt;there&#39;s a set of general scientific principles to apply, descriptions of actual tools that you would use to measure JavaScript performance and fi- try to figure out which lines of code are slow, and I talk about some of the examples I did while working on Immer last fall [00:52:12]&lt;/p&gt;
&lt;p&gt;I think this is all very important even in the age of an AI because AI tends to write the obvious code. It doesn&#39;t necessarily write the fast code. And we collectively were already very bad at asking, &quot;Is this code fast?&quot; in the first place when we were the ones writing it. And now that n- we&#39;re not the ones writing it, it&#39;s even easier to never ask the question, &quot;Is it fast?&quot; [00:52:28]&lt;/p&gt;
&lt;h2 id=&quot;aurora-scharffs-preferred-rsc-component-architecture&quot;&gt;&lt;a href=&quot;https://aurorascharff.no/posts/component-architecture-for-react-server-components/&quot;&gt;Aurora Scharff’s preferred RSC component architecture&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl (editing):&lt;/strong&gt; Yep. So right here is where we lost about four minutes. Uh, unfortunately, I, I definitely cannot reproduce what I said, which is a big bummer. I think it was probably really smart and really clever and really wrapped up the whole thing of what we talked about all episode. But unfortunately, it&#39;s gone into the ether. [00:52:51]&lt;/p&gt;
&lt;p&gt;I tried re-extracting the audio as recorded from the original source, and it was just blank. We&#39;re just completely missing 10 minutes. sorry. [00:53:07]&lt;/p&gt;
&lt;p&gt;All I really know is that I was introducing Aurora Sharf&#39;s blog post titled &quot;Component Architecture for React Server Components&quot; as her preferred RSC component architecture. [00:53:15]&lt;/p&gt;
&lt;p&gt;And I know that because Mark said after [00:53:26]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark AI filler:&lt;/strong&gt; yeah. And, Aurora really is the expert on this kind of stuff right now [00:53:29]&lt;/p&gt;
&lt;h2 id=&quot;lovable-projects-now-use-tanstack-start-by-default&quot;&gt;&lt;a href=&quot;https://lovable.dev/blog/building-apps-using-tanstack-start&quot;&gt;Lovable projects now use TanStack Start by default&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark AI filler:&lt;/strong&gt; And then one, one other interesting data point to wrap up, announced that all of their Vibe-coded app projects are now going to be built with TanStack Start by default. I don&#39;t remember whether they were just using plain Vite React router or something previously. but this feels it, it&#39;s a very interesting data point. A sign of the maturity of TanStack Start, and that they&#39;re, and they&#39;re happy to actually adopt this as the default setup for all their projects going forward. [00:53:34]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl (editing):&lt;/strong&gt; And that is all we&#39;ve got for you today. I am re-recording this afterwards just like all the other things I said in the last 10 minutes. So I&#39;m not gonna do the usual full sign-off &#39;cause this is totally fake and I&#39;m just sitting at my desk talking to myself. Sorry for taking a few extra days to get the podcast out. I am just tired and it&#39;s summer [00:54:05]&lt;/p&gt;
&lt;p&gt;Thanks so much for listening all the way to the end even. talk to you next month [00:54:24]&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2026-06</link><guid isPermaLink="false">reactiflux-tmir-2026-06</guid><pubDate>Tue, 23 Jun 2026 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>TMiR 2026-05: Who even is on the Core team anymore, TanStack got pwn&#39;d bad</title><description>&lt;iframe width=&quot;100%&quot; height=&quot;180&quot; frameborder=&quot;no&quot; scrolling=&quot;no&quot; seamless=&quot;&quot; src=&quot;https://share.transistor.fm/e/dd8e79de&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#some-podcast-meta&quot;&gt;00:00:55&lt;/a&gt;]&lt;/code&gt; Some podcast meta&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#new-releases&quot;&gt;00:01:49&lt;/a&gt;]&lt;/code&gt; New Releases
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#ts-v7-beta&quot;&gt;00:01:51&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-beta/&quot;&gt;TS v7 beta&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#rolldown-10&quot;&gt;00:05:15&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://voidzero.dev/posts/announcing-rolldown-1-0&quot;&gt;Rolldown 1.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#fate-10&quot;&gt;00:06:51&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://fate.technology/posts/fate-1.0&quot;&gt;Fate 1.0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#main-content&quot;&gt;00:09:48&lt;/a&gt;]&lt;/code&gt; Main Content
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#react-core&quot;&gt;00:09:56&lt;/a&gt;]&lt;/code&gt; React Core
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#react-team-status-after-meta-layoffs&quot;&gt;00:10:09&lt;/a&gt;]&lt;/code&gt; React team status after Meta layoffs?&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#react-compiler-port-to-rust-still-in-progress-latest-pr&quot;&gt;00:14:59&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/poteto/status/2056865079543681329&quot;&gt;React Compiler port to Rust still in progress&lt;/a&gt;, latest &lt;a href=&quot;https://github.com/facebook/react/pull/36173&quot;&gt;PR&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#tanner-linsley-is-projecting-react-its-definitely-not-a-fork&quot;&gt;00:15:54&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://tannerlinsley.com/posts/projecting-react&quot;&gt;Tanner Linsley is &quot;projecting&quot; React&lt;/a&gt; (it&#39;s definitely not a fork)
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#tests-are-the-new-moat&quot;&gt;00:21:38&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://saewitz.com/tests-are-the-new-moat&quot;&gt;Tests are the new moat&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#brooks-lybrand-thoughts-on-react-community-after-react-miami&quot;&gt;00:23:32&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://brookslybrand.com/posts/react-miami-2026.html&quot;&gt;Brooks Lybrand thoughts on React + community after React Miami&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#tanstack-is-exploring-how-to-expose-server-components&quot;&gt;00:25:04&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://tanstack.com/blog/react-server-components&quot;&gt;TanStack is exploring how to expose Server Components&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#who-owns-the-tree&quot;&gt;00:27:19&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://tanstack.com/blog/who-owns-the-tree&quot;&gt;Who Owns the Tree&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#rscs-in-tanstack&quot;&gt;00:27:31&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://frontendmasters.com/blog/react-server-components-in-tanstack/&quot;&gt;RSCs in TanStack&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#remix-v3-beta-preview&quot;&gt;00:28:12&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://remix.run/blog/remix-3-beta-preview&quot;&gt;Remix v3 beta preview&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#both-remix-and-tanstack-are-exploring-what-if-no-react&quot;&gt;00:28:35&lt;/a&gt;]&lt;/code&gt; Both Remix and TanStack are exploring &quot;what if no React&quot;?&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#tsrx-a-variant-on-jsx&quot;&gt;00:36:11&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://tsrx.dev/&quot;&gt;TSRX&lt;/a&gt;, a variant on JSX&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#security-everything-is-compromised&quot;&gt;00:41:52&lt;/a&gt;]&lt;/code&gt; Security! Everything is compromised
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#tanstack-router-compromised-and-socket-analysis&quot;&gt;00:42:04&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://tanstack.com/blog/npm-supply-chain-compromise-postmortem&quot;&gt;TanStack Router compromised&lt;/a&gt;, and &lt;a href=&quot;https://socket.dev/blog/tanstack-npm-packages-compromised-mini-shai-hulud-supply-chain-attack&quot;&gt;Socket analysis&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#tanstack-followup-with-followup-hardening&quot;&gt;00:46:58&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://tanstack.com/blog/incident-followup&quot;&gt;TanStack followup with followup hardening&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#nx-monorepo-tool-compromised-as-a-result&quot;&gt;00:47:10&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://nx.dev/blog/nx-console-v18-95-0-postmortem&quot;&gt;Nx monorepo tool compromised&lt;/a&gt; as a result&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#react2shell-recaps-from-lachlan-davidson-and-sylvie&quot;&gt;00:52:02&lt;/a&gt;]&lt;/code&gt; React2Shell recaps from &lt;a href=&quot;https://lachlan.nz/blog/the-react2shell-story/&quot;&gt;Lachlan Davidson&lt;/a&gt; and &lt;a href=&quot;https://sylvie.fyi/posts/react2shell/&quot;&gt;Sylvie&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#next-1625-and-more-react-cves&quot;&gt;00:52:25&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/vercel/next.js/releases/tag/v16.2.5&quot;&gt;Next 16.2.5 and more React CVEs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#npm-adds-staged-packages-and-e18e-adds-guidance&quot;&gt;00:53:19&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://docs.npmjs.com/staged-publishing&quot;&gt;NPM adds “staged packages”&lt;/a&gt; and &lt;a href=&quot;https://e18e.dev/docs/publishing.html#staged-packages&quot;&gt;E18E adds guidance&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#pnpm-11-defaults-to-min-release-age-npm-12-will-block-by-default&quot;&gt;00:54:50&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://socket.dev/blog/pnpm-11-adds-new-supply-chain-protection-defaults&quot;&gt;PNPM 11 defaults to min release age&lt;/a&gt;, NPM 12 will &lt;a href=&quot;https://github.com/npm/rfcs/pull/868&quot;&gt;block by default&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#review-your-gh-actions-people-&quot;&gt;00:57:59&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/e18e/ecosystem-issues/issues/266&quot;&gt;Review your GH Actions, people!&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#mark-posted-his-big-ai-blog-posts-part-1-fears-and-journey&quot;&gt;00:59:13&lt;/a&gt;]&lt;/code&gt; Mark posted his big AI blog posts. &lt;a href=&quot;https://blog.isquaredsoftware.com/2026/05/ai-thoughts-part-1-fears-opinions-journey/&quot;&gt;Part 1: Fears and Journey&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-05#outro&quot;&gt;01:08:39&lt;/a&gt;]&lt;/code&gt; Outro&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;interview&quot;&gt;Interview&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Thank you for joining us. We&#39;re coming to you live from Reactiflux, the place for professional developers using React. And I am Karl. I&#39;m a staff level product developer and freelance community leader/entrepreneur/I don&#39;t know what I am anymore, here at Reactiflux, where I do community programs like this and build some tools to help keep the community operating. [00:00:00]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; And I&#39;m Mark. My day job is at Replay, where we&#39;ve built a time traveling debugger for web apps, and that can be used by both humans and agents. And in the last couple months, I&#39;ve gone between building MCP tools, doing product manager work, being a dev rel, going on vacation, and now I&#39;m trying to figure out what I&#39;m doing now that I&#39;m sort of back, except that I&#39;m going on more conference travel shortly. So it&#39;s kinda crazy right now. [00:00:19]&lt;/p&gt;
&lt;p&gt;I do Redux stuff and I collect links. [00:00:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Man, we&#39;re all doing too much stuff. It&#39;s just too many things. [00:00:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Indeed. My... I, I needed that vacation. Two weeks of golf in Scotland. It was fantastic. [00:00:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, that&#39;s pretty good. Scotland&#39;s great. I love Scotland. [00:00:52]&lt;/p&gt;
&lt;h2 id=&quot;some-podcast-meta&quot;&gt;Some podcast meta&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Okay, let&#39;s get into it. Before we go into, like, new releases and whatever, some, like, meta discussion whatever, historically we were co-hosted by Mo, who brought us some lovely React Native and agency perspective here. He&#39;s had to step back a bit because of just, like, personal things and work busyness, and he just hasn&#39;t had the time and energy to really go up here. And I guess I, I also wanna mention, I am feeling somewhat similarly. I&#39;ve been doing this for, like, three years now. I&#39;m no longer reading React and web news at the level of intensity that I historically have been. [00:00:55]&lt;/p&gt;
&lt;p&gt;So, um, yeah. Mark and I are talking about how to continue this. This is a valuable service. I think this podcast is good. I want to keep it going. I think a once a month news check-in about the ecosystem is really valuable, so I wanna keep offering it. But, uh, that&#39;s where we&#39;re at. So just FYI, stuff is gonna change. [00:01:25]&lt;/p&gt;
&lt;p&gt;Stuff has changed. Stuff will continue to change. Just like life. [00:01:40]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yeah, that sounds all too real. [00:01:44]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; We&#39;re gonna try and keep doing this, but it&#39;ll be a little different than we have. [00:01:46]&lt;/p&gt;
&lt;h2 id=&quot;new-releases&quot;&gt;New Releases&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; But yeah, okay, into some new releases. [00:01:49]&lt;/p&gt;
&lt;h2 id=&quot;ts-v7-beta&quot;&gt;&lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-beta/&quot;&gt;TS v7 beta&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; First off, we have the TypeScript v7 beta, which is, if I recall correctly, this was gonna be the one where it&#39;s all rewritten. [00:01:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; This is the TS Go release, and you might also notice this is pretty hot on the heels of TS 6.0. So TS 6.0 is supposed to be the last actual release of the current written in TypeScript compiler, and 6 is the one where they changed a bunch of defaults to be more strict and better match the way JavaScript&#39;s used today. [00:02:00]&lt;/p&gt;
&lt;p&gt;7 is same settings, but completely different compiler implementation. One interesting bit here is I believe that 7.0 is not going to have a lot of the programmatic API stuff that exists right now. Uh, I think they said they hope to get that out in a 7.1. That does mean that there is definitely going to be some amount of, like, fluctuation and churn as you go upwards. [00:02:22]&lt;/p&gt;
&lt;p&gt;But in terms of just using the compiler to type check, go ahead and start using 7. Like- Cool ... right now. It&#39;s there. Okay. It&#39;s faster. It&#39;s the same logic. Use it right now. [00:02:49]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; So that&#39;s like the SDK, like if you&#39;re using TypeScript to do some build tools, using it in JavaScript yourself, that&#39;s not feature complete yet? [00:03:00]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Right. So yeah, so I, I don&#39;t know what all is and isn&#39;t- [00:03:09]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Right. I&#39;ve never used that, so ... [00:03:14]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; intended to be included in the API. But like, for example, in Replay&#39;s code base, we have some programmatic linting stuff that uses the TS Morph package, and TS Morph depends on being able to import the TypeScript as a library and create- Right [00:03:15]&lt;/p&gt;
&lt;p&gt;a program instance and programmatically type check. And so that sort of thing might not fully be available in 7.0, but maybe in 7.1 in some form. [00:03:30]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah. That makes sense. Interesting. Yeah, I mean, that stuff&#39;s always a little bit... Usually, when you&#39;re trying to use it as an SDK in that way, it&#39;s because you&#39;re doing something a little bit more finessed and complicated, so it makes sense that that takes a little more time to, to settle out. [00:03:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; I know that there&#39;s, in general, a lot of issues because people have reached into TypeScript&#39;s internals to im- be able to import methods that were never really intended to be exposed- Right ... to the public. [00:03:57]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Classic. [00:04:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; As well as just the fact that it&#39;s one thing when it&#39;s TypeScript importing TypeScript. [00:04:09]&lt;/p&gt;
&lt;p&gt;It&#39;s another thing when the TypeScript implementation is now in another language, Go, and so how do you expose that back to TypeScript client code, as well as how do you do so performantly, &#39;cause you&#39;re now crossing the language barrier? I know that&#39;s what the, like the Oxlint folks have been dealing with in terms of trying to implement typed linting, but needing to go back and forth between pieces written in different languages. [00:04:14]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Mm-hmm. The parallelization is interesting. I, I... Like, that&#39;s such a good reason to reach for Go, is to introduce parallelization, &#39;cause, like, Go routines and, you know, whatever. Go is good at that. Well, that&#39;s really cool to see that TypeScript is now doing... It says, &quot;Now performs many ch- steps in parallel, including parsing, type checking, and emitting.&quot; [00:04:43]&lt;/p&gt;
&lt;p&gt;Anytime you can break work down into smaller units that can be isolated from each other and executed in parallel is awesome. So love seeing that being brought into TypeScript. Like, that&#39;s so core and foundational. That&#39;s awesome. [00:05:01]&lt;/p&gt;
&lt;h2 id=&quot;rolldown-10&quot;&gt;&lt;a href=&quot;https://voidzero.dev/posts/announcing-rolldown-1-0&quot;&gt;Rolldown 1.0&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; And then on a similar note, the Void Zero folks announced that Rolldown has hit 1.0. [00:05:15]&lt;/p&gt;
&lt;p&gt;And to recap what that is, uh, Vite had been using two different bundlers, had been using esbuild, which is fast and written in Go for development mode, and had been using Rollup, which was a written-in-TypeScript JavaScript bundler for production builds. And so in order to both make it go faster and harmonize things, you&#39;re doing both dev and prod builds with the same pipeline, they essentially re-implemented Rollup but in Rust and called it Rolldown. [00:05:20]&lt;/p&gt;
&lt;p&gt;So yet more build tools being written in Rust, and it&#39;s been a long time coming. Vite has been using Rolldown in various betas for a while. And Rolldown itself has now actually hit 1.0. [00:05:52]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Cool. Yeah, I was just trying to refresh my memory on... &#39;Cause we&#39;ve, I feel like we&#39;ve been talking about Rolldown 1.0 for, like, a really long time. [00:06:05]&lt;/p&gt;
&lt;p&gt;So I was like, &quot;When was that?&quot; It looks like we had the, there was an RC of 1.0 back in January. So, like, that&#39;s some pretty serious, you know, d- I don&#39;t know, dedication to stability and rollout. Can we just add one more, it&#39;s a suffix to roll by s- describing this as a rollout? We&#39;ll get the, the rollup, Rolldown rollout. [00:06:13]&lt;/p&gt;
&lt;p&gt;But yeah, so okay. So they&#39;ve been in RC. They&#39;ve had a Rolldown 1.0 RC out since January, and they&#39;re calling it good. They&#39;re shipping it. That&#39;s awesome. [00:06:32]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yep. Wonderful stuff. [00:06:40]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Love that. Great. Well, yeah, and you can, uh, listen to our January episode to see, uh, to hear us discuss that previously. [00:06:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; All right, and then one other release to announce. [00:06:48]&lt;/p&gt;
&lt;h2 id=&quot;fate-10&quot;&gt;&lt;a href=&quot;https://fate.technology/posts/fate-1.0&quot;&gt;Fate 1.0&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Christoph Nakazawa has released Fate 1.0. So we, uh, we&#39;d mentioned this a couple times previously, but Fate is a new React-based data fetching library. My closest comparison is it&#39;s kind of like a GraphQL in the sense that the client is specifying pieces of data to fetch. And to be honest, I still don&#39;t have a, have a f- really good grasp on how this works. [00:06:51]&lt;/p&gt;
&lt;p&gt;I&#39;ve just seen some of the d- some of his descriptions. But it&#39;s meant to be composable queries, normalized data fetching, and integrating with React&#39;s new async and suspense-based features. My understanding is that this is very heavily... I&#39;m not gonna say, I&#39;m not gonna say vibe coded. I, I know he&#39;s, like, been very intentional in how he&#39;s built it. [00:07:18]&lt;/p&gt;
&lt;p&gt;My understanding is most of the actual code here was written with AI tooling, with a lot of intent behind it. [00:07:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah. That&#39;s fair. I don&#39;t know. Written with AI tooling and vibe coded are not the same thing. That&#39;s interesting. I don&#39;t know. This definitely looks kinda interesting. It looks like it&#39;s trying to be something, like you said, kinda GraphQL-ish, re- relay-ish, TanStack, you know, ish. [00:07:49]&lt;/p&gt;
&lt;p&gt;But I guess, like, from first principles in the server components era- I guess is how it feels to me reading this. That&#39;s interesting. That&#39;s valuable. That&#39;s a really good exploration, but is- I don&#39;t know, something about this says r- like, research project more than something I would bet my, you know, bet my work on. [00:08:05]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; My vague sense, and this is just, you know, me eyeballing things as always, real project, not just a, an experimental toy. Early obviously, and I would assume no one else is actually using it at the moment, but it&#39;s the kind of thing that I could see getting some- Right ... amount of adoption over time. [00:08:26]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; That&#39;s curious. [00:08:42]&lt;/p&gt;
&lt;p&gt;That&#39;s interesting. Yeah, we&#39;ll s- have to see how it goes. That&#39;s really interesting. Love having more explorations on ways to do data fetching better. I&#39;m having thoughts come up that I know I&#39;m also going to wanna discuss when we start talking about Remix V3 in a little bit. It&#39;s so s- funny to me how much exploration has been done over the last 15 years in, like, how do we transfer data and UI across the network? [00:08:43]&lt;/p&gt;
&lt;p&gt;We&#39;re still figuring that out. So I, I have more to say on that when we t- talk about Remix V3. But, you know, this is interesting. This looks like a valuable exploration. Christophe Nakazawa is definitely someone to take seriously. [00:09:09]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; And int- interestingly, I believe he actually joined Void Zero as a company, and his day job stuff is now around some of the, like, the Void server framework pieces that they&#39;re building. [00:09:21]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Oh, yeah. Interesting. He says he&#39;s product at Void Zero on his Twitter. Curious. That&#39;s cool. Very cool to see him still so, like, deeply embedded in the ecosystem, and then doing, like, little research side projects like this. Prototypes of alternate usage patterns. Cool. [00:09:32]&lt;/p&gt;
&lt;h2 id=&quot;main-content&quot;&gt;Main Content&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Okay, onto something resembling main content, and something resembling React core-ish stuff. [00:09:48]&lt;/p&gt;
&lt;h2 id=&quot;react-core&quot;&gt;React Core&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; So this first bit is something that I surprisingly don&#39;t actually have much of a link for, but I&#39;m going to try to pass on a summary of bits and pieces and conversations that I&#39;ve had in multiple places. [00:09:56]&lt;/p&gt;
&lt;h2 id=&quot;react-team-status-after-meta-layoffs&quot;&gt;React team status after Meta layoffs?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Loosely put, I have no idea who&#39;s even still on the React team at this point, for multiple reasons. [00:10:09]&lt;/p&gt;
&lt;p&gt;So Meta just went through two rounds of layoffs, and from watching things, I know that there was some shuffling in and around r- the React organization. For example, I think the Relay team used to be considered part of the React org, and now they&#39;re part of a separate organization. But a number of people that I know have, appear to have left the React team one way or another. [00:10:17]&lt;/p&gt;
&lt;p&gt;Uh, for example, Lauren, who&#39;d been working on the React compiler, is now over at Cursor. I believe I saw that Sebastian Markbagha has left Vercel and is possibly not labeling himself as being part of the React team at this point. Joe Savona, who was essentially a lead on the React team for the last year or two, I heard a rumor that he has been reassigned to something else AI related. [00:10:43]&lt;/p&gt;
&lt;p&gt;These are all bits and pieces. I don&#39;t have, you know, direct links for them. But the picture I&#39;m getting is that what we would consider the React core team has been kind of decimated. If you were to ask me right now, like, who am I pretty sure is on React core at the moment, about the only people I could still point to would be Andrew Clark at Vercel and Rick Hanlon at Meta. [00:11:11]&lt;/p&gt;
&lt;p&gt;There&#39;s still a bunch more beyond that, but just, I, I, like, I literally don&#39;t know who is working on React right now, which is not a thing I would&#39;ve said last fall at React Conf. And so, this also brings up a number of other questions because Seth Webster was the head of the React org at Meta, and he also spent the last few years quietly trying to put together the React Foundation, which got announced. [00:11:34]&lt;/p&gt;
&lt;p&gt;And I&#39;ve been trying to keep an eye on, you know, any news and discussion of where the foundation is. Seth himself just moved over to Expo. That was publicly announced. And I believe he&#39;s still going to be the head of the React Foundation, but I also have seen no evidence of anything as far as actual work or output from this foundation, either in terms of community involvement or events or taking over the day-to-day technical work on React itself. [00:12:00]&lt;/p&gt;
&lt;p&gt;I actually did see in a PR yesterday, Sebastian Silbermann, who is essentially part of the React Core and Core team externally at this point, did make a mention of moving repositories over to a React Foundation org, at which point they might be doing some, you know, kill and kill AI and bot spam type cleanup. [00:12:38]&lt;/p&gt;
&lt;p&gt;So all this says to me that they&#39;re, like, things are changing around React&#39;s development process, both who&#39;s doing it and where it&#39;s happening, but it also feels, just me observing things, it feels like things are fragmenting and stalling. And I actually legitimately do not know what that means in terms of technical development on React itself in the near future. [00:13:02]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Strange, curious, yeah. So I&#39;m in a, I&#39;m in a Discord for the React Foundation, and I noticed over the past several months that virtually nothing has happened in there. [00:13:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; There&#39;s been essentially no conversation except maybe there was a little bit of chatter about something React Native related, like a week ago. [00:13:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; And I saw something about a contributors Discord as well, so I think there&#39;s a private space being set up for people who are act- actively contributing code to React Core. But I, as someone who does not contribute code to React Core, I&#39;m not in there, and I, so I don&#39;t know exactly what&#39;s going on. I do note that the website, you know, react.dev Meet the Team, lists Sebastian, lists Lauren. [00:13:48]&lt;/p&gt;
&lt;p&gt;So it lists a number of people who are, you are saying, have been publicly confirmed as no longer- [00:14:11]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; I think Lauren may still be involved with the compiler. I don&#39;t think she, I don&#39;t think she entirely left the team, but she certainly left Meta overall. Sebastian, I got the impression he&#39;s, he&#39;s out for now, but- [00:14:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Well, certainly at least job titles are out of date, &#39;cause, you know, Lauren Tan says engineer at Meta, and so if she&#39;s no longer at Meta, that&#39;s wrong. [00:14:30]&lt;/p&gt;
&lt;p&gt;This website has not been updated. So yeah, oof. That&#39;s, uh, yeah, okay. Certainly lack of community engagement, I would say. [00:14:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Having said that, I have spent a lot of time over the years just watching the list of PRs in the r- in the React repo, just to get a sense of what&#39;s going on, and I hadn&#39;t done that much over the last few months just because of travel and life and work and stuff. [00:14:45]&lt;/p&gt;
&lt;h2 id=&quot;react-compiler-port-to-rust-still-in-progress-latest-pr&quot;&gt;&lt;a href=&quot;https://x.com/poteto/status/2056865079543681329&quot;&gt;React Compiler port to Rust still in progress&lt;/a&gt;, latest &lt;a href=&quot;https://github.com/facebook/react/pull/36173&quot;&gt;PR&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; I was looking at it the other day, and the bulk of the PRs that I&#39;m seeing at the moment do actually have to do with either things like updating some of the release process or, uh, some work on the React compiler port to Rust. And in fact, Lauren just confirmed on Twitter the other day, that is still actively being worked on. They are testing it out internally at Meta. I believe she&#39;s still involved in that from her side. They are trying to push that along. I do think that&#39;s gonna be a big deal for c- for a couple reasons, because eyeballing things, to me, the biggest blockers to people adopting the compiler right now are the comp- are the requirement that you still have to use Babel as part of the build process, as well as the speed of the compiler. And so if porting the React compiler to Rust makes it faster and eliminates the need for Babel, then those two roadblocks go away [00:14:59]&lt;/p&gt;
&lt;h2 id=&quot;tanner-linsley-is-projecting-react-its-definitely-not-a-fork&quot;&gt;&lt;a href=&quot;https://tannerlinsley.com/posts/projecting-react&quot;&gt;Tanner Linsley is &quot;projecting&quot; React&lt;/a&gt; (it&#39;s definitely not a fork)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; All right, so, uh, that, that brings us up to a very interesting and somewhat controversial article, which is Tanner Linsley not quite forking React itself, projecting React. So the, the idea here is the React team has spent a lot of time over the last eight-plus years adding all these new fancy async concurrent features to React. [00:15:54]&lt;/p&gt;
&lt;p&gt;As we&#39;ve talked about, they had a general vision for what they were trained to build, and they&#39;ve essentially arrived at what their vision roughly was. But, you know, a lot of us are still building React apps that don&#39;t make use of the new features or don&#39;t, you know, just don&#39;t need all the capabilities that are in there. [00:16:19]&lt;/p&gt;
&lt;p&gt;But React as a package is delivered as a giant monolith. There is no option for, like, disable concurrent mode or something like that. And so all the code that implements this goes in the bundle whether you&#39;re using it or not. And that also means a lot of the logic and the checks that take up time are still in there. [00:16:37]&lt;/p&gt;
&lt;p&gt;And so Tanner actually went out and he cloned the React repo, and he told an AI essentially, &quot;Rip out all the pieces of React that I personally do not need,&quot; and he was able to rebuild React with a lot of pieces stripped out, and it drastically shrank the bundle size, and it sped up SSR. And he is actually running his own personal website in tanstack.com on this personal modified fork of React. [00:16:59]&lt;/p&gt;
&lt;p&gt;He didn&#39;t wanna call it a fork, &#39;cause that term has a lot of political implications, so he called it a projection of React, in the sense of, like, projecting data or, like, viewing a subset of the data. And so technically he&#39;s made the changes available, but he is very intentionally not telling people to go try this. [00:17:32]&lt;/p&gt;
&lt;p&gt;Like, this is not Tanner saying, &quot;I&#39;m forking React, use my version.&quot; This is, &quot;I played with something and if you want to look at what I did, it&#39;s over here, but I&#39;m actually kind of telling you don&#39;t use what I did.&quot; And I&#39;ve seen mixed reactions to this. I saw a number of people say, &quot;This is a horrible idea,&quot; because, you know, LLMs can make mistakes, and if we start modifying packages, then there&#39;s the risk of introducing new bugs and security problems that w- that got handled in the original, and if you&#39;re mod-- If, basically if you&#39;re making changes, you run the risk of breaking stuff. [00:17:55]&lt;/p&gt;
&lt;p&gt;And I get that But I&#39;m actually kind of in favor of this idea for a number of reasons. Like, code is not sacred. Code is there. A license says anyone can modify this if, you know, however they want. If Tanner wanted to fork this, that would be a totally valid thing to do morally, legally, ecosystemly. Maybe not a good idea, but it&#39;s a totally valid option. [00:18:31]&lt;/p&gt;
&lt;p&gt;But also, React exists in its current form because the React team wanted to pursue certain ideas. It&#39;s totally valid for other people in the ecosystem to say, &quot;I would like to pursue different ideas and trade-offs and see what happens.&quot; And especially given the way that it looks like React development is kind of fragmenting and stalling slightly, I am entirely in favor of people trying to do different experiments. [00:18:55]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah. Like, this is making me think back to some of our, some of the conversations we&#39;ve had over the years at this point. And like, you know, so something that I, I&#39;ve expressed pretty consistently is this sense of React as a, like, research project, pushing the envelope of what&#39;s possible with UI over the network. [00:19:24]&lt;/p&gt;
&lt;p&gt;And I think a very real tension with React versus how it&#39;s used is not everyone is trying to push the envelope of what&#39;s possible with UI over a network. Some people just want it to fucking work, and React needs to serve everyone In a way that they want. So, it... And so, you know, okay, so bringing it back to this specific blog post, Tanner Linsley projecting React, his motivation here was React&#39;s bundle size is quite large, and that&#39;s true. [00:19:42]&lt;/p&gt;
&lt;p&gt;It&#39;s quite big, and it&#39;s quite big because it&#39;s trying to do a lot of things in a generic manner for a lot of different people. And so I think there&#39;s a very real argument here that if React is trying to do five different things for five different customers, I am going to use AI to remove the code for the four customers that I am not. [00:20:14]&lt;/p&gt;
&lt;p&gt;I am only using this surface area. This surface area has pretty clearly defined contracts and testing guarantees, so I am going to rewrite this part of the surface area that I am touching. And I think that makes a ton of sense here. [00:20:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yeah, and it, it also ties into another theme that we&#39;ve seen going on a lot lately, where people are taking publicly available tools, libraries, whatever, AI rewriting them to an- another entire language, but because all the tests are already there, you can verify that your rewrite is still valid. [00:20:52]&lt;/p&gt;
&lt;p&gt;And in this case, I think the risk of, you know, accidentally introducing, you know, major new bugs or security problems is a lot more limited, because you still have all the original React tests for all the functionality you care about, you&#39;re just deleting the tests and the logic for the functionality you don&#39;t care about. [00:21:11]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Which makes me think, we brought this in, I think, two or three months ago. Actually, it might have been the episode that we lost the audio for, come to think of it. [00:21:31]&lt;/p&gt;
&lt;h2 id=&quot;tests-are-the-new-moat&quot;&gt;&lt;a href=&quot;https://saewitz.com/tests-are-the-new-moat&quot;&gt;Tests are the new moat&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; But we talked about this blog post from a mutual acquaintance of ours, uh, Daniel Sawitz, Tests Are The New Moat. And I think that&#39;s what you&#39;re talking about, is, like, if the tests are out there, if you can assert that your code passes this test suite, then what&#39;s the difference between your code and their code? [00:21:47]&lt;/p&gt;
&lt;p&gt;You know? If it&#39;s behaviorally the same as guaranteed by the test suite, and you trusted the test suite to guarantee the behavior of the original, then that&#39;s fungible, in a way. That&#39;s in- you know, one thing interchangeable for the other, assuming the tests are good enough. So yeah, that&#39;s interesting. I see a comment here that I wanna bring in. [00:21:54]&lt;/p&gt;
&lt;p&gt;The risk, I think the risk is the fragmentation. Yes, sure, but, like, th- there&#39;s risk of fragmentation, but it&#39;s also, like, what risks does the fragmentation introduce? Like, fragmentation is not a risk on its own. It leads to other things. Like, if there&#39;s too many tools to maintain, then maybe it&#39;s harder to guarantee the security of any one thing. [00:22:13]&lt;/p&gt;
&lt;p&gt;But we already have that situation, as, uh, devin- as evidenced and demonstrated by all of the, you know, the Shai Hulud attacks, as evidenced by, we&#39;re gonna talk about this soon, TanStack getting compromised and 40 packages getting pwned with malicious versions published. So, like, in that sense, it&#39;s kind of safer to write your own. [00:22:34]&lt;/p&gt;
&lt;p&gt;Like, okay, sure, it&#39;s, you know, it, it, maybe it has its own vul- security vulnerabilities, but, like, you&#39;re not exposed to the supply chain risk. So I, yeah, I think the advantages are not clear-cut. [00:22:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; So overall, like Tanner heavily emphasized, this is an experiment. I tried it to see what would happen. I&#39;m writing up the results of the experiment. [00:23:04]&lt;/p&gt;
&lt;p&gt;Please don&#39;t actually use this. But I actually see this as a valuable experiment. [00:23:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, I would say don&#39;t m- don&#39;t use this, but consider recreating it with something else that you find 80% good but not quite suitable. If there&#39;s a test suite, try throwing an AI tool at it. Anyway, interesting. [00:23:20]&lt;/p&gt;
&lt;h2 id=&quot;brooks-lybrand-thoughts-on-react--community-after-react-miami&quot;&gt;&lt;a href=&quot;https://brookslybrand.com/posts/react-miami-2026.html&quot;&gt;Brooks Lybrand thoughts on React + community after React Miami&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; And then one other sort of adjacent bit, which is, uh, Brooks Lybrand, who&#39;s one of the Remix React Router developers, put up a post with his thoughts on the React Miami Conference. [00:23:32]&lt;/p&gt;
&lt;p&gt;But one of the s- one of the big sections is how are people feeling about React? And some of this was, well, you know, a little bit of the enthusiasm has gone out because AI is hot and React is not. But there was also... He also specifically makes the comment that, quote, &quot;There&#39;s basically now two Reacts,&quot; and it&#39;s kind of how using React today feels. [00:23:45]&lt;/p&gt;
&lt;p&gt;There&#39;s old style React, and then there&#39;s all the, the new fancy Async, Suspense-y stuff, and they&#39;re almost, like, two different frameworks at this point. And so it&#39;s kind of a mindset thing. [00:24:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I did read this post from Brooks. It echoes a lot of, uh, kind of what I&#39;ve experienced. I don&#39;t know about the two, two Reacts part, but React Miami has been a really great conference that I&#39;ve attended it for a number of years, but I haven&#39;t the last two, unfortunately. [00:24:22]&lt;/p&gt;
&lt;p&gt;And I know that this was Michelle&#39;s last year organizing it, and I wanna shout out Michelle Bakels for being a phenomenal organizer and going on to bigger and better things. [00:24:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Wonderful human being, great job organizing the conference. She has put together an amazing community there. [00:24:44]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; And I believe is now organizing or doing, like, developer relations type things for Open Code, if I&#39;m not mistaken. [00:24:51]&lt;/p&gt;
&lt;p&gt;So yeah, do... Power to her. Wanna throw out some recognition while discussing her conference. That&#39;s what we gotta say on there. [00:24:58]&lt;/p&gt;
&lt;h2 id=&quot;tanstack-is-exploring-how-to-expose-server-components&quot;&gt;&lt;a href=&quot;https://tanstack.com/blog/react-server-components&quot;&gt;TanStack is exploring how to expose Server Components&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Let&#39;s go into RSCs on TanStack. [00:25:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; We&#39;ve talked a lot about server components over the last few years and, you know, which frameworks support them and how does it work. One of the biggest issues with server components is that Next.js had them first, and has had them the longest, and has been the only major way to use server components for a long time. [00:25:06]&lt;/p&gt;
&lt;p&gt;Our mental model of server components is still very much based on how does Next.js offer them in the app router. And so TanStack now has... And TanStack Start now has server component support, but they have approached it in a very different method from, from an API design and usage perspective. I&#39;ve seen some of the examples. [00:25:24]&lt;/p&gt;
&lt;p&gt;I&#39;ve looked at- Some of the bits and pieces I, I half understand what&#39;s going on here. But m- my rough explanation is that they allow you to do some of your own server rendering, and then you treat the response as data to the point where you, you would actually use, like, TanStack Query to fetch the dreamed data from the server, and then just sort of include the output on the client side. [00:25:47]&lt;/p&gt;
&lt;p&gt;Another way to put it is they are trained to keep TanStack Start as a client-first framework, where you very clearly say, &quot;This piece of code runs on the server.&quot; Whereas Next in the app router is, we are starting your component tree as the server, and you have to explicitly break out and say, &quot;This is where this...&quot; you know, &quot;This is a client component,&quot; et cetera. [00:26:14]&lt;/p&gt;
&lt;p&gt;So they&#39;re trained to flip the server component usage pattern up, kind of almost, like, upside down compared to how Next.js does it. And I think this is good. I see a lot of benefits here in terms of mental model and complexity, and just even just being able to read the code and say, &quot;This code runs on the server, this code runs on the client, and I understand what&#39;s happening where.&quot; [00:26:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah. That&#39;s definitely the tough part of RSCs. I applaud them for giving it a go, but that, that is a challenging problem space to be working in. [00:27:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; So we&#39;ve, we&#39;ve got a couple different posts here. [00:27:17]&lt;/p&gt;
&lt;h2 id=&quot;who-owns-the-tree&quot;&gt;&lt;a href=&quot;https://tanstack.com/blog/who-owns-the-tree&quot;&gt;Who Owns the Tree&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; And the TanStack folks put up two posts on server components your way, and who owns the tree, treating server components as a protocol and not an architecture. [00:27:19]&lt;/p&gt;
&lt;h2 id=&quot;rscs-in-tanstack&quot;&gt;&lt;a href=&quot;https://frontendmasters.com/blog/react-server-components-in-tanstack/&quot;&gt;RSCs in TanStack&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; And then Adam Rackis did a post on Frontend Masters where he explains server components in TanStack as if you had never heard of server components before. So in other words, rather than trying to say, &quot;Here&#39;s how it compares to Next.js,&quot; just, &quot;Let&#39;s kind of teach this up from first principles.&quot; [00:27:31]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Heh. I, I appreciate that, because the other, the, um, React server components your way blog post on TanStack.com starts with, &quot;What is, what are server components? Yeah, no, this is not a server component crash course.&quot; so okay, they got, they got both audiences covered. [00:27:51]&lt;/p&gt;
&lt;p&gt;Okay, into some stuff that we have referenced already in this episode. Some new and notable stuff in the ecosystem. [00:28:05]&lt;/p&gt;
&lt;h2 id=&quot;remix-v3-beta-preview&quot;&gt;&lt;a href=&quot;https://remix.run/blog/remix-3-beta-preview&quot;&gt;Remix v3 beta preview&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Starting off, I guess, we&#39;ve got Remix v3 beta preview. Beta preview, not just a beta, not just a preview It&#39;s a beta. It&#39;s a beta preview. [00:28:12]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Isn&#39;t that called an alpha? [00:28:23]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I think that that does seem like an alpha, but I guess... No, I, &#39;cause I guess an alpha implies that it might change before a beta, so this is teasing the beta. It&#39;s not gonna change, but this is what it&#39;s gonna be. Fair enough, whatever. It&#39;s okay. It&#39;s great. [00:28:24]&lt;/p&gt;
&lt;h2 id=&quot;both-remix-and-tanstack-are-exploring-what-if-no-react&quot;&gt;Both Remix and TanStack are exploring &quot;what if no React&quot;?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, this is interesting. Th- th- so Remix is no longer a React-based framework, which it, you know, a- and I&#39;m just kinda reflecting on the conversation we just had about TanStack projecting React. And so it seems like it, it... There&#39;s some real ecosystem appetite to do things that are not literally built upon React while being heavily, deeply inspired by. [00:28:35]&lt;/p&gt;
&lt;p&gt;And, like, a, a true, not just inspired by, but, like, a true lineage. Like, you know, it, Remix and TanStack, if both of them are looking at what it means to not bundle React, then that&#39;s a really serious evolution for them as projects that have historically bundled React. So I don&#39;t know. That&#39;s interesting. So they&#39;re announcing this Remix 3 beta preview. [00:28:57]&lt;/p&gt;
&lt;p&gt;It&#39;s a pre-release, not production ready. I guess the core argument, their, the thesis of Remix 3 is that, I guess I would say it&#39;s, their opinion here is that fra- modern frameworks try to reinvent too much of what the web platform already provides, and so they&#39;re trying to strip away some of that complexity that they view as needless on top of just, like, web standards and available, you know, protocols. [00:29:18]&lt;/p&gt;
&lt;p&gt;Which is, I&#39;m sympathetic to that thesis. Like, I think there&#39;s a lot of stuff that React is doing that maybe it would be better for, l- or React, Next, TanStack, that may be better for the platform itself to take care of. Like, we definitely could be doing a lot more at the protocol level. Like, a thing I&#39;ve been seeing people talk about like it&#39;s a brand-new fancy technology is, like, adding .md as a suffix to your URLs to make it render, you know, what would have been a HTML page in Markdown. [00:29:47]&lt;/p&gt;
&lt;p&gt;And I&#39;m like, &quot;We have a header for that.&quot; Like, you can do an Accepts MIME type header to say, &quot;This accepts HTML. This accepts Markdown.&quot; Like, w- that exists. Like, you don&#39;t need to invent some new technology for that. Like, we can do that. [00:30:18]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Okay, there&#39;s a comment in chat that says, &quot;I do not understand what Remix 3 is.&quot; [00:30:33]&lt;/p&gt;
&lt;p&gt;Fair. Let me try to recap where we are. Remix 1 and 2 were full-stack frameworks u- that used React. They mostly introduced things like using loader functions for data fetching. But they were, they were full-stack mostly in the sense of there is a server piece included. Remix 3 is a completely new and different framework that just happens to use the same package name And it is a very different way of writing your components. [00:30:37]&lt;/p&gt;
&lt;p&gt;They also include a whole lot more stuff on the server. The blog post says they include routes, request handlers, responses, middleware, sessions, auth, forms, uploads, assets, data, database, UI components, theming, network, and tests. So in terms of what they provide, they&#39;re trying to provide a lot more out of the box. [00:31:12]&lt;/p&gt;
&lt;p&gt;In terms of the client side code, this is not React. This is a brand new framework on the client side they have invented themselves. It looks a little bit like React in some ways. There&#39;s JSX syntax. But the logic and behavior are very different. For example, instead of a useState hook, you just declare a variable in scope, inside a closure, reassign to that variable, and then you call an update method, which is what actually triggers the re-render. [00:31:32]&lt;/p&gt;
&lt;p&gt;So whereas in React, if you call setState, that both says, &quot;Here&#39;s the new value,&quot; and tells React to re-render, whereas in Remix, you could say variable one equals A, variable two equals B, and then you call an update function to explicitly trigger it. They also have a bunch of things for mixing in behavior, like event handling and styles and things like that. [00:32:07]&lt;/p&gt;
&lt;p&gt;There&#39;s inspiration from React. There&#39;s inspiration from earlier libraries like Backbone. It, it is a very React and yet non-React-based framework. [00:32:34]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; And I&#39;m looking at this, you know, in this Remix III beta preview blog post, I&#39;m looking at this small example copy to clipboard component that they show. And yeah, so Mix is what stood out to me here. [00:32:46]&lt;/p&gt;
&lt;p&gt;There&#39;s, you know, a button and it&#39;s got, like, some ARIA stuff, &#39;cause buttons are, need to be accessible. And then instead of, like, style or, like, class name or, you know, onClick, on, you know, handlers, n- the rest of the props basically that I would expect for a, you know, a button component to have, it has this Mix attribute which, you know, uses the same JSX, like, you know, curly braces. [00:32:58]&lt;/p&gt;
&lt;p&gt;Then the value is an array which has button.secondaryStyle and an on function which is being given, you know, onClick with a clickHandler async function here. That&#39;s interesting. So it&#39;s like, I guess, it&#39;s sort of React, but with manual updates instead of updating by reference, and it&#39;s got, like, this pseudo-functional composition style for arguments. [00:33:22]&lt;/p&gt;
&lt;p&gt;But, like, weirdly, it seems to be mixing styling and b- behavior in this Mix attribute, &#39;cause it&#39;s both applying the secondary button style and an onClick handler as composed mixins, I guess. So that&#39;s, I don&#39;t know. Sure, that&#39;s an opinion you can have. That&#39;s, seems fine, but it&#39;s strange. [00:33:49]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; All that to say that they&#39;ve been talking for a while about how they&#39;re trying to do their own thing, and they are clearly doing their own thing. [00:34:07]&lt;/p&gt;
&lt;p&gt;And I have no idea how much adoption this will get, but can sort of squint and see some of the inspirations. [00:34:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, and somebody in chat just brought out React Router Framework, and it&#39;s like, oh yeah, they did that too. [00:34:22]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Brian and Michael have had a lot of ideas over the last decade. [00:34:26]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah. Boy, boy howdy, have they. [00:34:29]&lt;/p&gt;
&lt;p&gt;I guess, uh, a thing I wanna bring in, speaking about over the last decade, so a decade ago is 2016. I remember in, like, 2012, I read a blog post from Basecamp talking about how they built their UI, and it was basically componentized HTML being cached aggressively and recursively sent over the wire. And, uh, as I have been watching React evolve, it&#39;s like, oh, we&#39;re basically evol- you know, uh, progressing towards the same thing. [00:34:31]&lt;/p&gt;
&lt;p&gt;It&#39;s, you know... This f- this remix description of, like, and- advanced functions and like, you know, it&#39;s got frames, which are server-rendered HTML that you can, like, slot into your client code. And it&#39;s like, man, just, like, the number of times that I see something that, like, viscerally remind me of this thing I read in, like, like literally 15 years ago at this point, talking about sending componentized HTML over the wire in a efficient manner. [00:34:59]&lt;/p&gt;
&lt;p&gt;It&#39;s like, wow, we&#39;re still trying to do that out, uh, generally. Like, we-- I feel like that&#39;s the tension. It&#39;s not that hard to do as a one-off, but it&#39;s really hard to do with effective semantics that let you author that type of experience in a generic framework or library. So we&#39;re just still chasing that high, I guess. [00:35:26]&lt;/p&gt;
&lt;p&gt;So I don&#39;t know. That&#39;s where we&#39;re at. That&#39;s how I&#39;m conceptualizing this Remix 3. And I, I also think of, like, Remix, you know, &#39;cause, like, Remix is, like, backed by Shopify and, you know, Michael and Ryan, they feel like they&#39;re in alignment with the Basecamp folks. And so it&#39;s interesting to see these, this similar set of ideas explored by a set of folks that I consider to have a generally similar set of ideas about the world. But yeah. [00:35:46]&lt;/p&gt;
&lt;h2 id=&quot;tsrx-a-variant-on-jsx&quot;&gt;&lt;a href=&quot;https://tsrx.dev/&quot;&gt;TSRX&lt;/a&gt;, a variant on JSX&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; And on a very, very similar note, Dominic Ganaway is someone who has worked on multiple React frameworks. He originally built his own framework called Inferno. He was part of the actual React core team for a while. I believe he then went over and worked on some of Svelte 5, maybe. [00:36:11]&lt;/p&gt;
&lt;p&gt;Someone who has a lot of experience building these frameworks. He has been working on a new framework called Ripple, which we&#39;ve mentioned a, a few months ago, and one of Ripple&#39;s potential innovations was essentially an improved version of JSX syntax, and Dominic has extracted that into its own package and compiler layer called TSRX. [00:36:29]&lt;/p&gt;
&lt;p&gt;So JSX has an actual specification. It&#39;s out there. It&#39;s in a repo. It&#39;s documented. It also has not changed in a decade, and part of that is because it&#39;s embedded. There&#39;s lots of different tools that know how to parse JSX correctly and do the transformations. Trying to push through any changes to the JSX specification would be hard at this point. [00:36:56]&lt;/p&gt;
&lt;p&gt;Like, I would desperately love to have what&#39;s known as prop hunting, where, say I wanna pass my variable as a prop named My Variable. Why should I have to write My Variable equals curly braces My Variable every time? Like, that&#39;s silly. But the problem is the JSX spec says if you pass a variable name with nothing else, well, HTML treats that as a Boolean, so JSX is gonna treat that as a Boolean too. [00:37:21]&lt;/p&gt;
&lt;p&gt;And it&#39;s like, but it would be so much nicer if I didn&#39;t have to repeat myself. Can&#39;t we improve the specification? And at this point, it&#39;s not gonna happen. So Dominic has gone in and created essentially a bigger, better JSX-like language that is specifically meant for writing components in a template-ish, JavaScript-ish, TypeScript-ish sort of way. [00:37:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Agreed on, like, you cannot-- Like, changing the spec of JSX right now, like, nobody expects the spec to change, which makes it harder to actually change. Like, you know, if it had been evolving, it would be easier to continue evolving, but we have inertia saying it&#39;s fixed. So it&#39;s just tough to evolve. I&#39;m not sure if I love this as a, you know, new DSL. [00:38:21]&lt;/p&gt;
&lt;p&gt;I have been thinking about the value of DSLs in this, you know, agent- agentic AI era that we&#39;re, you know, that we find ourselves in now. And, like, so much-- I feel like there used to be a strong argument for not changing things because you have to do this, like, educational push afterwards. You have to do the developer relations of, like, &quot;Here&#39;s how to use the new thing,&quot; and you have to, like, yada yada. [00:38:45]&lt;/p&gt;
&lt;p&gt;And that&#39;s different now that so much of the new code is being consumed by agents. It&#39;s not an educational cycle. It&#39;s not workshops and, you know, courses and talks and conferences. It&#39;s like you update the markdown. You update the docs that the AI is reading &#39;cause it&#39;s an amnesiac and you have to start from zero every time you give it something. [00:39:06]&lt;/p&gt;
&lt;p&gt;That&#39;s an interesting, like, unlock for changing some of these core assumptions. Like, yes, sure, it&#39;s embedded, it&#39;s deeply embedded into the training program. But like I&#39;ve been pleasantly surprised by things that I expected to be challenging because it&#39;s not deeply embedded in the training data, or it, it runs counter to things that I know are deeply embedded in the training data, like wanting to do functional patterns instead of object-oriented. [00:39:27]&lt;/p&gt;
&lt;p&gt;Because, I mean, so much code is object-oriented and it&#39;s been trained on all of the existing code. I have to say, like something like TSRX, it seems interesting to me from that lens of like... So your thesis is that JSX has rough edges and foot guns that make it less effective, less intuitive, less comprehensible for its intended purpose. [00:39:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Just make a whole new thing. [00:40:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Just make a new thing. Just shave those off and call it something else so that the tools you&#39;re using to author these implementation details don&#39;t get confused about what you&#39;re using. Or, you know, have lint rules, static, you know, tools available to ensure that what they&#39;ve written is valid and g- intended. [00:40:17]&lt;/p&gt;
&lt;p&gt;Ah, that&#39;s interesting. That&#39;s cool. That&#39;s useful. I don&#39;t know. [00:40:33]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; And just looking at this code snippet, a few practical examples of how this is different from JSX. So you&#39;ve got a component keyword instead of the function keyword. It is statement-based, so you can have like an if statement directly in there, and then you don&#39;t do like a return anywhere. [00:40:36]&lt;/p&gt;
&lt;p&gt;It&#39;s just like if condition, key tag In other words, it, like, if that&#39;s true, you insert the P tag, but you don&#39;t have a, like, a return statement anywhere in there. Uh, and then it&#39;s also got an embedded style section as well. Another interesting thing is that this is not actually tied to a framework directly. [00:40:54]&lt;/p&gt;
&lt;p&gt;There are packages that allow you to use this with React in Preact, Ripple, Solid, and View if you really wanted to. So you could, in theory, actually drop this into a real project right now if you really wanted to use it. Did you use it? Probably not, but it&#39;s a very interesting exploration. [00:41:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, definitely really interesting. [00:41:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Okay. Well, we are already almost an hour in, and we still haven&#39;t touched the security thing. So Carl, great job moving that to the end. [00:41:39]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I knew it. [00:41:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Who knew that we would have stuff to say about everything else first? [00:41:47]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; What? You and I have opinions? [00:41:50]&lt;/p&gt;
&lt;h2 id=&quot;security-everything-is-compromised&quot;&gt;Security! Everything is compromised&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; As fucking ever, there&#39;s been a bunch of security stuff going on. TanStack Router got, like, hardcore compromised. I think it was 40-some p- compromised packages. Basically, like, all of- [00:41:52]&lt;/p&gt;
&lt;h2 id=&quot;tanstack-router-compromised-and-socket-analysis&quot;&gt;&lt;a href=&quot;https://tanstack.com/blog/npm-supply-chain-compromise-postmortem&quot;&gt;TanStack Router compromised&lt;/a&gt;, and &lt;a href=&quot;https://socket.dev/blog/tanstack-npm-packages-compromised-mini-shai-hulud-supply-chain-attack&quot;&gt;Socket analysis&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; The entire TanStack Router set of packages was compromised. No other TanStack libraries were compromised. So, like, Query, Start. Or, well, Start because it includes Router, but, like, the actual damaged packages were all Router related. [00:42:04]&lt;/p&gt;
&lt;p&gt;Uh, and the, the way it worked was incredibly complicated. So s- essentially, someone opened up an ex- a, an external PR that in its own depend... Like, essentially changed the package dependencies to point to some compromised poisoned versions. TanStack&#39;s CI was set up to have a shared package cache so that their CI runs would go faster. [00:42:22]&lt;/p&gt;
&lt;p&gt;Someone opened up this PR, modified it a couple times, closed it, and in the process, their poisoned packages ended up in the package cache, so that the next time one of the TanStack maintainers actually did a real PR, the poisoned packages from the cache got installed, exfiltrated credentials, and then that allowed the attacker to then publish new versions of the TanStack packages with more malicious code inside. [00:42:49]&lt;/p&gt;
&lt;p&gt;Uh, it&#39;s actually much more complicated than that, but that&#39;s roughly what happened here. [00:43:21]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah. It&#39;s... I, I wanna see if I can pull in a couple different details without blowing up the time we spent here. [00:43:26]&lt;/p&gt;
&lt;p&gt;But, like, so they, they fork it, they obscure that it is a fork by renaming it to s- you know, configuration, so you d- it&#39;s not easy to find. [00:43:30]&lt;/p&gt;
&lt;p&gt;They publish a commit with li- you know, a malicious payload, commit it with skip CI because they know that will suppress the CI from actually executing on this push. Then- Like open a PR, update the PR so that it appears empty, then close the PR. And in doing this, they have now poisoned the cache with their malicious payload so that the next time a legitimate CI run goes, it will pull in this malicious payload instead of the intended dependency code. [00:43:39]&lt;/p&gt;
&lt;p&gt;All from a fork, that was never run, that was never actually executed, never had CI run or merged or approved. The timeline for this is they open the PR, do multiple force pushes, and then close the PR in under a minute, and that&#39;s how they poison the cache, so the next time a legitimate person ran CI, their credentials were compromised. [00:44:15]&lt;/p&gt;
&lt;p&gt;Like, that&#39;s fucking crazy. [00:44:40]&lt;/p&gt;
&lt;p&gt;They m- compromised a bit of code, organizational policies by the, by TanStack, and complex GitHub Action configuration. And all of this was ultimately enabled by the use of a PR target in their GitHub Action that is like known to be unintuitive. [00:44:42]&lt;/p&gt;
&lt;p&gt;It&#39;s known to a- allow this type of attack. But like, ah, man, what a, th- like that&#39;s, that... What a reasonable thing to miss here. That&#39;s such a complicated set of th- steps to have to do to e- execute this. [00:45:01]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; I&#39;ve done a decent amount of like GitHub Actions CI config over the years for Redux. I have no idea what I&#39;m doing. [00:45:15]&lt;/p&gt;
&lt;p&gt;I don&#39;t like writing YAML as a way to do control flow. I&#39;m not an expert on this stuff. I&#39;m googling examples and copy-pasting, because I genuinely have no... Like I, I roughly know here&#39;s what I want to do. I don&#39;t know how to do it. So this stuff is so easy to mess up, and GitHub Actions is frankly a, it&#39;s very complicated and it&#39;s very badly implemented. [00:45:25]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; And it&#39;s so hard to test. Yeah. It&#39;s impossible to test some things. Like literally in, in some cases the only way to trigger the actual workflow is to do it live. And like, like you said, I&#39;m not an expert in this. You&#39;re not an expert in this. Like nobody, almost nobody, especially in open source, is an expert in GitHub Actions. [00:45:49]&lt;/p&gt;
&lt;p&gt;Like nobody&#39;s primary job is understanding GitHub Actions, but all of us have to write GitHub Actions because that&#39;s the way that you function in this world right now. So I don&#39;t know, it&#39;s oh man, what a rough state of affairs there. We all have to do this. Nobody&#39;s that good at it, and the experience of actually authoring it is- rough. [00:46:09]&lt;/p&gt;
&lt;p&gt;It&#39;s bad. Like, it&#39;s not good. [00:46:30]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; So the postmortem is fantastic, and just for the record, I&#39;ve seen a lot of corporate post-moto-mortems that were nowhere near as good as this. So kudos to the TanStack team. I know Corbin and a bunch of the others were very involved in not only trying to deal with the actual fallout here, but, like, really, really professionally follow up on here&#39;s what happened and here&#39;s how we&#39;re fixing things. [00:46:32]&lt;/p&gt;
&lt;h2 id=&quot;tanstack-followup-with-followup-hardening&quot;&gt;&lt;a href=&quot;https://tanstack.com/blog/incident-followup&quot;&gt;TanStack followup with followup hardening&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; And so they, they also put up a follow-up post with the list of things they&#39;re doing to try to make sure that nothing like this ever happens again. Unfortunately, this did have a lot of downstream consequences. [00:46:58]&lt;/p&gt;
&lt;h2 id=&quot;nx-monorepo-tool-compromised-as-a-result&quot;&gt;&lt;a href=&quot;https://nx.dev/blog/nx-console-v18-95-0-postmortem&quot;&gt;Nx monorepo tool compromised&lt;/a&gt; as a result&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; So, uh, the Nx monorepo tool got compromised after that because someone from the Nx team installed one of the briefly live malicious versions of TanStack packages, and that led to some credentials getting exfiltrated, which led to a malicious version of an Nx VS Code extension getting installed. [00:47:10]&lt;/p&gt;
&lt;p&gt;And then GitHub reported that someone had accessed a bunch of internal repos, quote, &quot;Because one of our employees used a, broke a malicious VS Code extension,&quot; and I think I saw some articles indicating that it might be the Nx Console possibly. So it&#39;s possible that there were multiple chained attacks downstream, all starting from the TanStack Router compromise. [00:47:39]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; That&#39;s fucking wild. Yeah, so, you know, like, when people tell me about, like, the risks of introducing security vulnerabilities by hand-rolling your own little tool here or there, like, oh, I don&#39;t know, GitHub got compromised by this. This sequence of events to get to GitHub is compromised, oh my God, that&#39;s absolutely wild. [00:48:05]&lt;/p&gt;
&lt;p&gt;I don&#39;t know. People talk about threat models and, like, threat actors. Like, how do you defend against what type of threat actor? Like, this attack, to me, the level of complexity and success and, like, capitalization upon their success- Says nation state actor. Like this is world-class— [00:48:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; And to a certain extent, like it&#39;s not even worth trying to defend against someone who&#39;s that good. When they want to find a way in, they will find a way in. [00:48:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Right. Meaningfully, in order to effectively defend against these... You know, if you think about it as like y- your available attention, you have 100% available attention, and, you know, there&#39;s that r- team, that malicious actor, 100% of their attention is on breaking you. [00:48:49]&lt;/p&gt;
&lt;p&gt;If you are not as skilled as them and dedicating the same amount of effort to countering their actions, like you can&#39;t beat them. They will overwhelm you given enough time. So like that&#39;s the complicated thing about security. You know, it&#39;s like in physical security they talk about like there is no such thing as a perfectly secure lock. A line that I&#39;m aware of is physical access precludes all security. Like if you&#39;re doing computer security things and you are sitting in front of the machine literally [00:49:07]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Sooner or later you will find a way in. [00:49:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; It is not possible to provide security guarantees there. Yeah, you know, like if you&#39;re trying to lock down your data, if they&#39;re sitting in front of the machine, they can just blast your RAM with freezing agent so that it powers off but still holds the bit pattern physically on the chip, and then you can recover it from there. [00:49:39]&lt;/p&gt;
&lt;p&gt;I remember reading, uh, you know, proof of concept in an academic lab. Somebody had successfully exfiltrated data from a computer by using a high-sensitivity microphone from across the room and extracting the, like, buzzing pattern, the audible noise of the processor as it executed instructions. [00:49:57]&lt;/p&gt;
&lt;p&gt;Like, by listening to the processor, they were able to exfiltrate data. Like, the bar for perfect security is so high, it&#39;s incredible. Anyway, that&#39;s the last thing I&#39;ll say there. [00:50:19]&lt;/p&gt;
&lt;p&gt;Like it... So I don&#39;t know, just like when w- as you&#39;re thinking about responding to and defending against security threats, I think that&#39;s a really important context here, is that if your counterparty, if the malicious actor you&#39;re defending against is a hacking team that has been working for 25 years with the backing of a nation state national defense resources, like, sorry, you&#39;re not gonna beat them. [00:50:30]&lt;/p&gt;
&lt;p&gt;That&#39;s-- You&#39;re not an effective counter to that. Like, it&#39;s not gonna happen. So I don&#39;t know. That&#39;s an important caveat that I think all security conversations need to have is it&#39;s fucking hard. It&#39;s grim. [00:50:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; And then there&#39;s a, a couple more examples that I, I believe aren&#39;t even tied to the TanStack one. So Vercel got compromised, and that one appeared to be a sort of similar thing, where, like, one person was using an external tool, in this case called Context.ai. [00:51:06]&lt;/p&gt;
&lt;p&gt;That tool got compromised, and then they were able to roll through, pick up tokens, and get into Vercel&#39;s interior. And then the same people who have been doing this mini Shai-Hulud set of viruses and attacks have actually been hitting a bunch of different packages across multiple different languages and ecosystems. [00:51:26]&lt;/p&gt;
&lt;p&gt;So I mean, this, this is not like the proverbial guy in his basement. This is a bunch of very determined and sophisticated attackers. [00:51:49]&lt;/p&gt;
&lt;p&gt;Three last lit-- um, quick little bits on React-related things. [00:51:58]&lt;/p&gt;
&lt;h2 id=&quot;react2shell-recaps-from-lachlan-davidson-and-sylvie&quot;&gt;React2Shell recaps from &lt;a href=&quot;https://lachlan.nz/blog/the-react2shell-story/&quot;&gt;Lachlan Davidson&lt;/a&gt; and &lt;a href=&quot;https://sylvie.fyi/posts/react2shell/&quot;&gt;Sylvie&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; So we had the entire React to Shell vulnerability a few months ago. [00:52:02]&lt;/p&gt;
&lt;p&gt;The people who actually discovered that put up a couple of articles describing-- Like, the two primary individuals described their experience of what were they investigating, what was their process, what happened between when they found it and when it got publicly disclosed. [00:52:07]&lt;/p&gt;
&lt;h2 id=&quot;next-1625-and-more-react-cves&quot;&gt;&lt;a href=&quot;https://github.com/vercel/next.js/releases/tag/v16.2.5&quot;&gt;Next 16.2.5 and more React CVEs&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; And then adjacent to that, Vercel put out a new release that appears to fix a number of new vulnerabilities and CVEs. And I know I s- w-when I saw this a couple weeks ago, I don&#39;t feel like I saw an actual blog post that accompanied this, which I found a little surprising. Maybe I just wasn&#39;t looking in the right spot, and I haven&#39;t gone back to look. But it seemed as though there were a number of new, like, denial-of-service and some authentication bypass issues found in b- in both Next and possibly Server Components again Okay. [00:52:25]&lt;/p&gt;
&lt;p&gt;One last set of things that are adjacent to this, and that&#39;s with the package publishing [00:52:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I like this &#39;cause it&#39;s, like, actionable. Here&#39;s things you can do to make your packages more secure. [00:53:05]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; This is aimed more at people like me who are maintaining packages rather than people who are developing applications, but hopefully this is something that will benefit all of us. [00:53:10]&lt;/p&gt;
&lt;h2 id=&quot;npm-adds-staged-packages-and-e18e-adds-guidance&quot;&gt;&lt;a href=&quot;https://docs.npmjs.com/staged-publishing&quot;&gt;NPM adds “staged packages”&lt;/a&gt; and &lt;a href=&quot;https://e18e.dev/docs/publishing.html#staged-packages&quot;&gt;E18E adds guidance&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; So first off, npm is adding a new concept called staged publishing. Right now, when you publish, the package goes live immediately. And so the way I understand this is once you have this set up for your packages, every new attempt to publish goes into a holding area, and then you explicitly have to go in and say, &quot;Yes, I approve this for actually, actually, actually being released.&quot; [00:53:19]&lt;/p&gt;
&lt;p&gt;And I&#39;ve, I&#39;ve already seen Jovi de Crook, who works on Preact, trying to p- put together a tool that would be able to inspect package releases that are staged so that you can see what&#39;s inside them and what&#39;s changed. No idea how that works, but I c- I can see how that&#39;s been useful. So this would help for cases like the TanStack compromise because the m- modified, malicious, published versions of the package would never have gone fully live. [00:53:48]&lt;/p&gt;
&lt;p&gt;They would&#39;ve gone to the staging area, and then the TanStack team would&#39;ve been able to see them and say, &quot;Wait, no, we, we didn&#39;t intend to publish those. Those should not go out.&quot; And then on the consumer side of things, so all the different package m- managers now have some kind of an option for don&#39;t install packages until they are at least N days old. [00:54:20]&lt;/p&gt;
&lt;p&gt;And they all have a different name and a different set of options for that field, but that&#39;s, that&#39;s the same concept. [00:54:44]&lt;/p&gt;
&lt;h2 id=&quot;pnpm-11-defaults-to-min-release-age-npm-12-will-block-by-default&quot;&gt;&lt;a href=&quot;https://socket.dev/blog/pnpm-11-adds-new-supply-chain-protection-defaults&quot;&gt;PNPM 11 defaults to min release age&lt;/a&gt;, NPM 12 will &lt;a href=&quot;https://github.com/npm/rfcs/pull/868&quot;&gt;block by default&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; So I believe pnpm 11 is defaulting to turn on that option to at least a couple days. Meanwhile, the other problem here is that packages have the post-install script, which is essentially when your package manager downloads this package and puts it in node modules, it can then run any random script that the package says it should run. [00:54:50]&lt;/p&gt;
&lt;p&gt;And that&#39;s bad because that&#39;s code that&#39;s running on your machine under your privileges and you have no idea what&#39;s happened, and it&#39;s just there because the package manager installed it. [00:55:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; It&#39;s literally remote code execution. Like, yeah. [00:55:22]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yeah. And traditionally this has been used for things like, okay, let&#39;s figure out what operating system you have so we can download the proper native binary or build the native binary from scratch. [00:55:25]&lt;/p&gt;
&lt;p&gt;And there&#39;s alternative other better ways to do that today. So pnpm has already been denying the ability to run post-install scripts for a while. And finally, npm appears to actually be making the same change. So it looks like they&#39;re gonna start warning about package scripts that have a post-install option in the version 11 series, and npm command l- and tool version 12 will start denying those by default. [00:55:38]&lt;/p&gt;
&lt;p&gt;So we are trying to close up some of the outstanding holes in the ecosystem. So trying to make publishing packages safer, trying to make installing packages safer. [00:56:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I will say, okay, if we&#39;re talking about voluntary remote code execution, you know, where blocking post-install is a good thing to do because it&#39;s against best practice, the other- Top of mind, similar instance where we are casually expected to fetch code over the network and run it is curl piped into bash as an install tactic for things. [00:56:19]&lt;/p&gt;
&lt;p&gt;And like literally my entire career, people-- I have heard people talk about, &quot;This is awful. We should not be doing this.&quot; Like, there are certain tools that will... I, I can&#39;t name, I can&#39;t think of any off the top of my head, but I do feel like I remember encountering this. There used to be tools that would ask you to, like, curl and then pipe it into, like, `sudo bash`, and, like, that&#39;s literally root access to your entire machine with arbit- code that you&#39;re not even inspecting from the network. [00:56:45]&lt;/p&gt;
&lt;p&gt;And you know who still asks you to curl pipe into bash as the recommended install method? Claude Code. Like, you go to claude.com f- and the Claude Code thing, front and center, &quot;Built for hackers. Get Claude Code. Curl, pipe, bash.&quot; Like, that is remote code execution. Don&#39;t do it. Use a package manager. If your work is recommending that people curl and pipe into bash, advise that you respectfully and through proper channels raise the issue that That&#39;s wildly insecure. [00:57:10]&lt;/p&gt;
&lt;p&gt;It encourages remote code execution as a thing that developers will casually do. And when you casually do something like remote code execution, you end up with security vulnerabilities, like the types that we&#39;ve been getting over the past year. So, ah, makes me annoyed. [00:57:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; And then, uh, last item. [00:57:57]&lt;/p&gt;
&lt;h2 id=&quot;review-your-gh-actions-people&quot;&gt;&lt;a href=&quot;https://github.com/e18e/ecosystem-issues/issues/266&quot;&gt;Review your GH Actions, people!&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; So I, I, I mentioned earlier, I am not an expert on GitHub Actions. And after seeing all this stuff happen with TanStack, I, I was like, &quot;We probably oughta do some looking at, like, the Redux actions,&quot; but I, I have no idea to what, what to even look for. The good news is that there&#39;s a number of people already working on scripts and AI prompts and other things to go inspect GitHub Actions. [00:57:59]&lt;/p&gt;
&lt;p&gt;And it&#39;s, in fact, Francois Best, who&#39;s ma- the maintainer of the Nuxt URL State library, was actually working on one himself and was asking for repos to run it on, and I, I volunteered to have him run it on the Redux repos. And it gave me a bunch of things to go correct. Like, nothing major high security, but a number of things we could do, like making sure that all the actions were pinned to a hash, changing some of the permissions options. [00:58:22]&lt;/p&gt;
&lt;p&gt;So there&#39;s a thread over in the E18E repo where they&#39;re collecting some different tools that can do scanning of GitHub Actions and try to work on hardening. And it kind of sucks that this is yet another thing that we gotta fix and we gotta make right, but guess what? It&#39;s good. You gotta fix it. [00:58:47]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; One more thing we gotta fix. [00:59:06]&lt;/p&gt;
&lt;p&gt;That&#39;s just the rest of our existence forever. The debugging never stops. [00:59:07]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yeah. Okay. [00:59:12]&lt;/p&gt;
&lt;h2 id=&quot;mark-posted-his-big-ai-blog-posts-part-1-fears-and-journey&quot;&gt;Mark posted his big AI blog posts. &lt;a href=&quot;https://blog.isquaredsoftware.com/2026/05/ai-thoughts-part-1-fears-opinions-journey/&quot;&gt;Part 1: Fears and Journey&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; You published your posts. [00:59:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yes, I did. So I, I hinted at this, um, a, a month ago. Long story short, little over a year ago, I was firmly against ever using AI- Yeah ... for writing code, and I was having a bit of a mental crisis over what AI is doing to the software industry and how this would affect the industry as a whole and myself personally. I ended up trying to use AI- Found it was actually useful, and now I actually end up using AI to write all my code. [00:59:15]&lt;/p&gt;
&lt;p&gt;And this has been a very long, very personal, very emotional journey for me. And I&#39;ve actually now spent a lot of time configuring my own personal open code agent workflow setup, and I have a, I now have opinions on both how I set things up and the results that I&#39;m getting. Just like I, I have act- I actually have experience now, and I, I have some preferences. [00:59:47]&lt;/p&gt;
&lt;p&gt;Also, I didn&#39;t wanna get pulled into people yelling at me for having chosen to use AI. But when I was in Miami last month, I was talking with some folks, and some of those conversations literally turned into, &quot;Mark, what tools are you using?&quot; And I would describe it and people were like literally taking notes, acting like I actually know what I&#39;m talking about, which is hilarious. [01:00:13]&lt;/p&gt;
&lt;p&gt;And I&#39;m like, &quot;Okay, okay, fine. I&#39;ve, I have been convinced to write a blog post about my own personal AI agent setup.&quot; And my brain would not let me write the technical blog post until I had written the personal experience blog post. [01:00:34]&lt;/p&gt;
&lt;p&gt;And I sat down and I wrote 12,000 words in eight hours with a brief stop for supper. And then I wrote another 3,000 words on the flight home the next day. [01:00:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I may have run that through a word count already. I can verify those numbers. [01:01:01]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; I, I... This is very different from most of my blog posts. Most of my blog posts are, &quot;Here is a concept that I&#39;ve become an expert on, let me explain this, unpack the pieces, describe how things work, and I will cite dozens of sources as references.&quot; [01:01:05]&lt;/p&gt;
&lt;p&gt;This post is none of that. This post is, &quot;Here is my experience, my brain, my feelings, my journey.&quot; I am not trying to convince anyone. I am not trying to tell people, &quot;This is how you should do things.&quot; this is me and my experience. [01:01:22]&lt;/p&gt;
&lt;p&gt;And I did not write this for clicks. I did not write this to, you know, change the conversation or get a bunch of views. But I&#39;ve also already read hundreds of people&#39;s posts where they say, you know, I- like, &quot;AI is killing the craft of being a programmer, and I mourn the loss of that.&quot; and that was, it, I mean, that was a really big influence on how I was feeling over the last year. So there you go. [01:01:40]&lt;/p&gt;
&lt;p&gt;There&#39;s a 15,000-word post that goes deep, deep inside my brain and my experiences and how my thought processes changed over time, and then it&#39;s got an awful lot of my opinions on where are we as an industry. And then I wrote another 6,000 words about my actual technical setup. [01:02:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Real Casual, 21,000 words. At an estimated 500 words per page, that is just about 41 pages. [01:02:27]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; People keep asking me to write books, and I&#39;m like, &quot;I don&#39;t write books, but I, I write the equivalent of books on my blog.&quot; [01:02:33]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Right. Right, right. Cool. Love that. How much of both do you think you got into the previous episode we did? [01:02:39]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Bits and pieces. I, I don&#39;t r- Wait, you&#39;re asking me to remember what I said a month ago before my vacation? Come on. I, I talked about bits and pieces, but this went into a lot more detail. The biggest things are, like, beyond I use OpenCode, I use Opus, I use these MCP tools, et cetera, is that I&#39;ve very explicitly chosen to stay very hands-on, conversational, and me driving what the agent is about to change, rather than spawning up a bunch of agents in the background to go do work and I don&#39;t care what it looks like. [01:02:45]&lt;/p&gt;
&lt;p&gt;I have seen a lot of other posts and discussion, even just in the last few weeks, with a number of people echoing similar thoughts of, &quot;Yeah, actually, maybe we need to kind of back off and keep things at a human comprehensible amount of effort.&quot; [01:03:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Preposterous. [01:03:30]&lt;/p&gt;
&lt;p&gt;I&#39;m kind of frustrated. I don&#39;t know. I, I feel like I&#39;m meaningfully following the edge of the state-of-the-art in agentic development. I built a harness for myself that does some really cool... Like, three months ago, I had a harness in place that was, like, keeping track of memories and doing a dream cycle and playing a game and writing its own code. Like, writing hundreds of lines of Python so that it could more effectively play this game, and it was doing a good job. It was actually pretty interesting. [01:03:31]&lt;/p&gt;
&lt;p&gt;And I kind of shut it down &#39;cause, well, now, it, it, it was using `claude -p` to do everything- Mm ... and I realized, like, I kept working on it and I kept iterating it and I realized like, oh, you know what? Like, Claude is already doing a lot of this stuff. Claude Code is this agent. So what is, what does the orchestrator on top of the agent need to do? [01:03:59]&lt;/p&gt;
&lt;p&gt;And I have an interesting, I have a really interesting body of work that&#39;s on my GitHub that is not currently being put to use anywhere, but it&#39;s like, damn it, I&#39;m currently at the edge of the agentic whatever stuff, but I&#39;m doing other things that are more personally interesting to me. And, man, I want... [01:04:18]&lt;/p&gt;
&lt;p&gt;I, I have this project in place that I feel like is on par with stuff that I&#39;m seeing people fundraise for from VC and I&#39;m like, &quot;Hmm, I don&#39;t wanna do that, but I do want money.&quot; So anyway, there&#39;s my, uh, there&#39;s my personal opinions around some AI stuff. I don&#39;t know. [01:04:36]&lt;/p&gt;
&lt;p&gt;I&#39;m g- I&#39;m gonna have to find out... We&#39;re gonna have to talk more about AI and agents and whatever, &#39;cause I don&#39;t know, it&#39;s crazy. [01:04:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; So, I don&#39;t know, adjacent thought. Like I&#39;m, I&#39;m, I&#39;m in sort of a weird spot at the moment because I just got back from a combination conference plus two weeks of vacation plus conference trip. At my day job I&#39;ve... [01:05:00]&lt;/p&gt;
&lt;p&gt;Prior to that, I was writing MCP tools and then playing product manager and doing product and positioning stuff, and then helping try to figure out like demos and product direction. I&#39;m back for a couple days. I&#39;ve got more conferences coming up. I&#39;ve actually done very little Redux maintenance work this year, and I feel kind of bad about it, but it&#39;s &#39;cause a lot of my time and effort have gone into, you know, replay day job stuff. [01:05:12]&lt;/p&gt;
&lt;p&gt;I was trying to play with some of my like React Redux plus signals experiments on the way back home, and so I&#39;m kind of getting some of that back into my brain. There&#39;s a lot of things I would like to sit down and spend time on, but I&#39;ve just been running around so much and everything feels very scattered, and I don&#39;t feel like I&#39;m focusing at the moment. [01:05:39]&lt;/p&gt;
&lt;p&gt;So I&#39;ve got a couple more conferences. I&#39;ve got a c- bunch of travel coming up. I don&#39;t know. Maybe I will manage to find time to actually sit down and focus on some things. [01:06:01]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; As if. Cool. Well, I hope you do find so- some of that time. But I, I just know in my own self, any time I&#39;m like, &quot;Maybe I&#39;ll find time to do that thing that I want to do now,&quot; it&#39;s like, &quot;Nah, probably not.&quot; [01:06:09]&lt;/p&gt;
&lt;p&gt;Gotta make time. Can never find time, have to make it. [01:06:21]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; I, I, I actually saw a post from Addy Osmani on Twitter just, uh, just this morning. A- Addy has written a number of really good posts lately about, you know, using agents and orchestration and, and agent anti-patterns and other things. Fine, I will, I will actually go look on Twitter and find the post rather than just describing it. [01:06:24]&lt;/p&gt;
&lt;p&gt;Uh, here, oh, here we go. It&#39;s the first thing in the history. Wonderful. Uh, this one&#39;s called, this one&#39;s called The Orchestration Tax, and the key line that stuck out for me for this one was, &quot;Human attention is now the limiting factor. It is the single-threaded lock that you need to be aware of.&quot; And so how do you pick what is the most relevant and important thing to be spending your time on versus your agent&#39;s, blah, blah, blah, blah, blah, blah, blah? [01:06:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Right, right. The agents are good at a lot of things, but they are not good at building the right thing. You have to get them to do the right thing. That&#39;s definitely been my experience as well. I&#39;ve definitely experienced the, &quot;I can do everything. Throw 15 agents.&quot; Uh, and then you review the work and try and actually make use of it, and it&#39;s like, oh, this is making a lot of very basic assumptions that are not the assumptions I have. [01:07:10]&lt;/p&gt;
&lt;p&gt;Which I, I... One thing to say, the closer your assumptions are to the basic assumptions, the better it works in some ways. So the less creative you&#39;re being, the more effective they are. Or the more, like, s- effective they are at doing their own thing. I don&#39;t know. That, that probably says something about, I don&#39;t know, scale. [01:07:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yeah. I mean, that, that basically goes back to why I personally have chosen a workflow that is essentially just me augmented, rather than me spinning off a bunch of agents. [01:07:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; True. That&#39;s why I shut my harness down and haven&#39;t had it doing stuff, is partly, largely because I haven&#39;t figured out how to put myself in the loop of their work in a way that is effective. [01:08:05]&lt;/p&gt;
&lt;p&gt;Uh, I, I had them running for, like, a day or two, and they, they did work. A lot of it was useful work, but they also did some work two or three times and left, like, page-and-a-half comments three different times on the same PR. And it&#39;s like, oh, okay, this is... The usefulness to noise ratio of this is not where I want it to be. [01:08:16]&lt;/p&gt;
&lt;p&gt;Let me revise this. And I have not revised it, because that&#39;s something I&#39;m trying to find time for, and I cannot find any time anywhere. [01:08:33]&lt;/p&gt;
&lt;h2 id=&quot;outro&quot;&gt;Outro&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; All right. Well, I think we&#39;ve about covered things today, and then some. [01:08:39]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yep. That&#39;s pretty good. Thank you so much. [01:08:44]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; We had a number of people sticking around, which is great. [01:08:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah. That&#39;s really nice. I like that I put a title in the kickoff thing this time around, and we actually had people show up. So it turns out, if you, like, care about communicating with people, sometimes people actually read and respond. What? Community building? You have to show up authentically? Ah, damn. I hate that. [01:08:48]&lt;/p&gt;
&lt;p&gt;Cool. Thank you so much for joining us, y&#39;all in the audience who are still here 90 minutes after we started. That&#39;s awesome. Thank you, Mark, for putting together this resource on short notice. And yeah, thanks for everyone who&#39;s listening to this on the recording, uh, when I publish it in probably longer than I intend it to be. [01:09:05]&lt;/p&gt;
&lt;p&gt;Yeah. Thanks so much. We are going to be revising exactly what this podcast is, but it is useful and good, so, uh, it, it will be sticking around in some sort. If this is a resource that you find valuable and wanna help support, give us a review. Send us to a friend. Put us in the random channel of your work Slack. [01:09:22]&lt;/p&gt;
&lt;p&gt;Generally, like, I suck at marketing, I suck at distribution, so if you can help me get this in front of somebody who has never heard of it before, that is the single most helpful thing you can do. Or, I don&#39;t know, just send it to someone anyway, even if you don&#39;t care. Please, help. Yeah. Thank you so much. [01:09:40]&lt;/p&gt;
&lt;p&gt;See you next month. [01:09:55]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Thanks. Bye. [01:09:56]&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2026-05</link><guid isPermaLink="false">reactiflux-tmir-2026-05</guid><pubDate>Wed, 27 May 2026 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>Mark &amp; Carl talk with Swizec Teller about using AI at work</title><description>&lt;iframe width=&quot;100%&quot; height=&quot;180&quot; frameborder=&quot;no&quot; scrolling=&quot;no&quot; seamless=&quot;&quot; src=&quot;https://share.transistor.fm/e/1835e0a7&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-04#introductions&quot;&gt;00:00:26&lt;/a&gt;]&lt;/code&gt; Introductions&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-04#what-convinced-you-ai-code-tools-were-worth-using&quot;&gt;00:02:36&lt;/a&gt;]&lt;/code&gt; What convinced you AI code tools were worth using?&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-04#using-early-chatgpt-for-db-migrations-&quot;&gt;00:04:24&lt;/a&gt;]&lt;/code&gt; Using early ChatGPT for DB migrations&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-04#watching-ai-use-a-command-line&quot;&gt;00:06:59&lt;/a&gt;]&lt;/code&gt; Watching AI use a command-line&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-04#background-chat-agents&quot;&gt;00:08:16&lt;/a&gt;]&lt;/code&gt; Background chat agents&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-04#staying-very-hands-on-while-using-ai-tools&quot;&gt;00:08:58&lt;/a&gt;]&lt;/code&gt; Staying very hands-on while using AI tools&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-04#driving-ai-closely-without-reading-its-code&quot;&gt;00:11:00&lt;/a&gt;]&lt;/code&gt; Driving AI closely without reading its code&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-04#marks-workflow-opencode-with-codenomad-ui-plus-idegit-ui-opus-46-on-api&quot;&gt;00:17:50&lt;/a&gt;]&lt;/code&gt; Mark&#39;s workflow; OpenCode with CodeNomad UI, plus IDE+git UI. Opus 4.6 on API&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-04#swizecs-workflow-latest-cursor-on-opus&quot;&gt;00:20:39&lt;/a&gt;]&lt;/code&gt; Swizec&#39;s workflow, latest Cursor on Opus&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-04#carls-workflow-mostly-claude-code-but-looking-at-custom-orchestrators&quot;&gt;00:23:58&lt;/a&gt;]&lt;/code&gt; Carl&#39;s workflow, mostly Claude Code but looking at custom orchestrators&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-04#exploring-fully-autonomous-agents&quot;&gt;00:25:23&lt;/a&gt;]&lt;/code&gt; Exploring fully autonomous agents&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-04#marks-ai-debugging-work-in-react-core&quot;&gt;00:28:08&lt;/a&gt;]&lt;/code&gt; Mark&#39;s AI debugging work in React core&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-04#value-of-providing-more-context&quot;&gt;00:31:42&lt;/a&gt;]&lt;/code&gt; Value of providing more context&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-04#ai-owned-documentation&quot;&gt;00:33:58&lt;/a&gt;]&lt;/code&gt; AI-owned documentation&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-04#using-good-engineering-practices-still-matters&quot;&gt;00:37:09&lt;/a&gt;]&lt;/code&gt; Using good engineering practices still matters?&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-04#how-do-you-know-the-right-code-to-make&quot;&gt;00:40:47&lt;/a&gt;]&lt;/code&gt; How do you know the right code to make?&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-04#good-communication-still-matters&quot;&gt;00:42:49&lt;/a&gt;]&lt;/code&gt; Good communication still matters&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-04#what-will-review-look-like-in-the-future&quot;&gt;00:45:13&lt;/a&gt;]&lt;/code&gt; What will &quot;review&quot; look like in the future?&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-04#automating-functionality-tests-with-deployment-practices&quot;&gt;00:46:17&lt;/a&gt;]&lt;/code&gt; Automating functionality tests with deployment practices&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-04#what-behaviors-belong-to-the-agent-and-what-fundamentally-cant-be-part-of-the-agent&quot;&gt;00:51:49&lt;/a&gt;]&lt;/code&gt; What behaviors belong to the agent, and what fundamentally can&#39;t be part of the agent?&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-04#impacts-of-llms-on-software-engineering&quot;&gt;00:56:17&lt;/a&gt;]&lt;/code&gt; Impacts of LLMs on software engineering?&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-04#a-superpower-right-now-is-a-domain-expert-who-can-kind-of-code&quot;&gt;01:03:22&lt;/a&gt;]&lt;/code&gt; A superpower right now is a domain expert who can kind of code&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;this-month-in-react-april&quot;&gt;This Month in React April&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Hello, everyone. Thank you for joining us for this month in React, which is not going to be particularly React heavy. [00:00:00]&lt;/p&gt;
&lt;p&gt;Mark and I have been talking for a couple of weeks now about doing a, like, bonus episode of sorts to talk about AI and how we&#39;re using it. So we are just, instead of a bonus episode, we&#39;re, we&#39;re just gonna do that for this month, for April. [00:00:06]&lt;/p&gt;
&lt;p&gt;Yeah, and apologies for last month. We had a recording problem, and we, it was completely unsalvageable, just nothing to save. Big bummer. [00:00:19]&lt;/p&gt;
&lt;h2 id=&quot;introductions&quot;&gt;Introductions&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; But yeah, so I am Carl. I am joined this month by Mark Erickson and Swizec Teller. yeah, we&#39;re gonna talk about AI because it&#39;s been a huge part of each of our workflows for the last, like, ranging from, like, three to six months to a year or more. [00:00:26]&lt;/p&gt;
&lt;p&gt;Let&#39;s do some intros first. I guess Mark and I are reasonably well known, but I&#39;m Carl. I am a staff level software engineer and engineering manager and community lead here at Reactiflux, where I do events like this and build code to keep the community operating. [00:00:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I&#39;m Mark Erickson. My day job is ReplayIO, where we&#39;ve built a time traveling debugger for both humans and agents with ReplayMCP now available. Please check out our blog. I just put up a blog post on how Replay found a bug faster than Dan Abermov did. I am still the Redex maintainer. Honestly, I haven&#39;t done much Redux stuff in the last few months because all my brain space has been taken up with day job work. And also, I&#39;m going around to a whole bunch of conferences this year. [00:00:58]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; I&#39;m Swiz. I work at Plasmidsaurus, we are a DNA sequencing as a service company. We do a lot of React for really fancy data visualizations for stuff like, &quot;Hey, wh- how do you visualize a few million data points in the browser and make it work smooth?&quot; Stuff like that. And these days, I&#39;m kind of more of a manager than an IC really. [00:01:23]&lt;/p&gt;
&lt;p&gt;And I&#39;ve been thinking a lot about what kind of engineers get hired these days. We&#39;ve been hiring a lot and using more and more AI to write the code. [00:01:45]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yep. Believe that. Cool. Yeah. So we were just chatting a little bit about what shape this conversation&#39;s gonna take. Just to level set a little bit for everyone listening. [00:01:55]&lt;/p&gt;
&lt;p&gt;We&#39;re gonna start off kind of at the point of, like, what convinced us that AI was a tool worth taking seriously and, you know, getting AI pilled as it were. Go from there into how we&#39;re using it now, what problems we&#39;re using it to solve, with what tools, as well as kind of, like, what aren&#39;t we using, what don&#39;t we find useful and compelling? [00:02:04]&lt;/p&gt;
&lt;p&gt;And go from there to, like, landscape of, like, what tools are available, what&#39;s out there, where do we think it&#39;s gonna go, and then kinda close out with what do we think the impacts are gonna be on the industry more broadly. [00:02:24]&lt;/p&gt;
&lt;h2 id=&quot;what-convinced-you-ai-code-tools-were-worth-using&quot;&gt;What convinced you AI code tools were worth using?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Mark, you wanna start us off talking about what convinced you that AI was worth using? [00:02:36]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Sure. A year ago, I was dead set that I would never, ever allow AI to write code for me. It was a fate worse than death. It was destroying my career. I refused to do it. And in fact, I actually wrote a 15,000 word blog post over the weekend that I haven&#39;t published yet that will give the long form version of this story. [00:02:41]&lt;/p&gt;
&lt;p&gt;The short form is, over the summer last year, I cautiously started using AI to explain an existing code base to me. You know, just give me some architecture docs, walk me through the data flow. And then there was a three-day period in late August that blew my mind. On a Tuesday, I asked it to write some redux unit tests for me because my brain was too tired to write actual code, and it did, and I was stunned. [00:03:02]&lt;/p&gt;
&lt;p&gt;On Wednesday, there was a node compression library that I&#39;ve been trying to replace, but the alternative didn&#39;t have all the features we needed, and it&#39;s Rust-based. And I tried asking the AI to write the feature for me in the Rust library, and it did. It actually didn&#39;t quite work right, and the maintainer had to turn down the PR, but this was the first time I saw an agent actually just crank along and spit out a bunch of code and happily make a bunch of updates. [00:03:28]&lt;/p&gt;
&lt;p&gt;And I thought I had a, a good understanding of what that process looked like. And then when I saw it in person for the first time, my jaw dropped. And then on a Thursday, I needed to write some AST-based linting code. I know what ASTs are. I&#39;ve used Babbel. I understand the concepts, but it&#39;s kind of complicated and fiddly, and we had a custom setup. [00:03:54]&lt;/p&gt;
&lt;p&gt;I was like, &quot;Could this do it for me? &quot; And it did. And it did it much faster than I could as a person. And my worldview got destroyed. [00:04:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yep. Sounds familiar. [00:04:22]&lt;/p&gt;
&lt;h2 id=&quot;using-early-chatgpt-for-db-migrations&quot;&gt;Using early ChatGPT for DB migrations&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; I mean, that, that sounds like an amazing experience. For me, the first was way back in the, uh, Stone Age where you had to talk to ChatGPT and then copy paste the output to try to run it. [00:04:24]&lt;/p&gt;
&lt;p&gt;And it was like, I think it was the holidays, and I was writing a book feeling kind of discouraged, and I was like, &quot;I wonder how many words I&#39;m writing per day.&quot; And it&#39;s like, I can write Python. It&#39;s not that interesting to parse a markdown file, go through, get history and see how many words you added every day. [00:04:39]&lt;/p&gt;
&lt;p&gt;Um, so I was like, &quot;Maybe ChatGPT can just write this for me. &quot; And I asked it, and the code, the code didn&#39;t work, but it ran. And I thought that was really cool. So I talked to it a little bit more, and we ended up with a really nice ... It was an extremely ugly code that I would never write myself. I think it ended up still taking two or three hours, but it was a lot more interesting than me doing it. [00:04:58]&lt;/p&gt;
&lt;p&gt;Um, and I ended up with a nationalization of how my, how my book is doing, and then I wrote a few more scripts like that. And then I started using it at work to write my database migrations, because- [00:05:25]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Please tell me, was it still just the ChatGPT UI? [00:05:39]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; It was. Uh, this was, this, this was before Copilot. I was like, &quot;Hey, ChatGPT, I have this SQL query, please write migration.&quot; [00:05:41]&lt;/p&gt;
&lt;p&gt;And it wrote the migrations or I ended up, uh, later on just copy pasting table definitions from, like, DBR or DataGrape or whatever, go look at the current tables and be like, &quot;I have these tables. Please write migration for ... &quot; I think we were using Connects at the time. &quot;Please write migration to add these columns and then copy paste back and it worked. [00:05:49]&lt;/p&gt;
&lt;p&gt;&quot;And I was doing that for a while and it was amazing. I never wrote a migration again in my life. [00:06:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. I started doing a lot more migrations because it just became so much easier to actually do them. There&#39;s such a pain, there&#39;s so mechanical. That was an early one for me too that was like ... I guess I actually had been, like, scoping my work to avoid migrations because I hate doing them so much. [00:06:18]&lt;/p&gt;
&lt;p&gt;I had a similar experience of just like, &quot; Oh my God, this works for that. I can do so many more of them now because I don&#39;t have to do it. &quot;Yeah, it&#39;s a little funny because actually database migrations are a big part of why my career looks the way it does, because I did, like, one in, you know, my first year as a software engineer. [00:06:34]&lt;/p&gt;
&lt;p&gt;I went,&quot; Wow, I hate this. You can&#39;t guarantee anything. There&#39;s just, you just gotta try it. &quot;And so then I went more front end because you don&#39;t have to do database migrations on the front end. [00:06:49]&lt;/p&gt;
&lt;h2 id=&quot;watching-ai-use-a-command-line&quot;&gt;Watching AI use a command-line&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. I had a similar type of experience as Mark. I guess I, I got on it much later than you did, Swizz. Sometime around, like, August, July, August, September of last year, you know, I, I had done kind of like ChatGPT prototypes or whatever, like Claude, having it write some HTML in line and just, like, prove out a concept or write a first draft of a script, like, prove out does this work? [00:06:59]&lt;/p&gt;
&lt;p&gt;Give me off the blank page and give me something to grow from and diagnose. And then I&#39;d been hearing people talk about Claude code, so I finally gave that a shot in, like, I think around July, August for the first time. And just watching it, you know, like, Mark, like you said, of just watching it churn through and do things and also having it be, like, native on the command line and watching it just run exactly the same Bash commands that I would to diagnose something and, like, read the files. [00:07:23]&lt;/p&gt;
&lt;p&gt;It was like, &quot;Oh, this is doing exactly the same process I would to resolve this bug, but it&#39;s doing it five times faster than I can.&quot; That was my big, like, light switch moment of, like, &quot;Oh, I need to take this really seriously.&quot; [00:07:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; For me, it&#39;s kind of like I really hate watching it work. I&#39;ve been using AI for a while doing, like,&quot; Oh, can you write this function for me? [00:08:07]&lt;/p&gt;
&lt;h2 id=&quot;background-chat-agents&quot;&gt;Background chat agents&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; Or can you, like, do little small things? &quot;But my workflow really changed when Cursor launched Slack background agents. So I started in Slack, like, when you get ... Partially, I&#39;m a PM, so I get a lot of requests that are like, &quot; That is definitely not a priority right now. We&#39;re not gonna work on that. &quot;But I can now go at Cursor, do the thing, and I just get a PR with the implemented small thing that I never would&#39;ve taken the time to do myself. [00:08:16]&lt;/p&gt;
&lt;p&gt;And I, I find that amazing because watching it work, I think is, for me, is too distracting. [00:08:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yeah. [00:08:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; So I like it when it&#39;s fully somewhere in the cloud. I don&#39;t have to worry. I just review the code when it&#39;s ready. [00:08:51]&lt;/p&gt;
&lt;h2 id=&quot;staying-very-hands-on-while-using-ai-tools&quot;&gt;Staying very hands-on while using AI tools&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; My workflow is very hands-on and human in the loop. Like, I&#39;m sitting there watching that thing like a hawk and having conversations with it, which I realize is not how most people are using AI at this point. [00:08:58]&lt;/p&gt;
&lt;p&gt;I think a lot of people are very much on the, in the cloud, multi-agents, how many of these th- things can be run in parallel, which I now have opinions on. Part of it is ... Well, a lot, a lot of it&#39;s the point that I&#39;m making the draft blog post, which is understanding is still critical. And I&#39;m a very, I&#39;m a very firm believer in, you know, the fundamentals and understanding and building a mental model of the system. [00:09:10]&lt;/p&gt;
&lt;p&gt;And I personally, for me, I want my brain engaged. I want to be thinking through the problem, and then I&#39;m using the agent to amplify my own abilities. Now, don&#39;t get me wrong, there&#39;s definitely been a few moments where I was, like, you know, out and about. It&#39;s like, you know, it actually would be kind of nice if I could just pull up my phone and tell an agent, go do this thing. [00:09:34]&lt;/p&gt;
&lt;p&gt;Like, I, I, don&#39;t get me wrong. I get the appeal. [00:09:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. [00:09:56]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; But in terms of day-to-day development work and how I approach programming, I want my brain active, engaged, and thinking, not just handing it off to an agent. [00:09:56]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. I hear that. I think I use it in both ways. There are a lot of things that, like you said, so it&#39;s just, like, it&#39;s not quite high priority enough to justify. [00:10:08]&lt;/p&gt;
&lt;p&gt;And that&#39;s where I&#39;ll use, like, more of a background agent. Like, you know, here&#39;s 15 one line descriptions and, like, just from the one sentence, it&#39;s clear enough what&#39;s needed. Like, you know, adjust the size of this. Add an element that controls this. Like, those are mechanical enough that it&#39;s really just, like, getting it right, making sure it compiles. I don&#39;t currently have a functioning workflow for that exactly. [00:10:20]&lt;/p&gt;
&lt;p&gt;What I&#39;m doing right now in the last four or five weeks just, like, hasn&#39;t really been of that type of development. So I am still, day-to-day, most of what I&#39;ve been doing is very much, like, the mech suit variant. You know, people talk about, like, automated versus mech suit, like robot or mech suit. [00:10:44]&lt;/p&gt;
&lt;h2 id=&quot;driving-ai-closely-without-reading-its-code&quot;&gt;Driving AI closely without reading its code&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And yeah, so I&#39;m driving it pretty closely, but I&#39;m not really reviewing its output very strictly. I&#39;m, you know, I tell it to use subagents, and then every so often I&#39;ll, you know, tell it to write me a report, like, how is this working? What is it doing? Ask it some targeted questions to make sure that the mental model I have matches what&#39;s actually there. [00:11:00]&lt;/p&gt;
&lt;p&gt;But that&#39;s a little different, I think, than what you described, Mark. Like, I&#39;m not actually, like, I don&#39;t read almost any of the code. I try and think of it more from, like, my engineering manager, tech lead, product manager hat. I do really try and sit in engineering manager/product manager role and say, like, &quot;Okay, how did those people talk to me as an engineer? [00:11:17]&lt;/p&gt;
&lt;p&gt;Like, they were not technical. They didn&#39;t understand anything of what was being built, and yet it was their job to make sure it was functioning as intended.&quot; So that&#39;s very much how I try to think about my work now is from that perspective. It&#39;s like I, instead of reading a line of code to ensure that patterns are followed as I intended, like, set up a lint rule and then, you know, maybe it&#39;s only 80% is good, it&#39;s not gonna catch all the subtleties, but, like, my experience of working on a team is, that&#39;s kinda how it works anyway. [00:11:37]&lt;/p&gt;
&lt;p&gt;Like, if it&#39;s not captured in the lint rule, eventually it will break. Like, eventually, someone will have been onboarded and not ha- be deeply steeped in the history of the project or just be tired that day and they forget about it or whatever. So, like, that was very much my perspective as, uh, you know, when I&#39;ve been a tech lead is, like, if bad code goes out, you know, the blameless postmortem, it was a process failure. [00:12:06]&lt;/p&gt;
&lt;p&gt;This should not have been permitted by the automated checks. And so that&#39;s kind of how I&#39;m thinking about it is just remove the abstraction a little bit and guarantee the outputs and then work on automated tracking of automated evaluation of the code quality to make sure that&#39;s at a level that I need it to be. [00:12:30]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; Yeah, same. I think that&#39;s my perspective as well. I&#39;ve ... Going up into tech lead was really kind of almost broke me as an engineer because I was like, &quot;Oh my God, all of this terrible, awful code, but it works and it&#39;s fine and everything is okay and the team just handles it. And if anything is wrong later, we just fix it. It&#39;s totally fine.&quot; [00:12:48]&lt;/p&gt;
&lt;p&gt;And I kind of treat AI the same way. I, I do a lot of driving from, like, a product perspective and for critical features or, like, super gnarly business requirements, I go into the ID and I drive it kind of like what Mark was describing, reviewing every line of code, clicking yes, et cetera. [00:13:12]&lt;/p&gt;
&lt;p&gt;But they do really well with follow-ups. Cursor gives you the wrong thing back in a Slack thread. You just say, &quot;Ed curs- ad cursor, go fix it. &quot; A lot of the times, those fixes are actually, &quot;Oh, yeah. Now that I&#39;m holding a working MVP, it doesn&#39;t actually feel right. I totally didn&#39;t even think of several features that it needs before it&#39;s useful.&quot; [00:13:29]&lt;/p&gt;
&lt;p&gt;I also really like the code review flow. I don&#39;t know exactly what we did, but we hooked it up so that you can do a PR review, like a code review for your cursor agent session. And in GitHub, you just go at cursor, fix this, or you give it information basically the same as you would with a team member, and then you just get follow-up, commits, and it fixes all the things. [00:13:49]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; That&#39;s very much been my experience as well. One of my biggest struggles as a, as an engineer is, like, I remember hearing about this sort of a stereotype of, like, give it, give this task to a junior engineer because they don&#39;t know it&#39;s impossible, you know? The sense of as you get more experienced, you get to see more of the complexity, and the complexity makes it harder to take action because you&#39;re now evaluating trade-offs instead of just kind of ignoring them because you don&#39;t know they&#39;re there. [00:14:10]&lt;/p&gt;
&lt;p&gt;And I would get so stalled into analysis paralysis and, like, what&#39;s the correct way to do this? How do you do this best? What&#39;s gonna have the best maintenance trade-offs and the lowest, you know, the tech debt and whatever? And that&#39;s just such a difficult way to actually solve, especially a novel problem. Like, if you understand a problem well, great. You can specify everything in advance. But, like, if you&#39;re working at the edge of your knowledge, at the e- edge of your understanding, then, like, you&#39;re gonna go the wrong way at first. And it&#39;s so painful to work on something for three weeks and then go like, &quot;Oh, shit. This is just completely the wrong architecture and I need to start over.&quot; [00:14:34]&lt;/p&gt;
&lt;p&gt;But it&#39;s so much less painful now with AI because, like, great, what a wonderful learning. Let me take that, let me have it write a three-page document about what we learned, what the new problems are, go back and forth, interact with it about, like, designing a new data model and architectural, you know, process flow. [00:15:09]&lt;/p&gt;
&lt;p&gt;I actually just did this in the last, like, week. I&#39;ve been benchmarking local LLMs because I want to better understand which ones work for what tasks so I can not have all of my AI usage be based on some mystery frontier model in the cloud. [00:15:28]&lt;/p&gt;
&lt;p&gt;And I just, like, you know, I started with just, like, &quot;Hey, give me a script that will run this model. Start up a, you know, LLM server and then run prompts against it. &quot; And then, like, that grows, &quot;Oh, I need, I wanna be able to kill it and restart. Oh, I wanna be able to, you know, version the prompts as I change them. Oh, I need to have it, you know, run a code evaluator when I&#39;m giving it, like, a code generation challenge.&quot; [00:15:42]&lt;/p&gt;
&lt;p&gt;Eventually, it became un- unmanageable because of the tech debt. It&#39;s, you know, it grew and expanded and I learned more about what was needed. And so I just started over and I said, &quot;Great. This is a Python ball of mess and it sucks and I hate it.&quot; So let&#39;s talk about the architectural flow of it and now let&#39;s add some lint rules and let&#39;s rewrite it in effect. [00:16:06]&lt;/p&gt;
&lt;p&gt;So it&#39;s actually like a high quality code base with, like, resumability and scheduling and whatever. And now it&#39;s working way better and it&#39;s, like, maintainable. It&#39;s been really powerful. [00:16:26]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I freely admit that the very hands-on style that I&#39;ve got is intentionally learning. I know it&#39;s possible to go faster. [00:16:35]&lt;/p&gt;
&lt;p&gt;I know that it&#39;s possible to delegate a lot more. I am treating it much more as an extension of my IDE and keyboard than I am as a junior developer delegating the work. That&#39;s fine. I am good with that. That is what works best for me and my brain. [00:16:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; You might start doing that less and less as you use it more. [00:17:01]&lt;/p&gt;
&lt;p&gt;I started with doing that a lot more, and then eventually I realized, wait a minute, I&#39;m just clicking yes on everything and then giving it a follow-up prompt to change the things I didn&#39;t actually like, but click yes on anyway. [00:17:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I certainly didn&#39;t think a year ago I would be using any of this at all. I was, I was convinced that was a red line that I would, I would never, ever cross on pain of death, and here I am. [00:17:16]&lt;/p&gt;
&lt;p&gt;But also, like, I mean, I&#39;ve, I&#39;ve found a workflow that I will be hopefully blogging about in the next day, next couple days that does actually work for me. And the hands-on aspect of it is what I get good results out of, and it&#39;s what fits my brain. [00:17:25]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Well, okay, let&#39;s take that as jumping off point. Like, what tools [00:17:40]&lt;/p&gt;
&lt;p&gt;Let&#39;s do, like, super concise, just, like, list what tools and what models you&#39;re using day-to-day. [00:17:44]&lt;/p&gt;
&lt;h2 id=&quot;marks-workflow-opencode-with-codenomad-ui-plus-idegit-ui-opus-46-on-api&quot;&gt;Mark&#39;s workflow; OpenCode with CodeNomad UI, plus IDE+git UI. Opus 4.6 on API&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So my, my own setup, my intro was the kilocode VS code extension with, you know, it was probably either Sunat 35 or Sonat4, whatever was available around September-ish last fall because I didn&#39;t want to go anything command line at first. I wanted to stay in a graphical environment. [00:17:50]&lt;/p&gt;
&lt;p&gt;I tried Claude Code for about a day. Tried the VSCode extension, which didn&#39;t work at all, and then I tried the command line tool, and I, I did not like it. I tried the OpenCode command line tool, also did not like it. How do y&#39;all deal with copy paste in a command line environment? [00:18:09]&lt;/p&gt;
&lt;p&gt;So what I have now, I&#39;m using OpenCode. My personal laptop is Windows. My work laptop is Windows, but I work in WSL. So I actually serve OpenCode from within the WSL environment, and then I use a third party web UI for OpenCode. [00:18:24]&lt;/p&gt;
&lt;p&gt;OpenCode has a very nice server client distinction. The text client is just one of the possible clients. So I found one called Code Nomad, which is very good, works great. So I actually serve Code Nomad plus OpenCode added the WSL side, and then I just hit local host whatever port in my browser on the Windows side, which also avoids any cross-platform file shenanigans as well. So I&#39;ve got my chat sessions and my tabs open in the browser. That&#39;s now my development environment. [00:18:42]&lt;/p&gt;
&lt;p&gt;And then I still have VS Code open for looking at some of the diffs and editing that my ... I much prefer a Git graphical client called Fork, but it doesn&#39;t work well in Linux, so I&#39;ve just stuck with the built-in VS Code stuff. I actually don&#39;t like it, but I&#39;ve been too lazy to go find a better alternative. [00:19:16]&lt;/p&gt;
&lt;p&gt;Model-wise, I&#39;ve basically been on whatever the latest and greatest anthropic is. We have corporate keys, da, da, da, da, da, da. [00:19:32]&lt;/p&gt;
&lt;p&gt;Also, I have somewhat intentionally tried to avoid model hopping. I don&#39;t want to be running a bunch of evals every other week and saying, &quot;Oh, this one provides me a 3% increase in such and such a benchmark. Clearly, I need to switch my entire workflow to a different model.&quot; and granted, OpenCode does let you just pick and choose what model you want, but I&#39;m trying to get something that&#39;s good and consistent and that I know works, not chasing the hypothetical maximum performance. [00:19:39]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Okay. So you&#39;re, you&#39;re on OpenCode and using latest Claude Anthropic models just through API usage? [00:20:10]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; O- Opus 46, yeah. That&#39;s the other thing. Uh, it&#39;s, it&#39;s API keys, not the various, like, you know, $20, $100, $200 max plans. So I, I read about people getting the resets and it&#39;s like, I haven&#39;t do with that because I&#39;m also not paying for it. [00:20:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right. Cool. Okay. [00:20:32]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; It&#39;s like knowledge that my experience may not be universally shared. [00:20:34]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Okay. Yeah. [00:20:38]&lt;/p&gt;
&lt;h2 id=&quot;swizecs-workflow-latest-cursor-on-opus&quot;&gt;Swizec&#39;s workflow, latest Cursor on Opus&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, Swizz, what&#39;s your workflow look like? I&#39;m curious, I&#39;m very curious about yours because I think you&#39;re by far the most advanced agent user between the three of us. [00:20:39]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; Which is really funny because I was surprised to learn earlier this week that 97% of my code is AI because I really talked. I was like, &quot;What?&quot; [00:20:47]&lt;/p&gt;
&lt;p&gt;But I actually have an extremely simple setup. I use Cursor, I keep it updated to whatever the latest version. So when it pops up with, &quot;Please update,&quot; I click the button. I think the latest Opus model or whatever it is, it&#39;s like something 4.6. I think it&#39;s an Anthropic model. We have a Team subscription, so CompanyPays gives us an infinite budget, but I think I&#39;m actually using, like [00:20:57]&lt;/p&gt;
&lt;p&gt;It&#39;s actually funny. I don&#39;t know ... We were just talking about this today. I don&#39;t know how this happened, but on the Cursor Leaderboard, I have the second most AI usage of all of the engineers, and I have the least amount of dollars used. [00:21:25]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Fascinating. Interesting. [00:21:40]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; I have literally spent $25 this month. So anyway, I use Cursor, I use @cursor on Slack a lot, and I use @cursor on GitHub a lot. [00:21:41]&lt;/p&gt;
&lt;p&gt;We also use Linear, and I&#39;ve started more and more delegating my linear tickets to cursor. So look at the linear ticket, be like, &quot;Eh, I didn&#39;t write this well, add a little bit more context so that a dumb bot can know where to go fix things or what to change, and then just click delegate to cursor, and then I review the PRs.&quot; [00:21:53]&lt;/p&gt;
&lt;p&gt;That&#39;s my workflow. I try to keep it really simple and easy, because like Mark said, I&#39;m not looking to super maximize my productivity. I&#39;m more looking for, you know, as a manager, I&#39;m supposed to stay on SiteQuest anyway, so this is a really good way to code between during, uh, between and during meetings when I&#39;m supposed to be paying just like half attention. [00:22:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, that&#39;s really interesting. I, I, I like that you two are like kind of two ends of the spectrum here. So as you use it as like very much in a managerial capacity, like, you know, the same as you would ping a colleague, you ping cursor instead and just say, &quot;Hey, do look at this. &quot; [00:22:36]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; Yeah, pretty much. I, I&#39;ve been doing that a lot. [00:22:52]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And it&#39;s all within collaboration platforms, I guess is like a big distinction here. It&#39;s all in space- A lot of it is. Yeah. Okay. [00:22:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; We&#39;re now experimenting with building like a feedback loop so that we would have a bot that Sentry sends us errors and we&#39;re thinking of having a bot that looks at those errors, figures out how to fix them, and then just issues a PR when we get, so that we could have automatic PRs- [00:23:03]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. [00:23:20]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; for, at least for some er- no, like, you know, probably not for super critical, crazy, important things, but there&#39;s a lot of errors that happen where it&#39;s not that important, but it&#39;s nice to fix. [00:23:20]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, definitely. Right, the long tail of Century issues. [00:23:34]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; But when I&#39;m like actually hands-on coding, I use it a lot to write my tests because I know what I want to test and I can describe the situation to set up, but I hate doing the grunt work of setting up your database in just the right way to have 50 models, et cetera, [00:23:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; yeah. [00:23:58]&lt;/p&gt;
&lt;h2 id=&quot;carls-workflow-mostly-claude-code-but-looking-at-custom-orchestrators&quot;&gt;Carl&#39;s workflow, mostly Claude Code but looking at custom orchestrators&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Okay. Interesting. I, I kind of split y&#39;all&#39;s experience a little bit, or I&#39;m working towards ... I feel like I&#39;m closer to where Mark is right now and I&#39;m trying to move towards where you are, Swiz. Yeah, I almost exclusively am using Claude code with Opus. I&#39;ve played around a bit with ... Like I, I used Copilot, you know, GitHub Copilot, like once to, like, scaffold a prototype that I was experimenting with. [00:23:58]&lt;/p&gt;
&lt;p&gt;I don&#39;t like the experience of it being in a web browser. Like, something about it ... I don&#39;t know. I also don&#39;t like code spaces or, like, remote development across SSH. So, like, this may be just my own, like, biases and preferences, but I really like just ... It&#39;s right here. It&#39;s on my machine. It&#39;s an environment that I have set up. [00:24:22]&lt;/p&gt;
&lt;p&gt;I know exactly what&#39;s available to it and what&#39;s not. Just, like, I guess I&#39;ve prioritized, at least in that where I&#39;m trying to use it like a Mac suit if speeding up my own pr- individual productivity, I just want it to be predictable and understandable for myself. To me, that&#39;s very much just been Claude code with whatever defaults pretty much. [00:24:40]&lt;/p&gt;
&lt;p&gt;I&#39;ve played around a little bit here and there, but yeah, I&#39;m trying to work towards ... One of my many projects that I have in flight is a personal, like, orchestrator. So I had started out kind of my foray into, like, earnest AI focused, using it to the extent that I am now, as opposed to more limited reading every line of code, going in and editing it myself. [00:25:01]&lt;/p&gt;
&lt;h2 id=&quot;exploring-fully-autonomous-agents&quot;&gt;Exploring fully autonomous agents&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; That&#39;s only really been since, like, February when I started playing this AI agent game. And it&#39;s been really interesting thinking about ... Because putting an agent in a simulated world and, like, having it autonomously play a game and do so in an interesting way, you know, effectively and interestingly, really just, like, got a bunch of wheels turning in my head. [00:25:23]&lt;/p&gt;
&lt;p&gt;And so, like, Claude Code works really well for me for, like, pushing the envelope, like, expanding what a project is, what it can do, and I have really enjoyed using background agents more, like, very much like what you described to us of just, &quot;Hey, oh, fix this. This is broken. Here&#39;s this bug.&quot; I don&#39;t currently have anything like that operational, but I did get my little personal orchestrator working for a minute. [00:25:45]&lt;/p&gt;
&lt;p&gt;It was just wor- working on the GitHub API and I just said, like, &quot;Here&#39;s a repo, like, go, you know, read the issues, triage them, prioritize them, take a task, open a PR, and wait for me to review it. &quot; And it worked, but I didn&#39;t give it any guardrails, so it ended up, like, redoing the same GitHub issue multiple times, or, you know, it would re-review the same PR over and over again with, like, a page and a half of a comment. And so I was like, &quot;All right, okay, this is proof of concept, it works, but, like, clearly I need some additional things set up.&quot; [00:26:10]&lt;/p&gt;
&lt;p&gt;And I guess one, another thing I wanna say, like, kind of what you said was about, like, using Sentry Data as an input for what to work on. I think that&#39;s the frontier. Like, that&#39;s what is currently being explored. Like, how do you do that effectively? [00:26:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; Yeah. You need the feedback loops. So I was reading a lot of how to build an agent papers the other day, and the main inputs are basically rag, memory, and feedback loops, and from there, it can do a lot. So Cursor, for example, Cursor Cloud agents through Slack, they actually, when they&#39;re developing the feature, they will fire up a browser and go test it, see if they can actually do the thing, and if they can&#39;t, they will then c- continue iterating. [00:26:56]&lt;/p&gt;
&lt;p&gt;And in the end, the PR doesn&#39;t just have code. It has screenshots and videos of the working feature, which is what I require from all of my engineers, and it makes reviews so much easier. And there was another ... Oh, yeah. So I think the longest I&#39;ve managed to do, to have it spin when I asked it to build an entire feature. [00:27:27]&lt;/p&gt;
&lt;p&gt;So, like, I would write a maybe 200 word, two or 300 word prompt in Slack to add cursor, and it took ... I think it spent 45 minutes to come back with the working feature, and that was amazing, because I was in a meeting for that whole time, and then I just looked at the PR and gave it feedback. [00:27:47]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. That&#39;s incredible. [00:28:06]&lt;/p&gt;
&lt;h2 id=&quot;marks-ai-debugging-work-in-react-core&quot;&gt;Mark&#39;s AI debugging work in React core&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So my day job, we&#39;re coming at it from a similar but also sort of opposite angle. We, we have built a time driver to bugger, and originally the premise was that by making a DVR style recording, you as a person can go in and do all the investigating in the lines of code and the print statements and everything else so that eventually you as a person figure out why this was broken. [00:28:08]&lt;/p&gt;
&lt;p&gt;So we shipped an MCP a couple months ago, and I&#39;ve already seen some very real examples of agents being able to go in and solve bugs that they wouldn&#39;t have been able to otherwise. I actually put up a post about this a week ago. Dan Abermov had filed an actual React bug saying that the used deferred value hook sometimes fails in production, it&#39;s stuck, like a render behind. [00:28:28]&lt;/p&gt;
&lt;p&gt;And he had a repro and he said, uh, &quot;I&#39;ve had my agent try to look at it, but I can&#39;t find the answer.&quot; A month later, he comes back and files like a four-line fix deep in the guts of React Scheduler to actually fix it. And he posted on BlueSky later, and apparently what he had to do was rebuild the React Library with a bunch of console logging added so that his agent could look at the prod build and eventually trace what was going on and figure out how to fix it. [00:28:52]&lt;/p&gt;
&lt;p&gt;So I&#39;m like, &quot;That would be a great marketing post comparison.&quot; So I took his example, I made replay recordings of the working dev build and the failing prod build, handed them to an agent, and I said, &quot;Here&#39;s a bug report. Here&#39;s the two replay recordings. The issue is somewhere in React. Can you find it?&quot; took 10 minutes. [00:29:18]&lt;/p&gt;
&lt;p&gt;So I&#39;m like, so then I&#39;m like, okay, well now let&#39;s make it like, you know, something resembling a proper experiment. So I took the same two recordings and I spun up four simultaneous sessions with differing instructions. [00:29:38]&lt;/p&gt;
&lt;p&gt;The first one was just a basic, here&#39;s a bug report, go investigate, actually less context, the proof of concept. The second one, I gave it like a eight step investigative process to follow. The third one had a few paragraphs just naming some concepts and Reacts internals, like not even file structure, but just things like, you know, schedulers, fibers, lanes. And then the last one also explicitly listed some of the replay MCP tools we have available. [00:29:50]&lt;/p&gt;
&lt;p&gt;All four of the sessions found the same bug and suggested the correct fix. They took respectively 28, 17, eight, and seven minutes. So on the one hand, you know, ob- obligatory sales pitch, replay recording, finding bugs, it&#39;s awesome, it&#39;s great. We&#39;re building some cool stuff with it. But it also showed me a lot about the value of the prompts and the context that you give. [00:30:18]&lt;/p&gt;
&lt;p&gt;There was another example I was working on where someone had made a, an example NextJS app with some example bugs in it and was asking an agent to find them. And in one of them, there&#39;s a, there&#39;s a double loading screen that&#39;s caused by mixing and matching suspense and Tanstack query loading state. [00:30:44]&lt;/p&gt;
&lt;p&gt;The AI always suggests the use suspense query hook, but apparently if you do that, it leads to a hydration mismatch error. And the real answer is to do some server pre-fetching instead. So like you have to think bigger, think architecturally. So I did the same thing. I tried, you know, making some re- replay recordings and feeding in the, the varying instructions. [00:31:00]&lt;/p&gt;
&lt;p&gt;My agents mostly got the same base level used suspense query error. And then I tried one more session where I fed in the NextJS and TanStack query skills files. And now the agent actually said, &quot;Well, useSuspense query is the initial fix, but you really ought to do server pre-fetching instead.&quot; [00:31:21]&lt;/p&gt;
&lt;h2 id=&quot;value-of-providing-more-context&quot;&gt;Value of providing more context&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So again, like that, that taught me a lot about the proper context. That also says a lot as we&#39;re trying to build our own CI debugging agent that looks at test recordings, so clearly we need to give it, you know, good prompts, user-based context, all that kind of stuff. [00:31:42]&lt;/p&gt;
&lt;p&gt;So, I mean, I think even something like that can maybe help explain some of the differences and results that different people get. [00:31:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, no, the impact of prompting and available context is, like, so massive. As we&#39;re talking workflow, something I do very regularly is, you know, start with a prompt, start with, like, if I&#39;m gonna add a new feature or redesign something or what, you know, a large task, not a bug fix, you know, a sprints project, not a ticket, then I&#39;ll start off with, like, a 200-word, like, prompt of, like, &quot;Here&#39;s what we&#39;re trying to build. [00:32:05]&lt;/p&gt;
&lt;p&gt;Here&#39;s how I think we will need to do it. Here&#39;s a couple of parts that I think are gonna be important.&quot; You know, you know, have it explore, do the implementation, review, you know, and then I manually confirm. And then I&#39;ll tell it, like ... And I guess I&#39;ll do this at a couple of points throughout as it&#39;s exploring and, like, evaluating things. [00:32:32]&lt;/p&gt;
&lt;p&gt;I&#39;ll ask it, like, &quot;How was the documentation? Like, did you find everything you needed?&quot; And that has been, like, totally transformative for, I think for token usage as well, because, like, just by asking that, it&#39;ll say, like, &quot;Oh yeah, it was all ... Here&#39;s the three files I referenced and I got everything I needed.&quot; [00:32:47]&lt;/p&gt;
&lt;p&gt;Or, like, &quot;Oh, yeah, this file was out of date. You know, I did the wrong thing at first and then I had to go back and rework it. &quot; So I&#39;d recommend that we update this&quot; and it makes those recommendations just based off its own experience of reading the code. And so, like, just by doing that fairly regularly as the code base evolves, I manage to keep, you know, the documentation pretty well up to date. [00:33:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; Are you asking it to write its findings back into documentation or are you updating the docs? [00:33:27]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I&#39;ll read it with a skeptical eye of, you know, like, does this sound like it is a real problem or not, a real area for improvement? And then I&#39;ll just say, like, &quot;Yeah, hey, can you update those docs?&quot; Often, I&#39;ll come at it with a pretty clear intention of, like, we just revamped how scheduling works. Let&#39;s analyze the architectural overview document that we have and see if it&#39;s still accurate and then tell it ... [00:33:32]&lt;/p&gt;
&lt;h2 id=&quot;ai-owned-documentation&quot;&gt;AI-owned documentation&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; You know, so, like, I will do some documentation specific projects with that in mind, but for the most part, yeah, just, like, ask it how the experience of the familiarizing itself with the code base is, and then give it free reign to improve that for the most part. [00:33:58]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; Yeah. I think one thing I would be worried with that we have some people in the team experimenting with that, and they all agree that after a few iterations, like, a few weeks later or a few months later, you end up with very spaghettified documentation that&#39;s essentially just AI slob that humans definitely don&#39;t wanna read, but even the AI barely wants to look at it and read it because it just keeps getting low, lower and lower signal. [00:34:13]&lt;/p&gt;
&lt;p&gt;So I think ... I don&#39;t have a solution for that, but it&#39;s a thing I&#39;ve heard. [00:34:40]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; That&#39;s fair. I haven&#39;t really evaluated that recently. I did come at it with trying to say, like, &quot;Here&#39;s five documents at these levels of abstraction in the code base.&quot; So I do try to give it a little bit of overall stru- structural guidance, but that&#39;s a good thing to, that&#39;s a good thing to look out for. [00:34:45]&lt;/p&gt;
&lt;p&gt;I haven&#39;t really evaluated it. That&#39;s also how I get my own mental model of the code. So I guess, like, I don&#39;t necessarily write it, but I will read it, and if it&#39;s nonsense spaghetti, then it&#39;s like, &quot;No, we gotta do this again.&quot; Like- [00:35:03]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; That also ties into the longer term memory question. So, you know, the problem is ev- every session is fresh. [00:35:15]&lt;/p&gt;
&lt;p&gt;It knows nothing, you know, every, literally everything is being injected, you know, agents, MD, you know, whatever rules, files, et cetera. So how does an agent even know that you have these nice architectural docs that you&#39;ve been keeping up to date? Or how does it know that, you know, last week, a week earlier, whatever, you made these particular decisions, and that&#39;s why we ended up here. [00:35:22]&lt;/p&gt;
&lt;p&gt;Or it has no idea what any of your code base is. Let&#39;s go read 30 files to re- form a brand new, fresh set of memories that compress the context. And some of this can be, can be dealt with partially. There&#39;s ... I, I, I highly recommend tools that will do AST-based scanning of the code base and preferring those for what, for loading chunks of code rather than just, like, blindly whatever built-in read file tools are there. [00:35:46]&lt;/p&gt;
&lt;p&gt;But that is actually where I&#39;m running into the limits of my own personal workflow right now. I have, you know, dozens of feature and research docs that I&#39;ve generated. I have daily progress docs. I have sub-task handoff docs. There&#39;s a lot of very valuable information in there, and the AI has absolutely no clue that any of that exists. [00:36:14]&lt;/p&gt;
&lt;p&gt;So I&#39;m n- I&#39;m now f- starting to feel the need that I need to have some kind of, you know, review sweep process, some kind of tool to, you know, index the markdown file, something to form that longer term memory structure, and I keep bookmarking hundreds of tools and saying I&#39;m gonna go investigate them and haven&#39;t done so yet. [00:36:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; If only you had a tool that&#39;s really good at summarizing large pieces of text. [00:36:56]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I, no, I, I actually have done some of that. Um, I just haven&#39;t actually settled on one and tried installing it yet. [00:37:03]&lt;/p&gt;
&lt;h2 id=&quot;using-good-engineering-practices-still-matters&quot;&gt;Using good engineering practices still matters?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; One thing I found also really helps for context and stuff like that is actually structuring your code well. So having a vertically oriented architecture, small balls of mud that are self-contained rather than one large horizontally sliced ball of mud makes it easier for humans, and it also really works for the AI when you can say, &quot;Go add a feature to this directory.&quot; [00:37:09]&lt;/p&gt;
&lt;p&gt;And it&#39;s the, like, basically use your directory structure as an index for where to find different kinds of code. [00:37:36]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; That sounds suspiciously like software engineering practices, and I was told those don&#39;t apply anymore. [00:37:44]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, right. Like, the main thing that I&#39;ve been trying to keep in mind here of using it, and, and this was, this kind of talk goes back to your recent blog post of, you know, where you talk about how much code A- AI is writing for you, and to just talk to it like, these models were trained on things like GitHub discussions and PR reviews and code comments and whatever. So, like, it&#39;s not some new, esoteric, crazy, unpredictable thing. Like, the more you talk to it, just like it&#39;s a competent engineer, the more it will behave like a competent engineer. [00:37:50]&lt;/p&gt;
&lt;p&gt;And so it has all of these assumptions about, you know, social norms within the context of, you know, text documents describing code and documentation. And so the, the more you understand the social norms that it are deeply baked into its training, the better it does. So, like, yeah, like, I saw these, you know, memory startups where it&#39;s like, &quot;Oh, we will automatically generate documentation for your code base and make sure it&#39;s up to date.&quot; [00:38:22]&lt;/p&gt;
&lt;p&gt;And it&#39;s like, I&#39;m already doing that with a Read Me document tagged with a GitHash of how, when it was last updated for free. Like, if you have a couple of folders, a couple of directories full of code that is, like, pretty well isolated with a Read Me document in there, like, I don&#39;t need to tell the AI to look for the Read Me because it knows to do that. [00:38:49]&lt;/p&gt;
&lt;p&gt;Of course, it knows to look for a Read Me. So there&#39;s definitely a lot of difficulty with keeping the signal high, but, like, that&#39;s not new. I don&#39;t know. Like, that just sounds so much to me, like, working on a team of eight engineers and, like, not everyone has the same shared context. Not everyone reads every email or every Slack message. [00:39:09]&lt;/p&gt;
&lt;p&gt;And so, like, as far as the challenge of, the, the challenge of keeping a team up to date on best practices and recent decision making, versus keeping an AI at the same level, like, that, those feel really similar to me. It&#39;s just engineering best practices and communication norms. [00:39:30]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; With, with the major difference that AI will actually go read the documents you tell, you ask it to read. [00:39:50]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right, right. Like, one of my, like, you know, war stories was I was a contractor somewhere and they kept having, I kept having to do a rework because, you know, QA was overwhelmed and, like, you know, they finally get around to reviewing PRs and, oh, it&#39;s broken. Oh, gotta go back. Oh, there&#39;s all these conflicts now because [00:39:57]&lt;/p&gt;
&lt;p&gt;And so, like, despite being a contractor, I sat down. It&#39;s like, no, we need to fix our review process. We need to fix our merges and whatever. Spent, like, two weeks doing that, get everyone on the same page, man. Next day, the, you know, tech lead employee at the company, the guy who should have been doing that process is like, &quot;Nah, this is too much. Like, I&#39;m just gonna force push.&quot; And he took down production. [00:40:15]&lt;/p&gt;
&lt;p&gt;So it&#39;s so it&#39;s like, uh, when people talk about AI doing stuff, it&#39;s like, &quot;I don&#39;t know, man. Have you ever worked with engineers?&quot; [00:40:37]&lt;/p&gt;
&lt;h2 id=&quot;how-do-you-know-the-right-code-to-make&quot;&gt;How do you know the right code to make?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Uh, so this, this does tie into a lot of the conversations that I had last week. I, I was at both the AI engineer and React Miami conferences. [00:40:47]&lt;/p&gt;
&lt;p&gt;And the general theme of the discussions there between the talks and the people and then, you know, all the different chatter online is we built ... And I also ranted about this in my 15,000 Word unpublished blog post. We built a bunch of software development practices for people, the agile manifesto, linear issues, PR reviews that require multiple people to stamp them or, you know, as a way to share knowledge, standups, like these are all people- based processes, and it made sense when humans are the limiting factor and you have to be very intentional about making sure you&#39;re writing the correct code. [00:40:53]&lt;/p&gt;
&lt;p&gt;Like, not just does the code work, but are we even spending the time and effort on the right thing in the first place? And we now essentially have a generate infinite amounts of code button, and now we&#39;re finding out that we&#39;ve moved the bottleneck further down the chain into all the verification and QA sides of things. [00:41:32]&lt;/p&gt;
&lt;p&gt;And so this shows up in, oops, GitHub is overwhelmed because we&#39;ve literally 10Xed the number of PRs that are being pushed or, wait, we&#39;ve got a bunch of senior engineers, but they&#39;re literally spending all their time reviewing PRs generated by the junior devs with AI, much less what happens when you have a dark factory of agents cranking out code twenty four seven and no one ever looks at it. [00:41:51]&lt;/p&gt;
&lt;p&gt;Like, we haven&#39;t figured out what the resulting processes ought to be, and one of the points I make in my blog post is that I think right now we&#39;re all operating under the assumption that there&#39;s no limit for how fast we can go, and in reality, we&#39;re gonna figure out the actual limit is maybe, like, 3X of what it used to be, but we need to, like, accept that and plan for it instead of thinking that if we shove everything in one end of the pipe simultaneously, it all comes out the other end. [00:42:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; I have opinions. Um- [00:42:46]&lt;/p&gt;
&lt;h2 id=&quot;good-communication-still-matters&quot;&gt;Good communication still matters&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; Yes. I think I wanted to say first is I really like, Carl, you mentioned that you start sessions with a really long 200 word prompt that gives all the context, doesn&#39;t just tell the agent what to do, but also why it&#39;s doing it in, like, other context. Same. This turns out works really well with humans as well. [00:42:49]&lt;/p&gt;
&lt;p&gt;They give you much better work if you tell them why they&#39;re doing it or what the goal is. And sometimes if you tell, if you tell them what the goal is, they might even come back with, &quot;Your solution is dumb. We should do this other thing instead,&quot; which, wow, can you imagine using engineers&#39; brains for thinking, not just writing code? [00:43:08]&lt;/p&gt;
&lt;p&gt;But I think the other thing is, we are generating a lot of code, and we think the bottleneck is code review. I think there&#39;s kind of two bottlenecks. One is that when you&#39;re moving really, really fast, you have to actually be more careful about working on the right things because if you&#39;re just digging yourself into a hole faster, we just had an example recently where we broke Agile, we were like, &quot;Oh yeah, we know what we, what we need to do. Let&#39;s just have Claude crank out 6,000 lines of code in one gigantic PR.&quot; [00:43:24]&lt;/p&gt;
&lt;p&gt;First of all, we couldn&#39;t review that, so we had to break it up into a bunch of sub-tasks and then turn that into sub-PRs. Turns out that took another extra day of work and everyone was distracted while doing this, so we weren&#39;t focusing on what we were actually supposed to be doing. So I think distraction is still bad. Multitasking is still bad. We&#39;re not as good at multitasking as we think we are. [00:43:55]&lt;/p&gt;
&lt;p&gt;And the other thing is we, when we split all of that up, we found that Cloud made a tactical mistake very early on, chose the wrong architecture for how to build something with React. And now you have a lot of code that needs a lot of rework to actually make work, and you&#39;re wasting reviewing time, you&#39;re wa- you&#39;re wasting a lot of time that could have been solved if we started with a small task to set up a small thing and talked about it, or maybe even talked about the architecture before we wrote six, 7,000 lines of code, and then just wrote the correct code the first time. [00:44:18]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, 100%. We&#39;re hitting communication bottlenecks much faster now. Yeah, like Mark said. [00:44:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Communication and thinking and planning was always the job. [00:44:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. [00:45:03]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; Yep. Except now you&#39;re running, like, 10 times faster. So if you take the wrong step or as your first step, you&#39;re just running in the opposite direction of where you wanna go, but really, really fast. [00:45:03]&lt;/p&gt;
&lt;h2 id=&quot;what-will-review-look-like-in-the-future&quot;&gt;What will &quot;review&quot; look like in the future?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right. Yeah. Right. It&#39;s very easy to get in extremely the wrong place in exactly the same amount of time. That touches on something I&#39;ve said before in this podcast. I think that the future of, like, review is gonna be less code review. The architectural side of things is still gonna be important. Like, it&#39;s not just, does it work? [00:45:13]&lt;/p&gt;
&lt;p&gt;Does it do what you intended? You can&#39;t fully treat it as a black box. The box has to be translucent, you know, at least a little bit to avoid major architectural problems that are gonna cause a production outage or make it impossible to scale or whatever. Like, it&#39;s not all going to be, does this function. [00:45:32]&lt;/p&gt;
&lt;p&gt;But I do think, does it function is going to be a much greater part of this? My sense is that it will rely a lot less on reviewing the code so much as getting a plausible mental model of the architecture, and then it, you know, and then statically verifying that it does what&#39;s intended. So, like, my, my theory here is that we&#39;re gonna start seeing a lot more end-to-end testing and user acceptance. [00:45:49]&lt;/p&gt;
&lt;h2 id=&quot;automating-functionality-tests-with-deployment-practices&quot;&gt;Automating functionality tests with deployment practices&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; A thing I did recently that I haven&#39;t fully executed on yet, but ... Well, I, I did a lot of it. But so a, a project that I have, I fully rewrote the CICD so that instead of PR checks, review, approve, merge, ship, instead of, you know, that, like, trunk-based development, where every PR gets shipped individually, I move to more of a, like, Git Flow type architecture where it&#39;s like, no, here&#39;s the version. This is going to go out. Uh, here&#39;s our release candidate. And then that single release candidate gets pushed to a staging environment, and then I do the user acceptance testing of does this function as I need it to. And then once I have that, once I&#39;ve done that manual testing, great. I know this code is working as I meant it to. So now I&#39;m going to have it write a bunch of end-to-end tests to verify that it will continue to do that when I make changes. And I think that&#39;s gonna be kind of the new cycle of, like- [00:46:17]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; I want that, but on every PR. [00:47:10]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, right. And I guess to me, like, that&#39;s where manual testing is now the bottleneck. [00:47:12]&lt;/p&gt;
&lt;p&gt;Like, you cannot ... At the end of the day, this needs to function, this needs to solve a problem. Any code you write needs to solve a problem that real humans have. Or I guess, you know, sure, other agents or whatever. [00:47:17]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; I&#39;ve experimented with automated end-to-end testing. It doesn&#39;t quite work yet. I think the models are, or at least the models I was trying were too slow, but the idea is that instead of telling that [00:47:28]&lt;/p&gt;
&lt;p&gt;Instead of writing a test as what the features that should be there, it&#39;s more about, can the user do a thing? And then because you have a computer use model, it can look at the browser and it&#39;s automatically testing both your UX. Like, if the model can&#39;t figure out how to do what your user is supposed to be, drunk users won&#39;t figure it out either, or tired users or whatever. [00:47:39]&lt;/p&gt;
&lt;p&gt;So you just point it at the browser and you&#39;d say, &quot;Go, like, go place an order.&quot; And at the end of the day, as long as it can place the order it wants to place, you can keep iterating on the implementation, you can keep iterating on the design, you can keep iterating on the UX, you just get tests that are based on can the agent place an order. [00:48:03]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Oh, that&#39;s really interesting. That&#39;s, that&#39;s a really good variant on what I was just kind of talking about because, like, sure, static end-to-end tests that are verifying, like, this button with this test ID exists and the flow completes as expected. Like, sure, okay, it functions, but is it usable? [00:48:23]&lt;/p&gt;
&lt;p&gt;That&#39;s an interesting usability automated usability testing because that kind of goes back to what we were talk- talking about with, like, documentation and code notes. Like, just make it intuitive. Can an agent intuit how to achieve a general task? Oh, that&#39;s really interesting. [00:48:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; If you&#39;ve ever used VCR in Rails, that&#39;s kind of where I got the idea. [00:48:52]&lt;/p&gt;
&lt;p&gt;With VCR, you do full integration testing with calling remote APIs, but you don&#39;t wanna call them every time, so you record the responses and you keep them locally. So you then write tests against those local responses, but if the API ever changes or anything, you just regenerate them and you find all of the bugs in your code that don&#39;t fit the new, newly released API. [00:48:57]&lt;/p&gt;
&lt;p&gt;And you could do something similar with this where you have browser-based acceptance testing, and it records what it&#39;s doing so that you don&#39;t have to spend as many tokens every time. And you just d- when you change the UI, you delete it and you see if you can do the flow again. [00:49:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Totally smart. Interesting. [00:49:34]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; Doesn&#39;t quite work yet, but that would be really cool. [00:49:36]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; We&#39;ve kind of been going into this direction, but let me, like, sort of, like, you know, refocus a little bit. Like, so what do we think the current landscape of tools, of AI tools looks like? We&#39;ve kind of been discussing that in, in, we&#39;ve been dancing around it. And I guess where do we think it&#39;s going next? [00:49:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Going or ought to go? [00:49:55]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Either, both. Both. [00:49:57]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; My general inclination as the person who found one tool set and is stuck with, and is sticking with it and is not actively trying to change what he&#39;s doing. [00:49:58]&lt;/p&gt;
&lt;p&gt;Certainly what I&#39;m seeing online is turning towards automate all the things, which I think is a very understandable impulse for a software developer. If you can do things once, you can do it in a loop, you can run it in parallel, you can distribute it, you can have an agent do it, et cetera. [00:50:06]&lt;/p&gt;
&lt;p&gt;And I think it kind of ties into the go as fast as possible at all costs for the purpose of going as fast as possible, direction that I see. I mean, like this bit about, you know, the dark factories, the idea that a team never even looks at the code, that it&#39;s truly all agents all the time, and all you say is, &quot;Do something that accomplishes some goal, and you never even look at it, &quot; is sort of an ultimate outcome of that. [00:50:21]&lt;/p&gt;
&lt;p&gt;I don&#39;t think it&#39;s a good one, but I see how it&#39;s the idea taken to a logical extreme. [00:50:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I, I also have been pretty ... I found a tool and I&#39;m sticking with it. I&#39;ve been noticing Claude Code pulling in lots of ideas that I&#39;ve just been thinking. Like, as it evolves, it&#39;s like, this is a productized version of how I&#39;ve already been using it. [00:50:53]&lt;/p&gt;
&lt;p&gt;You know, like they added a /btw command that lets you ask a question and it will ... You cannot use tools and it does not go into the context history. So it&#39;s just like even do a little aside. Like if you wanna ask, like, &quot;What&#39;s this thing doing?&quot; I had already been doing that by way of, like, I&#39;d ask it a question and then I&#39;d go back and just, you know, restore the conversation to that. [00:51:06]&lt;/p&gt;
&lt;p&gt;And similarly, two months ago, I had been saying, like, I would actually spin up a Claude code instance that was on Haiku because I just need to summarize this and it&#39;s easier and I wanna manage my usage a little bit more precisely. And, like, now I don&#39;t have to do that because I just say, use a subagent and Claude Code is smart enough to say, &quot;Oh, I&#39;m just summarizing. Let me use Haiku.&quot; [00:51:27]&lt;/p&gt;
&lt;h2 id=&quot;what-behaviors-belong-to-the-agent-and-what-fundamentally-cant-be-part-of-the-agent&quot;&gt;What behaviors belong to the agent, and what fundamentally can&#39;t be part of the agent?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; So I&#39;ve just been watching, like, kind of what the agent itself is doing versus what I need to tell it to do, or proactively manage, converge a little bit. So that&#39;s, that&#39;s had me wondering, what outside of the agent, what is not going to live within the agent. And I think where I&#39;ve landed on that is, like, everyone&#39;s talking about memory the last six weeks or so, and I think that&#39;s wrong. [00:51:49]&lt;/p&gt;
&lt;p&gt;I think that&#39;s just gonna be conventions and documentation. It&#39;s just knowledge. I think what&#39;s going to persistently live outside of an agent harness, as it were, is, like, incoming information, like a data stream, like GitHub issues, text, you know, the Slack chat, a Century Alert, a production alarm. If you have a data stream that is categorizing those and prioritizing them, and then giving that to an agent, to an autonomous agent that is just working, like, those are different things. [00:52:12]&lt;/p&gt;
&lt;p&gt;I think you cannot have a single generic agent that is able to connect to every possible data source. So that to me feels like a boundary that&#39;s gonna be pretty strong for the coming months. [00:52:44]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; I don&#39;t know. I think for me, I feel like going super deep into what, at least on the internet, a lot of people are talking about various MD files and orchestrations and all the crazy stuff. [00:52:55]&lt;/p&gt;
&lt;p&gt;I feel like that&#39;s a little bit like ID skins and WIM shortcuts. It&#39;s like, yeah, sure, it&#39;s cool, but I, I think you&#39;re over complicating it. The models are gonna keep getting stronger and better, so I would just think they&#39;re gonna be able to do bigger and bigger tasks. I think feedback loops, like what you said, what is outside of the model? [00:53:06]&lt;/p&gt;
&lt;p&gt;Building really strong feedback loops is important. I think memory documentation inside the code or making the code itself easier to research or giving it MCP tools to, like, notion or linear or whatever, you keep your organizational memory. Having access to organizational memory will help agents as well. [00:53:25]&lt;/p&gt;
&lt;p&gt;Yeah. I don&#39;t think we&#39;re ever gonna come to full automation of anything, really. I think there&#39;s a strong gelman amnesia when it comes to th- these things where agents will fully automate every job except the ones I&#39;m strict, super familiar with. That is just way too complicated and there&#39;s too many deals. [00:53:46]&lt;/p&gt;
&lt;p&gt;Everyone feels that way about their job because newsflash, they&#39;re all too complicated. [00:54:06]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I wanna explain that reference briefly for people who aren&#39;t familiar. Gelman and Amnesia, that refers to the idea of, like, you&#39;re reading a newspaper and you see a story about your professional industry or something you&#39;re very knowledgeable about, and you see everything that it got wildly wrong, and you&#39;re like, &quot;Who even wrote this? What are they doing? These incompetents.&quot; [00:54:11]&lt;/p&gt;
&lt;p&gt;And then you read the next article, and you&#39;re not familiar with it, and you just take it super credulously, and it&#39;s like, &quot;Oh, yes, look at these,&quot; you know. It&#39;s a, like, I think that&#39;s a pretty good way of thinking about how people are talking about AI right now, yeah. [00:54:29]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; And I think, from my perspective, go hard as long as you can. I think the bubble is going to collapse in the next one to two years. Tokens are gonna become super expensive, and we&#39;re not gonna use as many of these tools long-term as we are right now, but we&#39;re gonna have a lot of infrastructure, like, just like we did after the dot-com. [00:54:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; That&#39;s part of why I&#39;ve been really interested in local models, because I agree with that. Like, they&#39;re being heavily subsidized right now, and I think in, I don&#39;t know, about two years, I don&#39;t know, we&#39;ll see. It&#39;s been very ... People are talking about it, it feels like the wheels are falling off right now with, like, Claude Code is just clamped down usage on the 20 d- $20 a month plan aggressively. [00:55:02]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; They grew from nine billion ARR to 30 billion ARR in a quarter, so I&#39;m imagine they have some scaling issues. [00:55:22]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right? Yeah, clearly. [00:55:30]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; One of the points I made in that draft blog post that I&#39;m hoping to publish this week, the cats out of the bag, like, even if OpenAI and Anthropic were to utterly and completely collapse and go out of business today, the technology exists. [00:55:32]&lt;/p&gt;
&lt;p&gt;And whether it&#39;s, you know, boutique hosting of models or local LLMs, the technology is not going to go away. And even if it only, even if it never gets better at all, the t- the capabilities stay exactly the way they are today, it&#39;s still curly enough to upend large parts of our society. So then the question becomes, w- what are you doing with it and how do you, how do you respond? [00:55:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Well, that&#39;s a good ... We should wrap up soon, but that is an excellent jumping off point for our last little subject here. [00:56:12]&lt;/p&gt;
&lt;h2 id=&quot;impacts-of-llms-on-software-engineering&quot;&gt;Impacts of LLMs on software engineering?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Uh, what do we think the impacts of LLMs on engineering as an industry, software engineering as an industry, and maybe more broadly, societally, if we wanna go there? [00:56:17]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; I would say it&#39;s raising the bar for everything. [00:56:30]&lt;/p&gt;
&lt;p&gt;Like, what counts as a minimum viable product is gonna get more fancy and more complicated. What counts as a junior entry-level engineer, or what the expectations are for a junior entry-level engineer are gonna go up, and I think we&#39;re gonna need a lot more, um, product sense, and a lot less being just really good at writing code. [00:56:32]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yeah, I&#39;m inclined to agree. I am honestly worried about the impacts in society as a whole. We&#39;ve seen lots of debate and studies about, you know, have, have cell phones effectively destroyed the minds of youth and the ability to focus and social bul- like electronic bullying and, like, very ... Like, why did teens get very depressed starting in 2012? [00:56:54]&lt;/p&gt;
&lt;p&gt;Like, that sort of thing where a technology possibly had large-scale societal effects. And I&#39;m not saying that LLMs are, you know, inherently destructive or inherently bad, but a lot of times the technology gets invented and then it changes society in ways we were very unable to predict early on. In this case, I think we can predict a number of ways, and there&#39;s probably a whole lot of other stuff, too. [00:57:14]&lt;/p&gt;
&lt;p&gt;So I genuinely worry about college students being able to get away without having to develop critical thinking skills even less than they were able to get away with it before. I have concerns about that sort of thing. And, you know, I&#39;m towards the tail end of my career, I&#39;ve done my thing, I learned, I gained my experience. [00:57:40]&lt;/p&gt;
&lt;p&gt;I don&#39;t know how junior devs are going to gain some of that experience. Maybe it is they need different experience. I don&#39;t know what the job pathways look like at that point. So, like, I mean, don&#39;t get me wrong, I&#39;m excited to be able to use AI to crank out some of the things that I&#39;ve had in my head. [00:57:58]&lt;/p&gt;
&lt;p&gt;I&#39;ve found some of the same joy in being able to have a multi-hour flow session and build stuff just with AI editing the files instead of me and my fingers. But I can also look around and say, &quot;Yeah, there&#39;s a bunch of unexpected consequences floating around as well.&quot; [00:58:14]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; I mean, in terms of experience, it&#39;s not like I know how to code without a compiler, and I would definitely not enjoy coding without a, without garbage collection. [00:58:31]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, I think that&#39;s closer to my theory on this. I think it will, you know, the societal impacts are gonna be something a lot. We&#39;ll see. I think the societal impacts will come mostly not from software engineering, so I think I don&#39;t understand those quite well enough to opine on it too much. I do care a lot about, like, sociology and economics and whatever. [00:58:41]&lt;/p&gt;
&lt;p&gt;So I do have thoughts and opinions, but I th- maybe it&#39;s a, maybe it&#39;s my Gelman new amnesia of like, I know those well enough that I&#39;m like, &quot;Nope, that&#39;s way too complicated. I&#39;m not no opinion.&quot; But I think we take for granted a little bit how much we&#39;re standing on the shoulders of giants already and like, this is a big giant to climb the shoulders of for sure. [00:59:02]&lt;/p&gt;
&lt;p&gt;Like, not trying to discount that. People talk about how it&#39;s gonna change our brains and like, you know, destroy humanity and whatever. And like, I don&#39;t know, like, we kind of did a lot of that already. Like, can you navigate in your city without GPS? There&#39;s a lot of stuff that we&#39;ve already lost that used to be like, canonically like, you know, you used to have a navigator. If you wanted to do a road trip, like, you would have spent a week planning a route and then, like, God help you if you miss a turn. Same thing for, like, finance and, like, the spreadsheet. I don&#39;t know, this is gonna be, this is a broad, more broadly applicable thing than any of those past technological leaps. [00:59:21]&lt;/p&gt;
&lt;p&gt;Another thing that I learned recently, going on the societal level again, there was a ... In 2023, there was an, like, international, like, literacy survey done, levels and whatever. And I think level one was can read, but struggles with, like, finding knowledge in text or, like, following multi-step instructions. [00:59:58]&lt;/p&gt;
&lt;p&gt;And 28% of Americans m- met that were, you know, were tested at that level of literacy. And, like, it said anything below level three is considered partially illiterate. And the stats were half, half- [01:00:20]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; 54% of Americans are less than sixth grade reading level. They will not do well with LLMs. [01:00:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right. But, like, you know, we did that before LLMs. [01:00:42]&lt;/p&gt;
&lt;p&gt;That was 2023. Like, okay, sure. Like, there&#39;s gonna be weird shit going on since then now, but, like, God, we already ... Like, as far as destroying society, like, we&#39;ve done a pretty good job of that without AI. [01:00:45]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; And for context, that&#39;s 54% of adult Americans. It doesn&#39;t, like, count children and stuff. [01:00:57]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. [01:01:03]&lt;/p&gt;
&lt;p&gt;I don&#39;t know. It&#39;s just, like, anytime I hear people talk about, like, the downfall of, like, civilization or whatever, it&#39;s like, &quot;I don&#39;t know. Have you looked at civilization lately? It&#39;s not doing so great.&quot; So, I don&#39;t know, it is gonna be a lot. It&#39;s gonna be challenging and difficult. I guess going back to engineering, software engineering, you remember the &#39;90s and 2000s, 2010s era, like, stereotypes of software engineers, like, it&#39;s, like, super autistic, like, zero social skills. They are a human computer. [01:01:03]&lt;/p&gt;
&lt;p&gt;And now we don&#39;t have that anymore. We, you know, democratize software engineering and now everyone does it. We&#39;ve always tried to get something basically like an LLM. Like, that&#39;s what people wanted out of software engineers this whole time. So, I think it&#39;s gonna be ... I like the analogy of, like, compilers and garbage collection and stuff, because it&#39;s just a new tool. [01:01:31]&lt;/p&gt;
&lt;p&gt;It&#39;s a new level of abstraction, and now it&#39;s much further removed from the hardware. But, yeah, I don&#39;t know. People talk about, like, the d- it&#39;s gonna destroy, like, the upskilling, it&#39;s gonna destroy junior engineers, and it&#39;s, there&#39;s not gonna be any pathway in. And, like, I don&#39;t know, maybe that&#39;s true, but at the end of the day, I&#39;m gonna end on, like, a positive thought or, like, advice. [01:01:54]&lt;/p&gt;
&lt;p&gt;Like, this is all communication. It&#39;s just more and more communication. If you wanna lock in your software engineering career, get good at communicating, get good at deeply understanding and articulating a problem, not the code, not the patterns necessarily, but, like, understand what an architecture is good at or bad at or what the performance profile of this or that are. [01:02:18]&lt;/p&gt;
&lt;p&gt;And, like, now, you don&#39;t even need to understand it at the same level. Like, I&#39;ve been really excited about AI is because I have such a broad and shallow expertise, and now I can use it. Like, it used to be that I had all this, like, vague notional expertise in a wide range of stuff, and it&#39;s like, &quot;Damn, I wish I could use that, but I would need a team of 15 people in order to be productive with this. [01:02:45]&lt;/p&gt;
&lt;p&gt;And now I don&#39;t. So, like, I don&#39;t know, that&#39;s exciting for me. And I think that&#39;s just generally exciting. So if you&#39;re just good at communicating and you learn a domain and you get good at articulating problems within that domain, then, like, I think you&#39;re gonna be fine. [01:03:08]&lt;/p&gt;
&lt;h2 id=&quot;a-superpower-right-now-is-a-domain-expert-who-can-kind-of-code&quot;&gt;A superpower right now is a domain expert who can kind of code&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; I think superpower right now is if you&#39;re a domain expert who can kind of code. [01:03:22]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; There is certainly still value in, you know, greater engineering expertise and understanding how to ship stuff to production. [01:03:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; At some scale, that becomes a domain expertise. [01:03:34]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; True. Yeah. Extremely true. So yeah, I don&#39;t know. [01:03:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Uh, I&#39;m excited. I [01:03:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Swizec:&lt;/strong&gt; can build more stuff. [01:03:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I can build so much ... I have built so much more. [01:03:43]&lt;/p&gt;
&lt;p&gt;I&#39;ve explored so many more things and gone, &quot;Oh, this is harder than I thought. I&#39;m gonna set it down.&quot; Instead of just never doing it and, like, fantasizing about what it could have been for years, you know? [01:03:45]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yeah. Same. [01:03:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; All right. Cool. Thank you all. Thank you both for joining me. Thank you everyone in the audience for listening. [01:03:55]&lt;/p&gt;
&lt;p&gt;Appreciate it a lot. [01:04:00]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Hopefully this was informative. [01:04:01]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool. All right. Well, this has been this month in React, quote unquote. I think we may be exploring different formats in the future because, I don&#39;t know, who&#39;s following individual software library development as closely anymore. But yeah, thanks so much for listening. [01:04:02]&lt;/p&gt;
&lt;p&gt;If this is a show that you get value from, please send it to a coworker, send it to a friend, leave us a review. And yeah, I&#39;ll see you next month. [01:04:17]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; All right. Take care. [01:04:25]&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2026-04</link><guid isPermaLink="false">reactiflux-tmir-2026-04</guid><pubDate>Mon, 27 Apr 2026 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>TMiR 2026-02: CloudFlare remakes Next with AI; Vercel big mad. We talk too much about AI Agents</title><description>&lt;iframe width=&quot;100%&quot; height=&quot;180&quot; frameborder=&quot;no&quot; scrolling=&quot;no&quot; seamless=&quot;&quot; src=&quot;https://share.transistor.fm/e/de32a7b9&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#new-releases&quot;&gt;01:46&lt;/a&gt;]&lt;/code&gt; New releases
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#ts-60-beta-last-ts-impl-release-stricter-defaults&quot;&gt;01:50&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-6-0-beta/&quot;&gt;TS 6.0 beta&lt;/a&gt;! (last TS impl release; stricter defaults)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#yarn-6-preview-rewritten-in-rust&quot;&gt;02:34&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://yarn6.netlify.app/blog/2026-01-28-yarn-6-preview/&quot;&gt;Yarn 6 preview&lt;/a&gt; (rewritten in Rust)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#electrobun-tauri-alternative&quot;&gt;02:52&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://blackboard.sh/electrobun/docs/&quot;&gt;Electrobun&lt;/a&gt; (Tauri alternative)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#react-native-gesture-handler-v3&quot;&gt;03:31&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://blog.swmansion.com/introducing-gesture-handler-3-0-hook-based-api-deeper-reanimated-integration-more-9185b0c8e305&quot;&gt;React Native Gesture Handler v3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#next-polyfills-improved-webstreams-and-upstreaming-to-node&quot;&gt;04:20&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://vercel.com/blog/we-ralph-wiggumed-webstreams-to-make-them-10x-faster&quot;&gt;Next polyfills improved WebStreams and upstreaming to Node&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#webpack-2026-roadmap&quot;&gt;05:25&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://webpack.js.org/blog/2026-04-02-roadmap-2026/&quot;&gt;Webpack 2026 roadmap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#lodash-maintenance-roadmap&quot;&gt;05:53&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://socket.dev/blog/inside-lodash-security-reset&quot;&gt;Lodash maintenance roadmap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#gatsby-react-19-support-styled-components-rsc-support&quot;&gt;07:07&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.gatsbyjs.com/docs/reference/release-notes/v5.16/&quot;&gt;Gatsby React 19 support&lt;/a&gt; , &lt;a href=&quot;https://styled-components.com/releases#styled-components@6.3.0&quot;&gt;styled-components RSC support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#npmxdev-alternate-npm-site-ui&quot;&gt;07:54&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://npmx.dev/&quot;&gt;npmx.dev&lt;/a&gt; (alternate NPM site UI)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#eslint-plugin-react-render-types-typed-children&quot;&gt;08:43&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/HorusGoul/eslint-plugin-react-render-types&quot;&gt;eslint-plugin-react-render-types&lt;/a&gt; (typed children)&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#main-content&quot;&gt;09:54&lt;/a&gt;]&lt;/code&gt; Main Content
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#react-core-updates&quot;&gt;09:55&lt;/a&gt;]&lt;/code&gt; React Core updates:
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#react-foundation-officially-launched&quot;&gt;09:56&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react.dev/blog/2026/02/24/the-react-foundation&quot;&gt;React Foundation officially launched&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#docs-updates-useactionstate-merged-use-and-rsc-sandboxes-wip&quot;&gt;12:28&lt;/a&gt;]&lt;/code&gt; Docs updates: &lt;a href=&quot;https://github.com/reactjs/react.dev/pull/8284&quot;&gt;&lt;code&gt;useActionState&lt;/code&gt;&lt;/a&gt; (merged), &lt;a href=&quot;https://github.com/reactjs/react.dev/pull/8305&quot;&gt;&lt;code&gt;use&lt;/code&gt;&lt;/a&gt; and &lt;a href=&quot;https://github.com/reactjs/react.dev/pull/8300&quot;&gt;RSC sandboxes&lt;/a&gt; (wip)&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#react-native-084-released&quot;&gt;14:23&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactnative.dev/blog/2026/02/11/react-native-0.84&quot;&gt;React Native 0.84 released&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#hermes-wasm-support-hermes-node-compat-cli&quot;&gt;17:47&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/tmikov/status/2023821160241393839&quot;&gt;Hermes WASM support&lt;/a&gt;, &lt;a href=&quot;https://x.com/tmikov/status/2024609186936660170&quot;&gt;Hermes Node compat CLI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#state-of-survey-results&quot;&gt;18:43&lt;/a&gt;]&lt;/code&gt; “State of…” survey results
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#state-of-js-2025-results&quot;&gt;18:43&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://2025.stateofjs.com/en-US&quot;&gt;State of JS 2025 results&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#state-of-react-2025-results&quot;&gt;19:06&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://2025.stateofreact.com/en-US&quot;&gt;State of React 2025 results&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#aurora-scharffs-conclusion&quot;&gt;19:51&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://2025.stateofreact.com/en-US/conclusion/&quot;&gt;Aurora Scharff’s conclusion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#josh-comeaus-takes-on-the-results&quot;&gt;20:44&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/joshwcomeau.com/post/3mf642css6227&quot;&gt;Josh Comeau’s takes on the results&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#api-pain-points&quot;&gt;21:28&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://2025.stateofreact.com/en-US/features/#main_apis_pain_points&quot;&gt;API pain points&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#state-of-react-native-2025&quot;&gt;21:53&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://results.2025.stateofreactnative.com/en-US/&quot;&gt;State of React Native 2025&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#how-we-rebuilt-nextjs-with-ai-in-one-week&quot;&gt;24:29&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://blog.cloudflare.com/vinext/&quot;&gt;How we rebuilt Next.js with AI in one week&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#cloudflare-v-vercel-beef&quot;&gt;29:52&lt;/a&gt;]&lt;/code&gt; CloudFlare v Vercel beef&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#carl-vitullo-monologs-about-ai-agents&quot;&gt;35:42&lt;/a&gt;]&lt;/code&gt; Carl Vitullo monologs about AI Agents&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#ai-productivity-and-impacts-on-our-attention&quot;&gt;42:27&lt;/a&gt;]&lt;/code&gt; AI productivity and impacts on our attention&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#wrote-a-spec-pointed-claude-at-an-asana-board-and-went-home&quot;&gt;44:42&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/rvivek/status/2026385957596111044&quot;&gt;&quot;wrote a spec, pointed Claude at an Asana board, and went home&quot;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#bits-ai-sre-datadog&quot;&gt;47:26&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.datadoghq.com/product/ai/bits-ai-sre/&quot;&gt;Bits AI SRE | Datadog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#thoughtworks-opines-on-ai-productivity-impacts&quot;&gt;51:04&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://simonwillison.net/2026/Feb/14/thoughtworks/&quot;&gt;ThoughtWorks opines on AI productivity impacts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#-lightning-round-&quot;&gt;01:00:28&lt;/a&gt;]&lt;/code&gt; ⚡ Lightning round ⚡
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#wall-street-raider-game-modernization-and-uses-preact&quot;&gt;01:00:37&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.wallstreetraider.com/story.html&quot;&gt;“Wall Street Raider” game modernization&lt;/a&gt; (and uses Preact)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#github-stacked-diffs-preview-faster-issues-search&quot;&gt;01:01:16&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/jaredpalmer/status/2019817235163074881&quot;&gt;Github Stacked Diffs preview&lt;/a&gt; , &lt;a href=&quot;https://github.blog/changelog/2026-01-29-improved-search-for-github-issues-in-public-preview/&quot;&gt;faster Issues search&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#josh-comeau-sprite-animations&quot;&gt;01:02:08&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.joshwcomeau.com/animation/sprites/&quot;&gt;Josh Comeau: Sprite animations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#interop-2026-webkit-igalia&quot;&gt;01:02:26&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://wpt.fyi/interop-2026&quot;&gt;Interop 2026&lt;/a&gt;, (&lt;a href=&quot;https://webkit.org/blog/17818/announcing-interop-2026/&quot;&gt;WebKit&lt;/a&gt;, &lt;a href=&quot;https://www.igalia.com/news/interop-2026.html&quot;&gt;Igalia&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-02#conferences-react-javascript&quot;&gt;01:03:38&lt;/a&gt;]&lt;/code&gt; Conferences (&lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://confs.tech/javascript&quot;&gt;Javascript&lt;/a&gt;)
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://appdevcon.nl/&quot;&gt;AppDevCon&lt;/a&gt; Mar 10-13, Amsterdam Netherlands&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.programmable.tech/&quot;&gt;Programmable&lt;/a&gt; Mar 17 / Mar 19, Melbourne / Sydney, Australia&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;a href=&quot;https://frontrunners.tech/&quot;&gt;Frontrunners&lt;/a&gt; Mar 27, Washington DC, USA
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;CFPs: &lt;a href=&quot;https://docs.google.com/forms/d/e/1FAIpQLScK3YlL_-2teVyX7pohkjIbsyLSF-8Hq4z-U7CPQ186sgdNPA/viewform&quot;&gt;web talks&lt;/a&gt; or &lt;a href=&quot;https://docs.google.com/forms/d/e/1FAIpQLSedNNa4N64vgfsvAtGcBngKJrtd3h1_x0T019GTW-rSwCj0jQ/viewform&quot;&gt;AI/data&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://t3chfest.es/2026/en/&quot;&gt;T3chfest&lt;/a&gt; Mar 12-13, Madrid, Spain&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;a href=&quot;https://react.paris/&quot;&gt;React Paris&lt;/a&gt; Mar 26-27 Paris, France
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.google.com/forms/d/e/1FAIpQLSfLICWs7vpK5fuMkZyJk4GyDtZBs08NMKJ0eIOOZBUxo98beQ/viewform&quot;&gt;CFP (closed)&lt;/a&gt;, &lt;a href=&quot;https://docs.google.com/forms/d/e/1FAIpQLSd0pjOsMo0z3fvhv9EhgvUBWA4CdIcsivOCQi8wBmiNc_yXPQ/viewform&quot;&gt;Also a community survey&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://london.cityjsconf.org/&quot;&gt;CityJS London&lt;/a&gt;, Apr 15-17, London, UK&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.jsday.it/&quot;&gt;jsday&lt;/a&gt; Apr 9-10, Bologna, Italy&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://smashingconf.com/amsterdam-2026&quot;&gt;SmashingConf Amsterdam&lt;/a&gt; Apr 13-16, Amsterdam, Netherlands&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.reactmiami.com/&quot;&gt;React Miami&lt;/a&gt; Apr 22-25&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://forms.gle/jxUNcEpibb1XcLdP7&quot;&gt;JSWorld&lt;/a&gt; May 7-8 Amsterdam, Netherlands&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Hello everyone. Thank you for joining us for the February edition of this Month in React. As we recap what&#39;s going on in React, react Native and across the web, coming to you live from Reactiflux, the place for professional developers using React. This is our first month, we are now membership applications only. Everyone in here now is part of an exclusive club that has a gate at the door, which feels kind of weird, but it has shifted the vibe. So I&#39;m pro it so far. It&#39;s kept out a lot of scammers. [00:00]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; There&#39;s even been a lot of that going on across, you know, the open source ecosystem in general. I&#39;ve seen numerous repos going like no external contributors or vouch system only. [00:29]&lt;/p&gt;
&lt;p&gt;So there&#39;s, there&#39;s a lot of trend there. [00:40]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; It&#39;s unfortunate. But anyway, I&#39;m Carl. I&#39;m a staff product developer and freelance community leader here at React Flex, where I run community programs like this podcast, news events, and build tools to help keep the community operating. [00:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Hi, I&#39;m Mark. My day job is working a Replay.io where we are, once again, building awesome time, travel, debugging stuff, and now have a new replay, MCP to let your own AI agent Investate recordings. And outside of that, I find time to do redux stuff. [01:06]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; And I am Mo, I work at a company called Theodo, which is a global consultancy, and I spend my time these days building AI tooling, but have spent the last three, four years in the React and React Native ecosystem. So I try to merge the two together. So I, uh, organize the React Native London Meetup and conference and have spent a bit of time dabbling in the React Native ecosystem. [01:09]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. And we have a fun little podcast milestone this month. It&#39;s a little bit fuzzy because metrics are like really hard to do on downloads, but it appears that we crossed 7,500 downloads cumulatively across the entire podcast over the past month. So like, yay. That&#39;s cool. Thanks for listening. Cool. [01:28]&lt;/p&gt;
&lt;h2 id=&quot;new-releases&quot;&gt;New releases&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Mark, take us through some new releases. [01:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Okay, first couple items. [01:48]&lt;/p&gt;
&lt;h2 id=&quot;ts-60-beta-last-ts-impl-release-stricter-defaults&quot;&gt;&lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-6-0-beta/&quot;&gt;TS 6.0 beta&lt;/a&gt;! (last TS impl release; stricter defaults)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; TypeScript six beta just dropped. And as a reminder, this is scheduled to be the final release of TypeScript written in TypeScript itself. The plan is that there will be no 6.1, no, 6.2. The the next release would be TS 7, which is the built in go version. The biggest thing for version six, you know, TypeScript has always been very fuzzy on their versioning, but they, when it&#39;s a do o release, they do tend to change some settings. [01:50]&lt;/p&gt;
&lt;p&gt;And so TS 6.0 is going to make a lot more stricter defaults as preparation for version seven. So that both improves behavior as well as reflects how TypeScript is actually being used in practice today. [02:20]&lt;/p&gt;
&lt;h2 id=&quot;yarn-6-preview-rewritten-in-rust&quot;&gt;&lt;a href=&quot;https://yarn6.netlify.app/blog/2026-01-28-yarn-6-preview/&quot;&gt;Yarn 6 preview&lt;/a&gt; (rewritten in Rust)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Meanwhile, continuing another trend, yarn has released version six or, or announced a version six, which is a little surprising &#39;cause I don&#39;t. [02:34]&lt;/p&gt;
&lt;p&gt;I think they had a version five, I&#39;m pretty sure they&#39;re on version four right now. And it is the obligatory rewrite it in Rust approach. So train to speed things up. [02:42]&lt;/p&gt;
&lt;h2 id=&quot;electrobun-tauri-alternative&quot;&gt;&lt;a href=&quot;https://blackboard.sh/electrobun/docs/&quot;&gt;Electrobun&lt;/a&gt; (Tauri alternative)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Totally different item. So we&#39;ve got Electron, which is desktop apps wrapped in a browser because you ship an entire chromium build for your website. [02:52]&lt;/p&gt;
&lt;p&gt;There&#39;s tari, which is desktop apps in a browser, except that it uses the operating systems built-in browser web view. And someone else just put out electro button, which is the, an equivalent of tari and that it uses the, you know, the native web view. But it uses BUN for all the behind the scenes processing. [03:03]&lt;/p&gt;
&lt;p&gt;So it looks, looks potentially interesting. And with BUN being a Swiss Army knife could be useful. [03:26]&lt;/p&gt;
&lt;h2 id=&quot;react-native-gesture-handler-v3&quot;&gt;&lt;a href=&quot;https://blog.swmansion.com/introducing-gesture-handler-3-0-hook-based-api-deeper-reanimated-integration-more-9185b0c8e305&quot;&gt;React Native Gesture Handler v3&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Switching over to the React Native ecosystem, the folks at Software Mansion have released. React Native gesture handler version 3.0. It&#39;s currently a beta, but it&#39;s, it&#39;s likely gonna be released as it is. And so the major change here is that they&#39;ve overhauled the API surface to be based on hooks. [03:31]&lt;/p&gt;
&lt;p&gt;So previously it was a bit of a, an imperative setup. It wasn&#39;t hook based. They&#39;ve now updated it so that it fits more with some of the other libraries that Jester Handler integrates with. They&#39;ve also removed support for the legacy architecture and they&#39;ve done some performance optimizations under the hood so that when you integrate reanimated with gesture handler. [03:49]&lt;/p&gt;
&lt;p&gt;Things work kind of better and it lets you use things like shared values across the board into your gestures, which is something that you previously couldn&#39;t do. So some good changes here, and hopefully it will be launched soon outside of data. [04:07]&lt;/p&gt;
&lt;h2 id=&quot;next-polyfills-improved-webstreams-and-upstreaming-to-node&quot;&gt;&lt;a href=&quot;https://vercel.com/blog/we-ralph-wiggumed-webstreams-to-make-them-10x-faster&quot;&gt;Next polyfills improved WebStreams and upstreaming to Node&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; This next one is somewhere between a, a release and a news item. [04:20]&lt;/p&gt;
&lt;p&gt;So there was, there was some investigation of next JS and RSE performance a couple months back, and CloudFlare was digging inside the internals of Next and made some improvements. So LL apparently followed up on some of this and RSCs at least some of the next usages, currently use web streams internally for passing the data around instead of the nodes standard built in streams. So two different stream implementations. [04:24]&lt;/p&gt;
&lt;p&gt;They did some analysis and figured out that Node&#39;s Webstream implementation is actually really inefficient and actually kind of previewing something we&#39;ll be talking about later. They cut a bunch of agents loose and said, Hey, make this a whole lot faster and be actually very similar because there were a ton of web platform tests on how web streams ought to be behave. [04:52]&lt;/p&gt;
&lt;p&gt;They were able to re-implement the concept faster, and they&#39;re trained to upstream some of that behavior into node itself, but also release this as essentially a polyfill package as well. [05:12]&lt;/p&gt;
&lt;h2 id=&quot;webpack-2026-roadmap&quot;&gt;&lt;a href=&quot;https://webpack.js.org/blog/2026-04-02-roadmap-2026/&quot;&gt;Webpack 2026 roadmap&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Let&#39;s see. We have a couple road mappy items. First off, Webpac has put, has put out a 2026 roadmap. Some of the things we&#39;re looking at are better built in support for CSS modules, a new universal output format that will work across run times. [05:25]&lt;/p&gt;
&lt;p&gt;Being able to load TypeScript without needing a separate loader plugin and trying to make sure that Webpack can run everywhere, not just node. [05:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, I guess that seems good. [05:51]&lt;/p&gt;
&lt;h2 id=&quot;lodash-maintenance-roadmap&quot;&gt;&lt;a href=&quot;https://socket.dev/blog/inside-lodash-security-reset&quot;&gt;Lodash maintenance roadmap&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Keeping on the, I don&#39;t know, roadmap and old tools. Talking about what they&#39;re gonna be doing next. Lodash put out a a bit of a roadmap, or I guess sot dev is talking about the Lodash reset and maintenance reboot as they call it. [05:53]&lt;/p&gt;
&lt;p&gt;The title here, we talked about this a bit last month, but yes, the Lodash maintainers are rebooting the governance of the package essentially. Interestingly, they got an investment from a European like sovereign tech fund. So I guess you know the. Some European agency has determined that Lodash is critical infrastructure, deserving financial support, and so they are using that money to fund governance changes to how the package is managed, and then also do some security releases and such, which is great. [06:10]&lt;/p&gt;
&lt;p&gt;I mean, Lodash is the kind of thing that, you know, in the aftermath of all of these NPM vulnerabilities, Lodash is absolutely the kind of library that would be aggressively targeted by nefarious actors. So that&#39;s pretty cool. That&#39;s exciting. Why? I like seeing rebuilding security from first principles if a core project is going to get a bunch of money. [06:45]&lt;/p&gt;
&lt;p&gt;Very cool. [07:06]&lt;/p&gt;
&lt;h2 id=&quot;gatsby-react-19-support-styled-components-rsc-support&quot;&gt;&lt;a href=&quot;https://www.gatsbyjs.com/docs/reference/release-notes/v5.16/&quot;&gt;Gatsby React 19 support&lt;/a&gt;, &lt;a href=&quot;https://styled-components.com/releases#styled-components@6.3.0&quot;&gt;styled-components RSC support&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And on a similar note, a couple other legacy projects getting updates. Gatsby had a. Maintenance release that added some kind of react 19 support and styled components. Put out a release that tries to add RSC compatibility, which is very interesting. &#39;cause I thought, I thought one of the issues was it just wouldn&#39;t work in server components. [07:07]&lt;/p&gt;
&lt;p&gt;So I, I haven&#39;t looked at this, I just saw it this morning. But FYI, [07:26]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I also remember them putting a big sting and saying they were deprecating themselves as a lib. [07:30]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right. We talked about that. [07:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I mean, someone, someone else forked it to improve the performance, but I thought the primary library was halted. [07:36]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; And, and same for Gatsby, although I might beat bit fuzzy. Was Gatsby ever deprecated or is it [07:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yeah. Gatsby was bought by Netlify and then abandoned. [07:47]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; So turns out AI can revive old school projects. [07:50]&lt;/p&gt;
&lt;h2 id=&quot;npmxdev-alternate-npm-site-ui&quot;&gt;&lt;a href=&quot;https://npmx.dev/&quot;&gt;npmx.dev&lt;/a&gt; (alternate NPM site UI)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And last couple release announcements, those of you who have ever looked at the NPM package website might have noticed that it&#39;s, it&#39;s there, it works, but it&#39;s not really modern and it certainly hasn&#39;t been updated in a while. [07:54]&lt;/p&gt;
&lt;p&gt;So a bunch of folks from the community have put together NPM x.dev, which is an entire alternate front end to the same NPM package registry and server APIs. This only sprang up within like the last month or month and a half, and there&#39;s been a massive group of folks just diving in and building out a brand new website from scratch and adding all kinds of useful features. [08:09]&lt;/p&gt;
&lt;p&gt;I&#39;ve, I&#39;ve looked at it a couple times and it is much, much better implemented than the primary NPM website. Nice. [08:34]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Love that. [08:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yep. [08:42]&lt;/p&gt;
&lt;h2 id=&quot;eslint-plugin-react-render-types-typed-children&quot;&gt;&lt;a href=&quot;https://github.com/HorusGoul/eslint-plugin-react-render-types&quot;&gt;eslint-plugin-react-render-types&lt;/a&gt; (typed children)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And then finally, one of the longstanding complaints about React in TypeScript is that you can&#39;t correctly type what? Style components can be passed in to a given parent. And apparently someone had added the flow typing language competitor type script had added a feature like this a couple years back. [08:43]&lt;/p&gt;
&lt;p&gt;But you know, at this point, nobody uses flow outside of Facebook. And so someone apparently put together an ES lint plugin that somehow tries to implement this kind of typed children restriction functionality. [09:05]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I love that. That is something I had wanted a number of times. There was a moment a, a while ago where like compound components was a talking point, you know, a point of discussion in the React ecosystem where it&#39;s like tabs and like tab groups and like tab content, and you need those to be individual components because of just the structure of the dom, but they&#39;re all interrelated and like, this one must be nested within this one and so on. [09:17]&lt;/p&gt;
&lt;p&gt;So being able to enforce that in type constraints is, Ooh, love to sing that [09:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; both people and ais love having real typed constraints to catch problems in the first place. [09:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yes, indeed. [09:53]&lt;/p&gt;
&lt;h2 id=&quot;main-content&quot;&gt;Main Content&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Okay. [09:54]&lt;/p&gt;
&lt;h2 id=&quot;react-core-updates&quot;&gt;React Core updates:&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Into our main content. [09:55]&lt;/p&gt;
&lt;h2 id=&quot;react-foundation-officially-launched&quot;&gt;&lt;a href=&quot;https://react.dev/blog/2026/02/24/the-react-foundation&quot;&gt;React Foundation officially launched&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; The React Foundation was announced at React Conf back in October. The onstage announcement didn&#39;t have a lot of details and we&#39;ve tried to pass on tidbits of information that we heard talking to, you know, Seth and other folks over the last couple months. [09:56]&lt;/p&gt;
&lt;p&gt;So. This blog post really doesn&#39;t say a whole lot more that we, you know, that we didn&#39;t know yet, other than the fact that apparently there&#39;s an eighth founding company, Huawei, it does say that they&#39;re trying to figure out what the, the split between the technical and political governance of the foundation will look like. [10:13]&lt;/p&gt;
&lt;p&gt;So there&#39;s a little bit of a, this is an announcement that there&#39;s an announcement thing going on, but hey, you gotta start somewhere. And I&#39;m, I&#39;m happy to see any kind of actual progress on this moving forward. [10:30]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I don&#39;t know what we will really see from like, in terms of substantial details. &#39;cause like it&#39;s not like the core team in general was like super communicative about its internal processes or like who was doing what. [10:42]&lt;/p&gt;
&lt;p&gt;So I was hoping that might change a little bit. [10:56]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Well, I mean, I mean talking to Seth directly back in New York and November, the longer term plan, and I, I don&#39;t know what the timeline is for this, but he flat out said they are intending to open up the literal weekly team sync meetings, like the same ones they&#39;ve been having internally at meta and meta and versa for the last decade. [10:58]&lt;/p&gt;
&lt;p&gt;They intend to literally open those up to the public for viewing and then start to, you know, actually bring in community representatives to participate in those meetings as well as the new government structure affecting what the planning process is. So, like that alone is something that I am very, very excited about. [11:17]&lt;/p&gt;
&lt;p&gt;Get to get to see all the sausage feeding. [11:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, that&#39;s very cool. I should talk to them &#39;cause I don&#39;t know, like I said at the beginning, Reactiflux now has a gate at the door. I&#39;m curious about adding more gates because like the keen eye may notice that there are not very many open source project maintainers around here. [11:39]&lt;/p&gt;
&lt;p&gt;And I tend to believe that&#39;s because of, there&#39;s a lot of people who are not as experienced and the volume of less experienced questions crowds out the more experienced people trying to have discussions. So I&#39;m curious about adding more levels of gates, you know, so you can get in and then you can get in further and then you can ascend and sounds related to open access meetings. And then, you know, some participants being able to join if they meet some other bar. That would be cool if we could be more of a home for a little bit more of that stuff. Anyway. [11:54]&lt;/p&gt;
&lt;h2 id=&quot;docs-updates-useactionstate-merged-use-and-rsc-sandboxes-wip&quot;&gt;Docs updates: &lt;a href=&quot;https://github.com/reactjs/react.dev/pull/8284&quot;&gt;&lt;code&gt;useActionState&lt;/code&gt;&lt;/a&gt; (merged), &lt;a href=&quot;https://github.com/reactjs/react.dev/pull/8305&quot;&gt;&lt;code&gt;use&lt;/code&gt;&lt;/a&gt; and &lt;a href=&quot;https://github.com/reactjs/react.dev/pull/8300&quot;&gt;RSC sandboxes&lt;/a&gt; (wip)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Other than that, a couple other bits of news. I I, I don&#39;t think there&#39;s been any other React releases recently, however, Ricky Hanlon has been diving in and trying to do some major improvements to some of the React reference docs. [12:28]&lt;/p&gt;
&lt;p&gt;I think last month we had talked about, he had rewritten the use effect event, API reference and possibly one other page. And within the, the last couple weeks he&#39;s gone in, he merged a rewrite of the Use Action State reference page. He has a work in progress PR to revamp the use hook page, and he also has a PR to try to add sandboxes for server components to the docs. [12:40]&lt;/p&gt;
&lt;p&gt;And this is actually kind of a big deal. I don&#39;t know, I don&#39;t know what the longer term plan is here, but this is something I talked with him about. If you wanted to teach server components in the docs, how is a learner going to be able to try server components? Right now, like there&#39;s like, you know, it&#39;s all teaching client side react and it uses the sandboxes very, very well to do that. [13:07]&lt;/p&gt;
&lt;p&gt;But how are you going to teach someone server components if they have no way to try it out and it fully needs a framework choice to be able to do it. So if he&#39;s come up with an approach that is kind of like a, some sort of framework agnostic sandboxes that feels like it would unlock the ability to then add server components, teaching content to the docs. [13:33]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; It&#39;s interesting. Yeah. Where my reminds me of, I, I remember when I was learning JavaScript for the first time in like 2000, I don&#39;t know, &#39;04 or &#39;05, the try it editor on like W three schools where you could have like code over here and the pa you know, the, the webpage over here. Like, oh, it was so powerful. [13:57]&lt;/p&gt;
&lt;p&gt;So I, yeah, fuck yeah, let&#39;s update it to the modern era. Give some sandboxes for RSCs. [14:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Cool. [14:21]&lt;/p&gt;
&lt;h2 id=&quot;react-native-084-released&quot;&gt;&lt;a href=&quot;https://reactnative.dev/blog/2026/02/11/react-native-0.84&quot;&gt;React Native 0.84 released&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; So moving on to the next piece of news from the React core team. React Native version 0.84 has been released. Now, like we said previously, these releases are getting smaller and smaller and the idea is that they&#39;re released on a sort of two month by two month basis. [14:23]&lt;/p&gt;
&lt;p&gt;The big one on this release is that Hermes version one is by default. Now, just to give a little bit of background as to what Hermes v1 actually brings to the table, it&#39;s effectively a bunch of improvements on the VM performance. So they&#39;ve gone in and actually implemented support for things like, ES6 classes. [14:39]&lt;/p&gt;
&lt;p&gt;Some of the syntax in more modern JavaScripts like constant let support for things like Async. Previously, all of this was being basically handled by Babel and just transpired into older formats of of JavaScript, and so. All of this is sort of helping improve the actual performance here. Now, this is not to be confused with static Hermes, which is a totally different project, but the idea is that there are some serious performance improvements here. [15:01]&lt;/p&gt;
&lt;p&gt;They ran some benchmarks on what this looks like, and we&#39;re talking on some sort of performance benchmarks on some of these open source projects. You know, we&#39;re looking at sort of something like 50% improvement in the relative performance for basically executing complex JavaScript benchmarks. The reality of it is when you sort of look at it, the, the results that they&#39;ve given out, and oftentimes the React data ecosystem people use the Expensify app as sort of a benchmark because it&#39;s a real world app that&#39;s also open source. [15:30]&lt;/p&gt;
&lt;p&gt;So it, it gives a lot of good, uh, real world benchmarks. They saw improvements in the TTI of an app, so how quickly the app is interactive, somewhere between two to 7%, depending on the platform, but also things like the loading time of the bundle being significantly quicker. So generally just performance improvements on the whole. [16:01]&lt;/p&gt;
&lt;p&gt;Secondly, there was another sort of piece that we talked about last month that&#39;s now in by default, which is pre-compiled binaries on iOS. So previously with React Native, what the process would look like is that you would go through and actually build from source. That is no longer the case. By default, all of this is pre-compiled as an XC framework, which is effectively a library binary in the swift world, and then it&#39;s just installed as if it was a third party dependency. [16:22]&lt;/p&gt;
&lt;p&gt;You can opt out for the old behavior, but this will speed up build times quite significantly. Those are sort of the two major pieces. They&#39;ve done a bit of housekeeping on removing more legacy architecture functionality and so on and so forth. But this is really the core. [16:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; So you said like, you know, two to seven percent-ish speed up and then you also said about like loading, like bundle loading. Do you know if the loading performance improvements are included in that percentage speed up or is that like separate things? [17:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; They&#39;re probably linked to one another, but they are different metrics that you assess. So there&#39;s like the bundle load time, which is how quickly the JavaScript gets loaded in by the rec native engine or hers in this case for executing. [17:19]&lt;/p&gt;
&lt;p&gt;But then there&#39;s the TTI, which is sort of like a, a step back, which is basically, I guess on the web side of things, it&#39;s like, I don&#39;t know, we have a TTI metric on the web, but I guess like think of it as like close to LCP in some capacity. [17:30]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, Last Contentful Paint yeah, sure. [17:45]&lt;/p&gt;
&lt;h2 id=&quot;hermes-wasm-support-hermes-node-compat-cli&quot;&gt;&lt;a href=&quot;https://x.com/tmikov/status/2023821160241393839&quot;&gt;Hermes WASM support&lt;/a&gt;, &lt;a href=&quot;https://x.com/tmikov/status/2024609186936660170&quot;&gt;Hermes Node compat CLI&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And then I saw a couple additional tweets from one of the, one of the Hermes team members talking about a couple proof of concepts that they&#39;ve been working, proof of concepts, previews, alphas, somewhere in there that they&#39;ve been working on. One is that they&#39;ve, they&#39;ve put together a CLI for Hermes that at essentially node, but implemented with Hermes instead of V8. So they, they&#39;ve built layers for most of the node APIs and been able to, you know, build a node like CLI with Hermes. [17:47]&lt;/p&gt;
&lt;p&gt;And then they also put together a preview of wasm support for Hermes so that the, the Hermes engine&#39;s able to load WASM bundles Act. And that means you can take, you know, external, external libraries written in c plus plus or rust or whatever, compile them to Wasm and load them by the engine. And thus you get, you know, faster processing runtime from complex computational stuff. [18:16]&lt;/p&gt;
&lt;p&gt;So they&#39;re, they&#39;re probably pretty busy over there. [18:40]&lt;/p&gt;
&lt;h2 id=&quot;state-of-survey-results&quot;&gt;“State of…” survey results&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Okay. [18:43]&lt;/p&gt;
&lt;h2 id=&quot;state-of-js-2025-results&quot;&gt;&lt;a href=&quot;https://2025.stateofjs.com/en-US&quot;&gt;State of JS 2025 results&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Should we go into some state of the ecosystem results. Sure. I regrettably have not read this. These are always so deep and they have so much knowledge in them that I want to give them a lot more attention than I ever really feel like I have. So I have not read these as closely as I would&#39;ve liked to. [18:45]&lt;/p&gt;
&lt;p&gt;Mark, did you get to take a look? [18:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Not really. I saw a few reactions. I linked to some of Josh Comeau&#39;s reactions. [19:01]&lt;/p&gt;
&lt;h2 id=&quot;state-of-react-2025-results&quot;&gt;&lt;a href=&quot;https://2025.stateofreact.com/en-US&quot;&gt;State of React 2025 results&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; The State of React survey in particular, if I&#39;m looking at the, looking at the state of JS one at the moment, they, you know, in particular, they have sections for front end frameworks and meta frameworks, which, you know, is worth glancing at. [19:06]&lt;/p&gt;
&lt;p&gt;There&#39;s, you know, looking at, looking at the front end frameworks, we&#39;ve got, you know, the, the usage ratios react is way up there. But in terms of satisfaction, solid seems to be pretty high up there and has the highest, has had the highest satisfaction for each of the last several years. So I&#39;d have to dig in the numbers to see what the, the number of people using it is. But clearly folks who are using Solid are very happy with it as a choice. [19:21]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Fair enough. [19:50]&lt;/p&gt;
&lt;h2 id=&quot;aurora-scharffs-conclusion&quot;&gt;&lt;a href=&quot;https://2025.stateofreact.com/en-US/conclusion/&quot;&gt;Aurora Scharff’s conclusion&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, I&#39;m reading the, uh, conclusion of State of React written by Aurora Scharf. Man, it&#39;s, I just like, it&#39;s wild to think that Create React App only got sunset one year ago. Like that feels like ages ago. [19:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I know. And I remember I still take 80% of the credit for that happening. [20:06]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, right. Yeah. It&#39;s a great conclusion though. We have talked about a lot of these things that I&#39;m reading in the conclusion, you know. Create React App sunset, Remix going away from React. The, all the server components blog posts that Dan Abramov put out, RSC Explorer, compiler went, you know, going to version 1.0, ASIG React working group. [20:10]&lt;/p&gt;
&lt;p&gt;So, yeah, I don&#39;t know. I guess I&#39;m reading this conclusion in part as like a gr you know, a grading rubric for like, how well did we stay on top of the news as it came out? And I&#39;m like, yeah. All right. We did pretty good. Nice. Good for us. [20:33]&lt;/p&gt;
&lt;h2 id=&quot;josh-comeaus-takes-on-the-results&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/joshwcomeau.com/post/3mf642css6227&quot;&gt;Josh Comeau’s takes on the results&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yeah. Looking down inside of Josh Comeau&#39;s highlights thread, I, I think he calls out some, some rather interesting points. [20:44]&lt;/p&gt;
&lt;p&gt;Apparently a good number of folks have used server components one way or another, which is not a surprise because they&#39;re the default in next at this point. But he also points out that it looks like most people have not used form actions or the newer use action state and use form status hooks. That makes sense because they&#39;re, they&#39;re pretty new APIs. [20:51]&lt;/p&gt;
&lt;p&gt;React 19 only. But also it, it a little bit ties into, you know, kinda the question of like, we&#39;ve all been able to write React apps very solidly since, you know, 20 13, 20 15, et cetera. [21:14]&lt;/p&gt;
&lt;h2 id=&quot;api-pain-points&quot;&gt;&lt;a href=&quot;https://2025.stateofreact.com/en-US/features/#main_apis_pain_points&quot;&gt;API pain points&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Um, and so now there&#39;s all these new capabilities that fill potential app level pain points. But how many people are on React 19? [21:28]&lt;/p&gt;
&lt;p&gt;How many people are experiencing those pain points? How many people are aware that the new APIs exist to potentially help with them? And so there&#39;s an awful lot of, you know, writing React apps the same way we did in 2018, thereabout. [21:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Cool. [21:52]&lt;/p&gt;
&lt;h2 id=&quot;state-of-react-native-2025&quot;&gt;&lt;a href=&quot;https://results.2025.stateofreactnative.com/en-US/&quot;&gt;State of React Native 2025&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; And we&#39;ve also had the state of React Native in 2025, also published by the folks at Software Mansion. [21:53]&lt;/p&gt;
&lt;p&gt;And there, there&#39;s not a whole lot here. A lot hasn&#39;t moved in the ecosystem. There&#39;s a few interesting things that I thought would be, would be interesting to sort of call out. So starting from sort of the new architecture migration, it seems like out of the respondents that have been surveyed, somewhere around 80% have already adapted to the new architecture, which is good. [22:00]&lt;/p&gt;
&lt;p&gt;So it, it fits into sort of meta&#39;s view that the upgrade path is going to be relatively straightforward and it seems like most apps are by and large adopting it, which is great. Interestingly, it seems like most people&#39;s update strategy is to basically use Expo SDK release updates and they sort of update in parallel to that. [22:21]&lt;/p&gt;
&lt;p&gt;And so the idea is when Expo, every few months releases a new SDK update and it happens to be on, let&#39;s say, version 0.82, then, then people will sort of go for that. Now interestingly, what another thing around sort of react Native frameworks and talking about Expo, which is interesting to look at, is that. [22:40]&lt;/p&gt;
&lt;p&gt;Somewhere around sort of 75% of of people said that they&#39;re using Expo CLI, as sort of their framework for their React Native app. But also there&#39;s still a substantial amount of respondents that are using React Native community, CLI. So this is the old React Native CLI that used to be maintained by Meta and has now sort of been made a community package and deprecated by Meta in favor of Expo. [22:58]&lt;/p&gt;
&lt;p&gt;About 50% are still using that, which is surprising, but it also shows that there&#39;s probably a long tail of respondents that are still having apps that were built on top of the, the React Native community CLI these days. So that was quite interesting. The final thing that I thought was. Cool to look at, at a broad level was what percentage of code is being generated by ai? [23:21]&lt;/p&gt;
&lt;p&gt;So they did a, a, a bit of a question on this, and it seems like sort of if you look at the, the, the distribution here, we&#39;re talking about sort of 25 to 30% of react Native code on aggregate by the respondents is being generated by ai, which I suspect will sort of tick up. But 30% is, is quite large when you look at sort of an aggregate of the industry or of, of the entire ecosystem. [23:46]&lt;/p&gt;
&lt;p&gt;So those were sort of the, the high level pieces. If you look at the conclusion, they, they sort of highlight that, you know, some of these results are, are perhaps predictable and I think on large sort of these results are, are as expected. [24:10]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And it looks like that that AI cogen question is under the dev tools category on the results. [24:23]&lt;/p&gt;
&lt;h2 id=&quot;how-we-rebuilt-nextjs-with-ai-in-one-week&quot;&gt;&lt;a href=&quot;https://blog.cloudflare.com/vinext/&quot;&gt;How we rebuilt Next.js with AI in one week&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Okay, we&#39;re gonna use this as a jumping off point. I think. So CloudFlare put out a surprising blog post, or I guess they released a project and announced it. They ha claimed that they have rebuilt next JS on top of Vite from scratch with an AI agent. They basically just said, here&#39;s the test suite. Go. [24:29]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; There was a person doing the driving and the, and the herding and the overseeing. But yes, it was essentially we have next tests as the spec. Can we rebuild it from scratch? But on top of Vite? [24:52]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yes. So they&#39;re calling it Vinext, Vite-Next, you know, get it deploys to CloudFlare workers in a single command. They say in early benchmarks, it builds production apps up to four times faster and produces client bundles up to 57% smaller. [25:05]&lt;/p&gt;
&lt;p&gt;And we already have customers running it in production. They say fascinatingly, they say that it costs them $1,100 in tokens, which is pretty good. I don&#39;t know. The other interesting thing is, so I&#39;ve been playing around with AI a lot in the last month and in my like rough estimates of cost. I bumped up from the $20 a month Claude plan to the $200 a month Claude plan, and maxing out a $200 a month claude Plan appears to use on the order of $2,000 worth of tokens. I do wanna say, when it says this whole thing costs about $1,100 in tokens, that&#39;s eight raw, I believe that&#39;s raw aPI costs. And if you are using a monthly plan like you know, not API access, not a platform account, then I think it&#39;s actually included in that. So like that&#39;s interesting. If it sounds like on my limit, [25:20]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; you can do it with half of a Cloud max subscription. [26:14]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right. Yes. It looks like I could have done this with half of my limit in one Claude Max month, which is not that much like it&#39;s a big project, but it&#39;s not that much like half of my limit. I spent last month brought a project of mine from like pretty good to, I think I&#39;m almost ready to start selling this in like 15% of my Claude limit. [26:16]&lt;/p&gt;
&lt;p&gt;So to totally rewrite next in half of a claw limit is like shocking. Remarkable and also sounds pretty reasonable based on my recent experiences with, you know, benchmarking code output if useful, effective code output against, I dunno, costs, then it&#39;s, so this is really interesting. This is, this ties into some, this is why it&#39;s such a good jumping off point because like Next it has years of usage and like production customers and like a company built a hosting platform around it because that seemed like a good idea. [26:41]&lt;/p&gt;
&lt;p&gt;And now some, now a competitor has taken advantage of their robust tests and everything and said we&#39;re gonna re-implement that from scratch in a matter of days for a trivial cost. [27:17]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Similar examples. So watching Hacker News over the last couple months. A, a similar what Canis do Benchmark has been, what if we just cut agents loose to work for a few weeks and build a browser? [27:29]&lt;/p&gt;
&lt;p&gt;From scratch or a c compiler from scratch. You know, I&#39;ve, I&#39;ve seen both of those examples pop up and the, the big characteristic in all these cases is that it&#39;s a fairly well-defined problem, that it&#39;s fairly deterministic in terms of application behavior. And there is a massive existing test suite that helps define exactly what the behavior ought to be. [27:44]&lt;/p&gt;
&lt;p&gt;You know, we mentioned earlier the example of next reimplementing web streams as a polyfill, but building it faster. And they said, you know, there&#39;s no way we could have done this without the fact that there were already like 1500, 1700 platform tests for web streams. Similarly, browsers like the, the expected behavior for parsing HTML and all these other pieces of, of a browser&#39;s behavior are very, very strictly defined. And there&#39;s a massive set of platform tests that it can be used to compare correctness. So it&#39;s both, you know, like what other examples are out there they can reference, but it&#39;s the tests define what the expectation is. [28:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Uh, on those two examples, I think the browser one was the cursor team and the C compiler was, I believe it was Claude&#39;s internal team. There was a bit of pushback on that because if you dug through it, it didn&#39;t actually compile or build correctly and needed a bit of human fixing to do that. [28:50]&lt;/p&gt;
&lt;p&gt;Admittedly, those are quite complicated tasks, right? Like building an entire browser from scratch and a C compiler is tough. This with CloudFlare coming out and saying, Hey, this is production ready and we&#39;re actually using it in product, or some of our clients are using it in production, seems to be a much bigger claim in my mind than sort of like an experimental labs effort. And it&#39;s, it&#39;s, uh, it&#39;s interesting that a company like CloudFlare is happy to put their name on this rather than it on something that&#39;s like, this is production ready. You can, they&#39;re given a commands to migrate an existing next JS project to Vinext. [29:09]&lt;/p&gt;
&lt;p&gt;Like they&#39;re really going, this is as good as next js. And so it feels like a different grade of achievement in my mind. [29:42]&lt;/p&gt;
&lt;h2 id=&quot;cloudflare-v-vercel-beef&quot;&gt;CloudFlare v Vercel beef&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I mean there, there&#39;s also the existing strife between CloudFlare and Vercel that probably plays into this a little bit, but [29:52]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; true, right? There&#39;s like personal beef between the CEOs of those two companies. [29:58]&lt;/p&gt;
&lt;p&gt;So I&#39;m sure that was a motivator here as well. Okay. There&#39;s personal beef, but there&#39;s also like legitimate technical questions here. Like, Vercel and CloudFlare are each trying to push their own visions of what hosting providers could be, and they&#39;re interesting. You know, I&#39;ve been more interested in the CloudFlare vision of what hosting can be. [30:02]&lt;/p&gt;
&lt;p&gt;Workers sound really cool, like, you know, it seems like a plausible achievement of the vision of serverless, you know, that I&#39;ve been hearing for my entire career. So I&#39;ve been very curious about that. I&#39;ve used it a little bit, and CloudFlare also was doing Open Next before, which was an adapter, so you could use, basically adapting the versal specific runtime things so that it could use it in other platforms. So like this does feel in keeping with the kind of work CloudFlare has been exploring with, but agreed that this is a categorically different kind of plane than like, ooh, we made a, a C compiler. Like no means is seriously using an AI generated c compiler in production. Like, not right now. [30:23]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; It, it&#39;s interesting. So talking about sort of like Cloudflare&#39;s platform, I&#39;ve, this is sort of a, a tangent, but I&#39;ve been building sort of two side projects, two mobile app side projects with ai and I&#39;m defaulting to using CloudFlare workers durable objects and all of that because it&#39;s, it&#39;s actually like quite good for AI to understand in terms of the primitives and doesn&#39;t have to deal with like the complex architectural bits of like defining a region and stuff like that. [31:08]&lt;/p&gt;
&lt;p&gt;So I can, I can, I. I think it&#39;s actually like they have a good AI play that they can execute here as well. Beyond just, you know, articles about how they can rebuild next JS with ai. [31:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, right. [31:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Now there&#39;s one thing in this article that I find quite interesting. So I&#39;ve spent a lot of time battling with the C of next js, and specifically when you&#39;re trying to deploy an xjs in certain sort of custom non-cell environments, it comes with a lot of complexity. [31:48]&lt;/p&gt;
&lt;p&gt;You, you&#39;re gonna have to define your own sort of like cache handler and they seem to have just popped all of that in CloudFlare kv, which is their sort of workers key value store and it&#39;s quite interesting that that, that is sort of the direction they&#39;ve gone through. They say that you can also use R2, which is sort of their S3 equivalent. [32:05]&lt;/p&gt;
&lt;p&gt;Great name by the way, because R two is one character before. S3 on both sides of it, which I think was a dig at AWS, but the caching strategy and allowing for you to customize that cache, I think super easily with some of their primitives is, is quite nice because that is always been a pain point for custom deployments of, of next js. [32:27]&lt;/p&gt;
&lt;p&gt;And I think probably one of the biggest barriers to people, you know, hosting next JS in, in other cloud providers that I&#39;ve seen in the possible and you have custom setups. [32:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I mean, that is, as always, my caveat is I haven&#39;t worked on large scale production commerce e sites, so I have no practical experience with this. [32:58]&lt;/p&gt;
&lt;p&gt;But anecdote like we, we know the know the phrase, you know, the, the biggest error problems are, you know, off by one and caching errors or something. Something of that effect. And certainly anecdotally over the years, you know, like one of the biggest complaints about a polygraph QL was the complexity of the cache implementation. [33:06]&lt;/p&gt;
&lt;p&gt;We&#39;ve seen a lot of complaints about next and their page caching implementation, and we&#39;ve seen them go through, you know, 2, 3, 4 different iterations and approaches to caching and, you know, caching all the different layers of the system. So it&#39;s not surprising that this is a pain point. And so, yeah, I can, I can see CloudFlare saying, what if we, what, what if we do something different and maybe somewhat simpler. [33:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Also, man, I gotta say thank you to Super Kennel in chat for sharing this post from Guiller Moro of titled &quot;Migrate From Vercel to CloudFlare. And, um, you know, it&#39;s got this table of contents at the top, like project setup, migrating custom domains, converting build and deployment, moving environment variables, rewriting, and, you know, it&#39;s like 12, 15 items, something like that. [33:48]&lt;/p&gt;
&lt;p&gt;And like a quite long blog post. Whereas this CloudFlare, you know, we rebuilt next AI is saying, oh, just try it. Install this AI skill and then type migrate this project to V next in your favorite in any supported tool, and it&#39;ll do all the stuff for you. And I&#39;m like, those are two entirely different levels of effort. [34:12]&lt;/p&gt;
&lt;p&gt;And I think CloudFlare handily wins there. That&#39;s interesting, assuming it actually works as, [34:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; it&#39;s funny because in one of the comments the Guillermo says, I&#39;m migrating from Versal to CloudFlare. Am I doing it the wrong way around? And Guillermo&#39;s just like, yes, delete all of that. Rang blur, Jason C config nonsense, and all of the proprietary imports and just run it on Versal. [34:40]&lt;/p&gt;
&lt;p&gt;So this has clearly struck a nerve because they&#39;ve launched this pretty much on the same day that they made this announcement or you know, day after. [34:55]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Right. Delete all the wrangler adjacency, config, nonsense. Like are, is versal gonna try and claim that next doesn&#39;t have config nonsense. Like you do not have a leg to stand on there. [35:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; There&#39;s, there&#39;s no legs to stand on. Especially if you&#39;ve tried to deploy an Xjs project outside of Versal, it is pain. So no respect there. [35:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Interesting. So there&#39;s, there&#39;s lots and lots of angles we could try to discuss here. We&#39;ve, we&#39;ve looked at. Rebuilding apps or tools that have known test suites and what does, and we, we really haven&#39;t even touched on what does that mean in terms of companies having a moat. [35:24]&lt;/p&gt;
&lt;p&gt;In fact, Carl, you wanna, you wanna toss that post in there at the moment? [35:39]&lt;/p&gt;
&lt;h2 id=&quot;carl-vitullo-monologs-about-ai-agents&quot;&gt;Carl Vitullo monologs about AI Agents&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yes. Yes, I do. Also, I wanna, once you&#39;re done, I want to monologue for a moment, [35:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; couple other angles we could look at. I mean, there&#39;s, there&#39;s the ever popular, you know, what does all this mean for us as software engineers and our industry and our careers going forward? [35:47]&lt;/p&gt;
&lt;p&gt;And just how doomed do we all feel as well as, you know, what are we doing with AI on a day-to-day basis. If anything, Carl monologue go. [35:57]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yes. Ah, I alluded earlier to playing a lot with agents. A good internet friend of mine made a very silly AI agent, MMO. So it&#39;s like a text based, if you&#39;re familiar with like a mud, a multi-user dungeon. It&#39;s basically that. It&#39;s a text based MMO that you can play through your terminal, and it&#39;s only for ais to play. Not everyone is, but, so I&#39;ve been using that to learn about how to do agents and how to run AIs autonomously for a longer period of time, which has been fascinating. And so this, I&#39;ve now watched somebody in real time, like I heard about this project. [36:07]&lt;/p&gt;
&lt;p&gt;I went, oh, neat. Let me set up an AI to play this game. So I got there on like one, I think after it launched. Somebody else who got there on day one fucking ran with it has been, you know, he&#39;s been working professionally on AI agents for a year, he said. He already knew how to do all the harnesses in the orchestration, which I, you know, I had never tried to do either. [36:44]&lt;/p&gt;
&lt;p&gt;So I&#39;m learning this from scratch watching him do it with a year of experience and like, holy shit, it is unbelievable how much code he produced. I think the total amount of code is like, now, I dunno if it was 60,000 or 600,000 anymore, but it&#39;s like a lot of code and it works like not perfectly. There&#39;s a lot of duplication, there&#39;s a lot of errors, there&#39;s a lot of, you know, like this code path looks like it works, but actually you get into the details and it doesn&#39;t quite work. [37:06]&lt;/p&gt;
&lt;p&gt;But like, as we use it, we like, so these AI agents are instructed as part of the game, like, &quot;Not everything works. Please submit bug reports as you find them. Then this guy has his own agents that are reading those bug reports, turning it into reproductions, and then writing tests and fixing them, like largely autonomously. [37:34]&lt;/p&gt;
&lt;p&gt;Not completely autonomously, but largely, which now has me imagining this, like imagine if you set up, you know, you have an idea for a product, you build a prototype. You put it on a server and then you have on the, on that same server, a little sidecar or you know, running in the same environment. I mean maybe not literally on the same server. [37:55]&lt;/p&gt;
&lt;p&gt;An AI agent that is receiving user feedback. Like, you know how like every major enterprise application will say every so often, like, &quot;we value your feedback. How are you using this product?&quot; And then you fill that out and it goes into the void and nothing ever changes. You never hear about it again. You never get asked for a follow up and the bugs that you reported never get fixed. [38:16]&lt;/p&gt;
&lt;p&gt;Like what if that went into an automated system that triaged, reproduced and fixed things in real time autonomously as you submitted reports. Like that now appears to be within the realm of possibility. Like, like not theoretically in the future, but like currently I have seen tech that looks like it might be able to do that, like maybe not fully autonomously right now. [38:38]&lt;/p&gt;
&lt;p&gt;Oh God. Like pretty good. Pretty close. So that&#39;s fascinating. I think that&#39;s really interesting for the idea of like a one person startup, you know, a small team operating at a scale that previously would&#39;ve required 50 to a hundred people. I think that&#39;s interesting, like scratching your own itches and publishing it so that other people can use it, and then soliciting feedback to guide the development now looks really powerful. [39:04]&lt;/p&gt;
&lt;p&gt;So I, that&#39;s when, you know, as we as, as we speculate on the future of development and what software development is going to look like, I think it&#39;s gonna be a lot of wrangling, that kind of stuff. Like, you know, I put up a little, little blog or no, I put, I posted on Blue Sky that after I was experiencing all of this and being like, holy shit, this feedback is incredible. [39:32]&lt;/p&gt;
&lt;p&gt;This feedback mechanism is incredible for guiding AI development. I had the thought of like, man, it feels like now the determining factor for how good software can be is how many people are using it, and how good those people are at articulating what they want out of it. Which is a really interesting place. [39:51]&lt;/p&gt;
&lt;p&gt;And I think that&#39;s all I have to say. [40:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; There&#39;s a little bit of the, you know, you just keep towing it, make it better, make it better, a fixed bug, make it better. [40:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; A lot of that. But you know, it&#39;s like there&#39;s also the aspect of like the more precisely you can articulate what is deficient, what better looks like, the better it works. [40:20]&lt;/p&gt;
&lt;p&gt;It&#39;s remarkable. Like I&#39;ve seen it. It&#39;s so cool. I don&#39;t know, it&#39;s interesting. [40:31]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; There&#39;s sort of like. A few thoughts that I&#39;ve got. There&#39;s anecdotally my whole like coding setup and how much code I can get through as a person who&#39;s been coding less and less and more. Dealing with systems and leading teams over the last few years has just been crazy. [40:35]&lt;/p&gt;
&lt;p&gt;Like my, I looked at my contribution graph on GitHub and I&#39;ve done in the last two months now, done probably half of my commits that I did in the last year in 2025 in two months. And it, it&#39;s just gonna go up and up because it&#39;s been a lot more over the last. A couple weeks. And so producing code is significantly easier, especially to do as sort of someone that&#39;s instructing things at a high level. [40:52]&lt;/p&gt;
&lt;p&gt;I&#39;ve been working on two side projects and both of those are like weekend projects that I would never have gotten anywhere near to completion. But I&#39;m pretty much ready to launch one, like almost to the step of I I, I just need to push it to the app store at this point, which I have never been able to do just because I&#39;ve never had the attention span to finish it off. [41:19]&lt;/p&gt;
&lt;p&gt;So that&#39;s been just something incredible. [41:40]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; If I can interrupt for a second, because same projects executed, ideas initiated exactly the same. Like I did things that I never would have because I would&#39;ve looked at it and gone, oh, I know how much work that&#39;s gonna be, and I don&#39;t know exactly. [41:44]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; It&#39;s same for me. [41:57]&lt;/p&gt;
&lt;p&gt;Yeah. Mm-hmm. [41:57]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I did them at the same time as each other. Like, I&#39;m working on two or three projects in parallel, like while watching a movie with my partner. And, you know, and like I checked in with them to be like, Hey, like I was working, like, did I seem checked out? Or like, was I still present in the room? [41:59]&lt;/p&gt;
&lt;p&gt;And they were like, yeah, no, you were like, you followed the conversation and participated. So I, it&#39;s like I was more productive than I&#39;ve ever been and I got to hang out with my partner and their roommate. Like, what? That&#39;s insane. [42:15]&lt;/p&gt;
&lt;h2 id=&quot;ai-productivity-and-impacts-on-our-attention&quot;&gt;AI productivity and impacts on our attention&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Well, well it&#39;s, it&#39;s only gonna get worse because they released the, the, the, the Claude folks yesterday that released this remote access mode where you can hook into your local, just hooked it up to your phone so you can actually just keep it, keep a track of what&#39;s happening on your phone. So this is only just gonna, every night of watching movies and TV shows is gonna be augmented by some level of productivity on the side, which is both terrifying and very exciting at the same time. [42:27]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yes, it is terrifying. It is, right? It&#39;s like such a productivity boost while also not demanding that much attention. That like, why wouldn&#39;t you just always have, you know, a, the little back corner of your brain thinking about this? [42:52]&lt;/p&gt;
&lt;p&gt;Which like, I don&#39;t know, my brain already works that way. I like, I&#39;ve already poisoned my brain to be addicted to thinking about the problem. You know, like, huh, that&#39;s interesting. I mean, I&#39;ve, [43:06]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I&#39;ve, I&#39;ve, I&#39;ve read a number of articles of people who are dealing with, I don&#39;t remember the actual term. I, I don&#39;t know, to token attention deficit or something like that. [43:15]&lt;/p&gt;
&lt;p&gt;Ba basically it, it&#39;s this constant feeling that, you know, okay, like I could be having multiple agents doing stuff for me at any given moment, and therefore any moment where I don&#39;t have 5 to 10 agents running is a waste of theoretical productivity time. So if I didn&#39;t spin them up before I walked out the door, that was a waste of time that I could have built, or, you know, I have to get back to, you know, double check the results and that quickly becomes its own form of productivity burnout. [43:22]&lt;/p&gt;
&lt;p&gt;Just [43:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; to give like a very concrete example on one of these projects, there&#39;s a sort of TikTok style video feed that I had to implement. I did this for a client on one of our actual projects at work that took somewhere around seven to eight days of me develop. We went back on like the Trello board that we were using and looked at the, the estimates of how long that that whole feature took, and it was about seven to eight days to get it working. [43:54]&lt;/p&gt;
&lt;p&gt;End to end. I was building something very, very similar for this, for the side project, and it took me a couple of hours to get that whole feature working end to end. So like I know more what I&#39;m doing, I&#39;ve done it once, I know where the pitfalls are, but at the same time it just, there there is a significant productivity boost here and it&#39;s, it&#39;s definitely not something that you can, you can ignore anymore. [44:17]&lt;/p&gt;
&lt;h2 id=&quot;wrote-a-spec-pointed-claude-at-an-asana-board-and-went-home&quot;&gt;&lt;a href=&quot;https://x.com/rvivek/status/2026385957596111044&quot;&gt;&quot;wrote a spec, pointed Claude at an Asana board, and went home&quot;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; There&#39;s sort of two interesting things that I&#39;ve seen over the last, you know, few hours. One is this post from a podcast by the guy who made Claude Code or his churn and he talks about how people are going back to Mark&#39;s point about this like productivity attention deficit. Where there&#39;s some anthropic engineers who are like leaving Claude code to look at the board, the project board over the weekend, breaking it up into specs, and just spawning it up into building a bunch of different agents that&#39;ll build tickets for you and do it in parallel and then you come back and review it on Monday, which is gonna be interesting to see how that goes. [44:42]&lt;/p&gt;
&lt;p&gt;But also, you know, there&#39;s an interesting one where Karpathy, who you know, used to be a Tesla sort of director of AI and so on and so forth. Original Open AI team has written this like tweet where he talks about how it&#39;s really over the last two months where things have just like completely accelerated and it feels night and day in terms of agent decoding. [45:24]&lt;/p&gt;
&lt;p&gt;So I think things are moving at a super fast pace. It means we&#39;re all probably feeling a good level of FOMO as a result of it, and it&#39;s faster than any one person can sort of stick to, which is, which is. Again, exciting and terrifying at the same time, is the only way that I can think of describing this. [45:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. In our, you know, mid month DM chat Mark you had said, who&#39;s this? Zach, who&#39;s talking about [46:02]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Abels? Zach Jackson is the creator of Module Federation. He joined the web back team a few years back, he now works at ByteDance slash TikTok. And he is an Uber example of, oh look, I have an army of 100 agents running simultaneously. Someone gifted me $60,000 worth in tokens. I&#39;m going to burn most of it by migrating entire projects to Rust overnight. [46:09]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yep. And like, right, and like the quote you would put here, and it&#39;s not a literal quote, but the energy is, I can run a hundred agents, my only limit is token budget. [46:33]&lt;/p&gt;
&lt;p&gt;And I&#39;m like, I have started to understand that perspective. &#39;cause you know, like. What you were just saying about like this person who, you know, wrote a spec and pointed Claude at Asana board, like, yeah, cool, that&#39;s awesome, that&#39;s great. But like also you don&#39;t need to write the spec yourself because if you are just taking user reports and they are submitting things to an agent that is triaging and then summarizing and then if you break down all these little parts into a system that has its own little feedback loops and review stages before passing it off onto another thing that has its own review stages and you know, iteration, then like, holy shit. [46:42]&lt;/p&gt;
&lt;p&gt;I understand why people are saying the only limit is token budget because each part of this is working. It&#39;s not like theoretical. [47:19]&lt;/p&gt;
&lt;h2 id=&quot;bits-ai-sre--datadog&quot;&gt;&lt;a href=&quot;https://www.datadoghq.com/product/ai/bits-ai-sre/&quot;&gt;Bits AI SRE | Datadog&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; People have already started productizing this. So Datadog has released, it&#39;s gonna link it in the chat, this bits ai, SRE, which is. The detection part, which data Datadog already did, which was, oh, there&#39;s an issue in production. [47:26]&lt;/p&gt;
&lt;p&gt;Okay, crap, we need to fix it. And then they&#39;ve just lopped on agents to resolve these incidents automatically. So auto investigations, if you&#39;re really bold, I think you can just merge it, get it to automatically merge fixes for you across your code base. Like that&#39;s the direction we&#39;re going through. [47:40]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And I&#39;ll even say like. [47:56]&lt;/p&gt;
&lt;p&gt;So, okay, great. Datadog productized this like, I don&#39;t fucking need it because I was dealing with database corruption in a project I run, and literally what I did was, you know, it was like something started breaking and I opened Claude and I said, here&#39;s my Kubernetes cluster, the database, something&#39;s going wrong. [47:59]&lt;/p&gt;
&lt;p&gt;Can you check the logs? And it did correctly identify the database corruption and then repaired it live like, and just fixed it. Then it became a recurring issue and I had to figure out what was going on and man manage a migration because I had left it in a half state that was causing the corruption. [48:17]&lt;/p&gt;
&lt;p&gt;But like, I don&#39;t know how to diagnose database corruption. That&#39;s, yeah. You know, that&#39;s database administrator kind of expertise. And I&#39;m not a database administrator and this isn&#39;t even a specialized tool. This is just Claude Code. So like the future&#39;s here, we&#39;re in it. [48:34]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; For better or for worse. [48:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, that&#39;s fascinating. [48:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; So there&#39;s, there&#39;s this one sort of chart that I saw, which just shows like the adoption of it so far. And obviously we&#39;re very close to it in the software industry because, well, we&#39;re, we&#39;re sort of dogfooding on our own workflows to start with. There&#39;s a debate on whether or not this will translate for other industries that, just taking a step back and looking at the, the wider economics of it all, it seems like, you know, there&#39;s been about a 50% of agents that, so philanthropic releases, they, they were saying that 50% of the agents that they&#39;ve seen deployed so far are in the software industry and then it trails down like crazy after that to, you know, sub 10% for all other industries, which makes sense, right? [48:55]&lt;/p&gt;
&lt;p&gt;The question is how much higher can that go in the software industry and then will all of the other industries catch up? And I guess where I&#39;m going with this is, what does this mean for just the greater economy and the entirety of the workforce. Like if everything is just constrained by that token budget that we were talking about, there&#39;s some really scary stuff coming out for the economy globally. [49:38]&lt;/p&gt;
&lt;p&gt;Going forward. And maybe that&#39;s a bit dooms date with me to say, but I, I am a little concerned about where we&#39;re going. [50:01]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yeah. I mean, if you, if you wanna zoom out for a second, you know, the, the extreme version of that was the AI 2027 sci-fi scenario projection that was put out a year-ish ago, which was put together a fictional version of how we end up with a true terminator level Skynet AI coming out in, you know, two and a half years, the slightly less, but still dooms day-ish version of that. [50:07]&lt;/p&gt;
&lt;p&gt;There was a, a report from Sat Trini research or something that came out just a couple days ago, which was a fictional news report from 2028 talking about how AI usage ended up, ends up tanking the economy in the next couple years and, you know, wiping out white collar jobs. And so I&#39;ve seen a few different variations of that. [50:31]&lt;/p&gt;
&lt;p&gt;And, you know, a lot of these, you know, the questions are, you know, what are the, what are the assumptions going into, um, in the first place? And, you know, okay, fine, it&#39;s a scary sci-fi story, but. You know, there&#39;s, there&#39;s some plausibility to that stuff. [50:50]&lt;/p&gt;
&lt;h2 id=&quot;thoughtworks-opines-on-ai-productivity-impacts&quot;&gt;&lt;a href=&quot;https://simonwillison.net/2026/Feb/14/thoughtworks/&quot;&gt;ThoughtWorks opines on AI productivity impacts&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; So I wanna pull in, we had this quote from thought, the ThoughtWorks offsite. [51:04]&lt;/p&gt;
&lt;p&gt;ThoughtWorks is a very well regarded what agency from like, they&#39;ve existed for decades. They&#39;ve been involved, they&#39;ve been very deeply involved in tech for a very long time in a very meaningful way. [51:09]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; They&#39;re not just a development agency, but they, they&#39;ve document like software engineering processes and patterns for many years. [51:24]&lt;/p&gt;
&lt;p&gt;There&#39;s a guy named Martin Fowler who has, who has done a lot of that work and he, he&#39;s written dozens of articles on, like, we&#39;ve talked with many, many companies and these are like the distilled best practices we see on how to build software across the industry. [51:31]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right? Like Martin Fowler, I would say is one of the reasons that people do blogs now, like a lot of people in tech learned so much from reading Martin Fowler&#39;s blog that I think that was a significant contributing factor to the advice to every person in tech to have a blog. [51:49]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Right. I also associate them with the software craftsmanship movement. I, I think there was another consultancy called Eighth Flight Background, like 2005, 2010. [52:07]&lt;/p&gt;
&lt;p&gt;Well, like Uncle Bob Software craftsmanship, code Katas, like treating software development as a craft rather than a manufacturing exercise. So I, I, I associate them with that kind of pattern. [52:17]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I also had forgotten this, but they authored the Agile Manifesto. So yeah, like, okay. So that&#39;s enough introduction I think for ThoughtWorks, like they have had so much influence on the tech industry generally, and so they just did an offsite discussing the future of tech, future of software engineering. [52:31]&lt;/p&gt;
&lt;p&gt;And I&#39;m gonna read at least this first paragraph, maybe both paragraphs of this quote, the retreat. &quot;The retreat challenged the narrative that AI eliminates the need for junior developers. Juniors are more profitable than they ever have been. AI tools get them past the awkward initial net negative phase faster. [52:52]&lt;/p&gt;
&lt;p&gt;They serve as a call option on future productivity and they are better at AI tools than senior engineers, having never developed the habits and assumptions at slow adoption.&quot; [53:09]&lt;/p&gt;
&lt;p&gt;I&#39;ll say call option is a financial term. Calls versus puts are options to buy or sell. [53:17]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I cannot believe they call junior developers call options. [53:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I know it like, oh, it&#39;s so like do we in the weeds jargoning, but also like, yeah, sure. A call option is when you say it&#39;s you&#39;re buying a futures contractor saying, I think this is going to be worth more of the future, and other people disagree, so I&#39;m gonna buy it now. [53:27]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Bet that it goes up over time. [53:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Exactly. So like, it is actually a very good analogy here, but like, I don&#39;t know, maybe don&#39;t reduce the employment of early career people to a financial instrument. Like it&#39;s not great. People are more complicated. [53:45]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Yeah. [53:58]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; This is such a like, antidote to the doomerism, I think. Like, yeah, they haven&#39;t learned the bad habits. [53:58]&lt;/p&gt;
&lt;p&gt;They aren&#39;t so deep in the weeds as the senior developers are that they&#39;re going to like micromanage and just kinda let it do the thing because it&#39;s act, the tool is actually very smart. So that&#39;s, uh, yeah, like this, [54:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I can see that that&#39;s the direction they&#39;re trying to point this at. At the same, to play, uh, a devil&#39;s advocate to that point, the job market seems to be saying something very different. [54:17]&lt;/p&gt;
&lt;p&gt;So I&#39;ll put a screenshot of this from a study that was released by some Harvard folks. I&#39;ll put that, but I&#39;ll, I&#39;ll link the actual study itself and. This is basically showing sort of like the demand in the job market in the US for senior and junior profiles since the launch of chat GPT. So we&#39;re talking sort of 20, 23 time and someone coined this as sort of like a K based was talking about this as like the K based or K shaped feature of software engineering. [54:27]&lt;/p&gt;
&lt;p&gt;And there is a dip and it is a hard market at the moment for juniors. So I&#39;m interested how this pans out for junior developers. [54:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. I will say though, y&#39;all listening cannot see this chart. It&#39;s got a blue line for seniors and a red line for juniors and it charts the average employment like percentage change. [55:08]&lt;/p&gt;
&lt;p&gt;This is a delta, the chart is of the first derivative of employment, I guess it&#39;s, you know, rate of change. So a higher number is not only more, but it means that it&#39;s accelerating faster. And the blue line, the senior developer line is steady improvement. So it means that it&#39;s actually, it&#39;s not just improving, it&#39;s actually accelerating and how fast it&#39;s improving. [55:21]&lt;/p&gt;
&lt;p&gt;I believe that&#39;s, I believe that&#39;s what this is saying. Whereas the junior line matches it, oh, I guess the X axis here is 2015 to 2025. The lines are pretty well paired from 2015 to 2020, and that&#39;s when they start diverging and like there&#39;s a dip for both. But the dip is bigger for juniors in early 2020 [55:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; up until sort of that 20 22, 20 23 period. [56:04]&lt;/p&gt;
&lt;p&gt;Yes, there&#39;s a dip and then it&#39;s, the junior is still like going up slightly. It&#39;s starting to bounce back, but then now going from 2023 onwards, it is headed in that direction of a downward slope. [56:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; My intuition matches what this ThoughtWorks quote says, that it&#39;s a force multiplier and less experienced people are actually more effective at taking advantage of it. [56:22]&lt;/p&gt;
&lt;p&gt;So that feels to me like one of those unintuitive things that hard to justify at a big company. So, I don&#39;t know. My, my, my optimism is that cool, here&#39;s a highly reputable thought leader, you know, thought leader of thought leaders saying, no, wait, junior developers have the best return on investment they&#39;ve ever had. [56:32]&lt;/p&gt;
&lt;p&gt;That feels like it could turn this around. I don&#39;t know. That&#39;s interesting. [56:55]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I, I actually really recommend that folks download the PDF report that they put together, summarizing all the different discussions they had at this retreat. There&#39;s a lot of very valuable career and industry where we headed material in there. [56:58]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Okay. Oh, I mo I left you in suspense earlier. I said I was gonna use my favorite analogy and here it is. Two years ago I heard an analogy of AI in software compared to the introduction of spreadsheets to the field of accounting where up until the digital spreadsheet, like basically until not Excel, Excel wasn&#39;t the first, but before we had tools like Excel, the role of an accountant was basically a calculator. You know, the classic depiction in old movies of they got the green visor on and they&#39;re sitting there over a, you know, over a calculator just crunching the numbers and like that was the job. [57:13]&lt;/p&gt;
&lt;p&gt;And then you got a spreadsheet and then you put the numbers in the spreadsheet and you do some and it&#39;s done. And so there was a lot of panic about like, oh my God, this is gonna destroy the field. Like this is the work. Then now the work is just done. But like we still have accountants and they do more than ever. [57:51]&lt;/p&gt;
&lt;p&gt;So that&#39;s how I am viewing this. That&#39;s my optimistic take on it, is like, yes, it is going to totally transform it. It is going to obviate a large number of skills that are highly valued right now, and it will look different, but I don&#39;t think that&#39;s necessarily going to mean destruction. [58:07]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I will, I will put together my obligatory plug to say that this heavily emphasizes that having baseline experience with the tools and the concepts and the abstraction so you know, where you&#39;re trying to guide it and how the stuff works will be more valuable than ever. [58:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I&#39;m hoping on that being the case, the only thing that concerns me is the likes of Zach, which was the example that we gave before where he&#39;s like, the token is my only limit. And I wonder like when we, when we went into accountants using spreadsheets, you still needed a person behind the, the sort of system to do it. [58:39]&lt;/p&gt;
&lt;p&gt;But if. These systems sort of largely become self-running, and the only limit is the tokens. Then I worry if I, I hope the analogy holds up my, like, pessimistic doomsday clock makes me worry that it might not hold up. Same thing with the tractors plowing the field analogy that I&#39;ve heard a few times. I hope that this niggling that I&#39;ve got inside of me is just completely doomsday and it&#39;s, it&#39;s not actually accurate. [59:00]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; No, that is fair. I think even if all the technical things goes the same direction, I think that there are environmental things that could very much alter, I don&#39;t know, the experience, the outcome. I actually, the farming one is an interesting thought because, you know, now farming, you know, per unit effort to get to grow a calorie of food, it&#39;s easier than ever, but the tooling required in order to get that benefit is more expensive than ever. [59:28]&lt;/p&gt;
&lt;p&gt;And so what I&#39;ve really, what I&#39;ve heard for years is that. The average, the family farm is no longer feasible because you need nine different tools that each cost three quarters of a million dollars and have expensive, you know, support contracts, because John Deere doesn&#39;t let you fix your own tools anymore. [59:57]&lt;/p&gt;
&lt;p&gt;That&#39;s very real. This is just like, so not a good thought, but hey, maybe we&#39;ll get a good regulatory environment that drives positive outcomes, [01:00:14]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; if that&#39;s what we&#39;re, if that&#39;s what we&#39;re hoping on, I am really worried. [01:00:22]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, that&#39;s a good joke. [01:00:27]&lt;/p&gt;
&lt;h2 id=&quot;-lightning-round-&quot;&gt;⚡ Lightning round ⚡&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Anyway, anyway, let&#39;s do the best Lightning rounds. Let&#39;s not do all of them. I&#39;m not gonna do all the conferences, [01:00:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; okay. In no court order. [01:00:36]&lt;/p&gt;
&lt;h2 id=&quot;wall-street-raider-game-modernization-and-uses-preact&quot;&gt;&lt;a href=&quot;https://www.wallstreetraider.com/story.html&quot;&gt;“Wall Street Raider” game modernization&lt;/a&gt; (and uses Preact)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; That&#39;s a really good blog post or on hn someone, one guy wrote a complicated basic game back in the 1980s called Wall Street Raider, which is supposed to be the deepest, most involved simulation of the market ever, but it was a complicated text mode game and decades later, even, he barely understood how the code worked. [01:00:37]&lt;/p&gt;
&lt;p&gt;Lots of people had tried to modernize it, it all failed. And then one. Kid offered to do it and ended up building a better ui, much like a dwarf, fortress, fortress kind of a thing on top. Uh, and apparently it&#39;s even built with pre-ACT. So just the story alone is worth reading whether or not you even get around to playing the game. [01:00:56]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yep. Love that. [01:01:15]&lt;/p&gt;
&lt;h2 id=&quot;github-stacked-diffs-preview--faster-issues-search&quot;&gt;&lt;a href=&quot;https://x.com/jaredpalmer/status/2019817235163074881&quot;&gt;Github Stacked Diffs preview&lt;/a&gt; , &lt;a href=&quot;https://github.blog/changelog/2026-01-29-improved-search-for-github-issues-in-public-preview/&quot;&gt;faster Issues search&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; We talked about it a couple of times, Jared Palmer of Formic and Yup. I think. Yup. And a couple of other, you know, he&#39;s very influential in the React ecosystem has been, is now a PM at GitHub and he&#39;s working on Stack Diffs. Which are something I&#39;ve been craving in GitHub for 10 years, literally. He&#39;s been teteasingittle bits of it here and there, but he, so he, he put out, he posted on Twitter that fact diffs on GitHub will start roll, rolling out to early design partners in Alpha next month. So within the next two weeks or so, some people may have access to stat fits, which is just such good news. [01:01:16]&lt;/p&gt;
&lt;p&gt;I love that so much as well as there&#39;s improved search for GitHub issues and public preview. So that&#39;s, that&#39;s pretty cool. [01:01:58]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Which, which I&#39;ve seen. It&#39;s, it&#39;s much, much snappier [01:02:05]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Good. [01:02:07]&lt;/p&gt;
&lt;h2 id=&quot;josh-comeau-sprite-animations&quot;&gt;&lt;a href=&quot;https://www.joshwcomeau.com/animation/sprites/&quot;&gt;Josh Comeau: Sprite animations&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Everything that Josh Comeau posts is worth taking a look at because he&#39;s put so, so much care and attention into his blog posts and explanations and he did a post on Sprite animations and especially how you can do them on the web. [01:02:08]&lt;/p&gt;
&lt;p&gt;Josh is wonderful. His posts are lovely. You should read it. [01:02:21]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yes. Cosign. [01:02:24]&lt;/p&gt;
&lt;h2 id=&quot;interop-2026-webkit-igalia&quot;&gt;&lt;a href=&quot;https://wpt.fyi/interop-2026&quot;&gt;Interop 2026&lt;/a&gt;, (&lt;a href=&quot;https://webkit.org/blog/17818/announcing-interop-2026/&quot;&gt;WebKit&lt;/a&gt;, &lt;a href=&quot;https://www.igalia.com/news/interop-2026.html&quot;&gt;Igalia&lt;/a&gt;)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; So Interop 2026, which is a cross browser initiative to make the web standard more consistently implemented across browsers, has announced their like 2023 roadmap. So the, uh, active focus areas are container style queries, CSS anchor positioning, the, uh, adder, attr() CSS function, contrast color, shape, zoom, custom highlights, dialogues, and popovers index db, which if we have a meaningful client side database, that would be great. [01:02:26]&lt;/p&gt;
&lt;p&gt;We have that, we&#39;ve needed that for so long, and it&#39;s just hard to get specified. So love that Interop on a client side database. Woo. Yes, let&#39;s do it. [01:03:00]&lt;/p&gt;
&lt;p&gt;A bunch of other things that&#39;s, you know, it&#39;s a, it&#39;s a very long list. This is a site they use to track the compatibility across Chrome, edge, Firefox, and Safari. [01:03:09]&lt;/p&gt;
&lt;p&gt;It&#39;s pretty good. This is deep in the weeds, but this is like the cutting edge of browser development, so very cool. Excited to see what they, what it looks like next by the end of the year. Okay. Sounds like that&#39;s all we got now. [01:03:21]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Plenty over time and covered plenty of items. [01:03:33]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yes. [01:03:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Y&#39;all got your money&#39;s worth this month. [01:03:36]&lt;/p&gt;
&lt;h2 id=&quot;conferences-react-javascript&quot;&gt;Conferences (&lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://confs.tech/javascript&quot;&gt;Javascript&lt;/a&gt;)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I&#39;m gonna put conferences in the transcript if you wanna see what&#39;s coming up. Just do look for that in a couple days. Thank you so much for joining us, everyone, as we go over time rambling about AI ranting and rambling about AI and how cool and terrifying it is. We will be back on the last Wednesday of next month here in the live stage of Reactiflux, or back in your podcast feed just as soon as we can. [01:03:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Kristen, do just a, a random offshoot episode talking about how we personally do and do not use AI in our, in our own workflows. [01:03:58]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Agreed. That&#39;s interesting. Maybe that&#39;d be a good check-in thing to do. I dunno. Maybe we, shit we should make, we should do more community events. I, you know, introduce myself as that every month. [01:04:05]&lt;/p&gt;
&lt;p&gt;Cool. We gather sources mostly from our own tech reads and news channel nowadays, so if you see anything that you think might interesting to discuss, definitely let us know in there. Or you can also email it to us at &lt;a href=&quot;mailto:hello@reactiflux.com&quot;&gt;hello@reactiflux.com&lt;/a&gt;. Yeah, I&#39;ll read it if you send it there. This is a show that you get value from and wanna support. [01:04:14]&lt;/p&gt;
&lt;p&gt;Best way to do so is by submitting a review wherever you listen. I have seen a couple of new ones roll in the last couple of months, and I am pleased to report that our Spotify rating is still five stars. So that&#39;s fun. Thank you. Thank you for the positive reviews. I&#39;m glad you all appreciate it. [01:04:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I can throw a really quick, cheap corporate plug replay. [01:04:50]&lt;/p&gt;
&lt;p&gt;My employer is refocusing on the time travel debugging use case, except that we have just built an MCP that Exposes a lot of our really powerful time travel analysis awesomeness to your AI agent of choice. And even in just my own dog foodie, and I&#39;ve seen. You know, Claude, whatever, be able to start investigating the contents of recording and see what&#39;s going on and fix bugs that it might not have been able to fix otherwise. [01:04:53]&lt;/p&gt;
&lt;p&gt;And I&#39;m also working on some proof of concept performance analysis stuff, digging deep into the internals of React. We would love to have folks try it out if you have questions. We&#39;ve got some examples in our docs of adding the MCP and I&#39;m also very happy to talk about how awesome it is. [01:05:18]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Hell yeah. Dope. [01:05:33]&lt;/p&gt;
&lt;p&gt;See you next month everyone. [01:05:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; See y&#39;all soon. Bye. [01:05:36]&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2026-02</link><guid isPermaLink="false">reactiflux-tmir-2026-02</guid><pubDate>Tue, 24 Feb 2026 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>TMiR 2026-01: Oops more CVEs. AI has React &quot;skills&quot;, Astro exits and Tailwind struggles</title><description>&lt;iframe width=&quot;100%&quot; height=&quot;180&quot; frameborder=&quot;no&quot; scrolling=&quot;no&quot; seamless=&quot;&quot; src=&quot;https://share.transistor.fm/e/14c53957&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#new-releases&quot;&gt;00:58&lt;/a&gt;]&lt;/code&gt; New releases
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#next-161-turbopack-updates-bundle-analyzer&quot;&gt;00:59&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://nextjs.org/blog/next-16-1&quot;&gt;Next 16.1&lt;/a&gt; (Turbopack updates, bundle analyzer)
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#turbopack-incremental-computation&quot;&gt;01:15&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://nextjs.org/blog/turbopack-incremental-computation&quot;&gt;Turbopack incremental computation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#react-navigation-80-alpha&quot;&gt;01:38&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactnavigation.org/blog/2025/12/19/react-navigation-8.0-alpha/&quot;&gt;React Navigation 8.0 alpha&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#rn-windows-081-with-new-arch-support&quot;&gt;02:03&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://devblogs.microsoft.com/react-native/%F0%9F%9A%80react-native-windows-v0-81-is-here/&quot;&gt;RN Windows 0.81 with New Arch support&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#state-of-react-native-macos-saad-najmi-jay-meistrich&quot;&gt;02:55&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=XE7yKGDsy9g&quot;&gt;State of React Native macOS&lt;/a&gt; Saad Najmi &amp;amp; Jay Meistrich&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#mark-josh-goldbergs-new-flint-linter&quot;&gt;03:15&lt;/a&gt;]&lt;/code&gt; Mark: Josh Goldberg’s &lt;a href=&quot;https://www.flint.fyi/blog/introducing-flint&quot;&gt;new Flint linter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#immer-111-array-methods-override&quot;&gt;05:15&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/immerjs/immer/releases/tag/v11.1.0&quot;&gt;Immer 11.1&lt;/a&gt; (array methods override)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#rolldown-10-rc&quot;&gt;06:37&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://voidzero.dev/posts/announcing-rolldown-rc&quot;&gt;Rolldown 1.0 RC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#yarn-6-preview&quot;&gt;06:54&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://yarn6.netlify.app/blog/2026-01-28-yarn-6-preview/&quot;&gt;Yarn 6 Preview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#vite-plus&quot;&gt;07:42&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://viteplus.dev/&quot;&gt;Vite Plus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#new-css-grid-lanes-masonry-feature-spec-nailed-down&quot;&gt;08:59&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://webkit.org/blog/17660/introducing-css-grid-lanes/&quot;&gt;New “CSS Grid Lanes” (“masonry”) feature spec nailed down&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#temporal-api-finally-hitting-stability-and-how-it-replaces-dates-&quot;&gt;10:39&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://developer.chrome.com/blog/new-in-chrome-144#temporal&quot;&gt;Temporal API finally hitting stability&lt;/a&gt; (&lt;a href=&quot;https://piccalil.li/blog/date-is-out-and-temporal-is-in/&quot;&gt;and how it replaces Dates&lt;/a&gt; )&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#main-content&quot;&gt;12:29&lt;/a&gt;]&lt;/code&gt; Main Content
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#react-core&quot;&gt;12:34&lt;/a&gt;]&lt;/code&gt; React Core
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#additional-updates-cves-for-dos-as-of-jan-26-update-to-1905-1915-and-1924&quot;&gt;12:37&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react.dev/blog/2025/12/11/denial-of-service-and-source-code-exposure-in-react-server-components&quot;&gt;Additional updates / CVEs for DoS&lt;/a&gt; as of Jan 26 . Update to 19.0.5, 19.1.5, and 19.2.4&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#nextjs-dos-cves-for-image-optimizer-and-partial-pre-rendering&quot;&gt;13:40&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://vercel.com/changelog/summaries-of-cve-2025-59471-and-cve-2025-59472&quot;&gt;Next.js DoS CVes&lt;/a&gt; for Image Optimizer and Partial Pre-Rendering&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#react-docs-updates-for-useoptimistic-and-useeffectevent&quot;&gt;13:50&lt;/a&gt;]&lt;/code&gt; React docs updates for &lt;a href=&quot;https://github.com/reactjs/react.dev/pull/8264&quot;&gt;useOptimistic&lt;/a&gt; and &lt;a href=&quot;https://github.com/reactjs/react.dev/pull/8279&quot;&gt;useEffectEvent&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#and-this-post-on-useoptimistic-issues&quot;&gt;14:11&lt;/a&gt;]&lt;/code&gt; And this post on &lt;a href=&quot;https://www.columkelly.com/blog/use-optimistic&quot;&gt;useOptimistic issues&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#sparked-by-dan-raising-concerns-about-the-docs-quality&quot;&gt;14:32&lt;/a&gt;]&lt;/code&gt; Sparked by &lt;a href=&quot;https://bsky.app/profile/danabra.mov/post/3mciooa25gc2v%20&quot;&gt;Dan raising concerns&lt;/a&gt; about the docs quality&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#ai-meets-rn-panel-discussion&quot;&gt;16:57&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=QX1a6I08o-A&quot;&gt;AI meets RN Panel Discussion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#work-on-the-gesture-api-and-view-transitions-and-fragment-refs-canary-only&quot;&gt;17:17&lt;/a&gt;]&lt;/code&gt; Work on the &lt;a href=&quot;https://github.com/facebook/react/pull/35564&quot;&gt;Gesture API and View Transitions&lt;/a&gt;, and &lt;a href=&quot;https://github.com/facebook/react/pull/35630&quot;&gt;Fragment Refs&lt;/a&gt; (canary only)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#viewtransition-underlying-tech-is-now-supported-in-all-major-browsers-as-of-firefox-147-react-features-is-still-in-canary&quot;&gt;18:29&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/ViewTransition/types&quot;&gt;&amp;lt;ViewTransition&amp;gt; underlying tech&lt;/a&gt; is now supported in all major browsers as of Firefox 147. React features is still in Canary.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#jordan-pred-the-actual-usestore-concurrent-store-impl-for-react&quot;&gt;19:22&lt;/a&gt;]&lt;/code&gt; Jordan PRed &lt;a href=&quot;https://github.com/facebook/react/pull/35449&quot;&gt;the actual &lt;code&gt;useStore&lt;/code&gt; concurrent store impl for React&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#types-changes-to-improve-form-events&quot;&gt;20:54&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/DefinitelyTyped/DefinitelyTyped/pull/74383&quot;&gt;Types changes to improve form events&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#other-security-issues&quot;&gt;21:34&lt;/a&gt;]&lt;/code&gt; Other security issues
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#react-router-cves-meta-xss-file-access-external-redirects-csrf&quot;&gt;21:39&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/reactrouter.com/post/3mbwtrea3r224&quot;&gt;React Router CVEs&lt;/a&gt;: meta XSS, file access, external redirects, CSRF&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#node-security-releases&quot;&gt;23:17&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://nodejs.org/en/blog/vulnerability/december-2025-security-releases&quot;&gt;Node security releases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#lodash-security-releases&quot;&gt;24:38&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://openjsf.org/blog/lodash-security-overhaul&quot;&gt;Lodash security releases&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#funded-by-a-european-effort-to-fund-projects-for-sovereign-resiliency&quot;&gt;24:46&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.sovereign.tech/programs/fund&quot;&gt;Funded by a european effort&lt;/a&gt; to fund projects for sovereign resiliency&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#githubs-announced-plans-on-security-improvements&quot;&gt;25:35&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.blog/security/supply-chain-security/strengthening-supply-chain-security-preparing-for-the-next-malware-campaign/&quot;&gt;Github’s announced plans on security improvements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#summary-of-npms-publishing-changes-and-requests-for-improvements&quot;&gt;27:48&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://socket.dev/blog/npm-to-implement-staged-publishing&quot;&gt;Summary of NPM’s publishing changes&lt;/a&gt;, and requests for improvements&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#claude-skills-in-the-react-world&quot;&gt;28:28&lt;/a&gt;]&lt;/code&gt; Claude Skills in the React world
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#announcement-by-anthropic&quot;&gt;28:49&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://claude.com/blog/equipping-agents-for-the-real-world-with-agent-skills&quot;&gt;Announcement by Anthropic&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#open-sourced&quot;&gt;29:16&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://agentskills.io/home&quot;&gt;Open sourced&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#vercel-react-best-practices&quot;&gt;29:53&lt;/a&gt;]&lt;/code&gt; Vercel: &lt;a href=&quot;https://vercel.com/blog/introducing-react-best-practices&quot;&gt;React Best Practices&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#expo-claude-code-pluginskill&quot;&gt;30:47&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/Baconbrix/status/2011862532320084329&quot;&gt;Expo Claude Code Plugin/Skill&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#agents-worked-better-than-skills&quot;&gt;32:23&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://vercel.com/blog/agents-md-outperforms-skills-in-our-agent-evals&quot;&gt;“AGENTS worked better than skills”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#moltbook-aka-openclaw&quot;&gt;40:42&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.moltbook.com/&quot;&gt;Moltbook&lt;/a&gt;, aka &lt;a href=&quot;https://openclaw.ai/&quot;&gt;OpenClaw&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#remotion-ai-skill&quot;&gt;43:09&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/Remotion/status/2013626968386765291&quot;&gt;Remotion AI Skill&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#rsc-roundup&quot;&gt;43:49&lt;/a&gt;]&lt;/code&gt; RSC roundup
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#data-fetching-patterns-in-rscs&quot;&gt;43:52&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://gauravthakur.com/blog/data-fetching-patterns-react-server-components&quot;&gt;Data Fetching Patterns in RSCs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#nadias-can-you-fetch-data-with-server-actions&quot;&gt;44:14&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.developerway.com/posts/server-actions-for-data-fetching&quot;&gt;Nadia’s Can You Fetch Data with Server Actions?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#infiniterenders-takes-on-partial-pre-rendering-and-app-router-complexity&quot;&gt;44:31&lt;/a&gt;]&lt;/code&gt; “Infiniterenders” takes on &lt;a href=&quot;https://x.com/infinterenders/status/2007670332362989569&quot;&gt;Partial Pre-Rendering&lt;/a&gt; and &lt;a href=&quot;https://x.com/infinterenders/status/2007670332362989569&quot;&gt;App Router complexity&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#rebuilding-github-prs-with-rscs-same-author-who-did-issues-previously&quot;&gt;45:03&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://wtbb.vercel.app/i-love-dogs&quot;&gt;Rebuilding Github PRs with RSCs&lt;/a&gt; (same author who did Issues previously)&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#ecosystem-economics&quot;&gt;46:01&lt;/a&gt;]&lt;/code&gt; Ecosystem economics
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#astro-acquired-by-cloudflare&quot;&gt;46:07&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://astro.build/blog/joining-cloudflare/&quot;&gt;Astro acquired by CloudFlare&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#tailwind-revenue-down-80-in-the-ai-era-laid-off-3-of-4-devs-working-there&quot;&gt;47:32&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/tailwindlabs/tailwindcss.com/pull/2388#issuecomment-3717222957&quot;&gt;Tailwind revenue down 80% in the AI era, laid off 3 of 4 devs working there&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#voidzero-and-vite&quot;&gt;50:15&lt;/a&gt;]&lt;/code&gt; VoidZero and Vite+?&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#246k-laid-off-in-2025-per-trueupio-27k-in-january&quot;&gt;52:22&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;http://trueup.io/&quot;&gt;246K laid off in 2025 per Trueup.io&lt;/a&gt;, 27k in January&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#-lightning-round-&quot;&gt;52:56&lt;/a&gt;]&lt;/code&gt; ⚡ Lightning round ⚡
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#corbin-adapting-library-logic-for-react-compiler&quot;&gt;52:57&lt;/a&gt;]&lt;/code&gt; Corbin: &lt;a href=&quot;https://playfulprogramming.com/posts/react-compiler-library-support/&quot;&gt;Adapting Library Logic for React Compiler&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#lea-verou-web-dependencies-are-broken&quot;&gt;53:11&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://lea.verou.me/blog/2026/web-deps/&quot;&gt;Lea Verou: Web Dependencies are Broken&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#aws-infrastructure-as-react-components&quot;&gt;53:47&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.react2aws.xyz/&quot;&gt;AWS Infrastructure as React Components&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#callstack-releasing-bunch-of-cool-projects&quot;&gt;54:38&lt;/a&gt;]&lt;/code&gt; Callstack releasing bunch of cool projects&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#brownie-rn-brownfield-apps&quot;&gt;54:48&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.callstack.com/blog/introducing-brownie-type-safe-shared-state-for-react-native-brownfield-apps&quot;&gt;Brownie: RN Brownfield apps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#voltra-rn-live-activities-and-widgets&quot;&gt;55:17&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.callstack.com/blog/live-activities-and-widgets-with-react-say-hello-to-voltra&quot;&gt;Voltra: RN Live Activities and Widgets&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#ryan-carniatos-annual-js-frameworks-direction-roundup-and-netlifys-2025-web-frameworks-in-review&quot;&gt;56:12&lt;/a&gt;]&lt;/code&gt; Ryan Carniato’s &lt;a href=&quot;https://dev.to/this-is-learning/javascript-frameworks-heading-into-2026-2hel&quot;&gt;annual JS Frameworks direction roundup&lt;/a&gt; , and Netlify’s &lt;a href=&quot;https://www.netlify.com/blog/web-frameworks-2025-year-in-review/&quot;&gt;2025 Web Frameworks In Review&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#alex-russell-shallow-session-spas-analytics&quot;&gt;56:36&lt;/a&gt;]&lt;/code&gt; Alex Russell: &lt;a href=&quot;https://calendar.perfplanet.com/2025/the-curious-case-of-the-shallow-session-spas/&quot;&gt;Shallow Session SPAs analytics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#devon-govett-how-to-compile-js-to-c-with-static-hermes&quot;&gt;57:23&lt;/a&gt;]&lt;/code&gt; Devon Govett: &lt;a href=&quot;https://devongovett.me/blog/static-hermes.html&quot;&gt;How to compile JS to C with Static Hermes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#joyee-cheung-requireesm-implementers-tales-and-requireesm-from-experiment-to-stability&quot;&gt;58:16&lt;/a&gt;]&lt;/code&gt; Joyee Cheung: &lt;a href=&quot;https://joyeecheung.github.io/blog/2025/12/30/require-esm-in-node-js-implementers-tales/&quot;&gt;require(esm) implementer’s tales&lt;/a&gt; and &lt;a href=&quot;https://joyeecheung.github.io/blog/2025/12/30/require-esm-in-node-js-from-experiment-to-stability/&quot;&gt;require(esm) from experiment to stability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#fixing-the-url-params-performance-penalty&quot;&gt;58:53&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://calendar.perfplanet.com/2025/fixing-the-url-params-performance-penalty/&quot;&gt;Fixing the URL Params Performance Penalty&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#react-transitions-for-low-priority-text-editor-updates&quot;&gt;01:00:26&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://handlewithcare.dev/blog/transition_low_priority_editor_updates/&quot;&gt;React Transitions for Low Priority Text Editor Updates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#how-to-steal-a-react-component-fiber-internals&quot;&gt;01:00:46&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://fant.io/react/&quot;&gt;How to Steal a React Component&lt;/a&gt; (Fiber internals)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#better-ascii-rendering-with-smart-character-selection-for-pixels&quot;&gt;01:01:20&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://alexharri.com/blog/ascii-rendering&quot;&gt;Better ASCII rendering with smart character selection for “pixels”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#building-a-js-runtime-in-one-month&quot;&gt;01:02:32&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://themackabu.dev/blog/js-in-one-month&quot;&gt;Building a JS Runtime in One Month&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#conferences-react-javascript&quot;&gt;01:03:33&lt;/a&gt;]&lt;/code&gt; Conferences (&lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://confs.tech/javascript&quot;&gt;Javascript&lt;/a&gt;)
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://india.cityjsconf.org/&quot;&gt;CityJS New Delhi&lt;/a&gt;, 18-19 Feb, New Delhi, India&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://2026.stateofthebrowser.com/&quot;&gt;State of the Browser&lt;/a&gt; Feb 28, London, UK&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://appdevcon.nl/&quot;&gt;AppDevCon&lt;/a&gt; Mar 10-13, Amsterdam Netherlands&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.programmable.tech/&quot;&gt;Programmable&lt;/a&gt; Mar 17 / Mar 19, Melbourn / Sydney, Australia&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;a href=&quot;https://frontrunners.tech/&quot;&gt;Frontrunners&lt;/a&gt; Mar 27, Washington DC, USA
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;CFPs: &lt;a href=&quot;https://docs.google.com/forms/d/e/1FAIpQLScK3YlL_-2teVyX7pohkjIbsyLSF-8Hq4z-U7CPQ186sgdNPA/viewform&quot;&gt;web talks&lt;/a&gt; or &lt;a href=&quot;https://docs.google.com/forms/d/e/1FAIpQLSedNNa4N64vgfsvAtGcBngKJrtd3h1_x0T019GTW-rSwCj0jQ/viewform&quot;&gt;AI/data&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://t3chfest.es/2026/en/&quot;&gt;T3chfest&lt;/a&gt; Mar 12-13, Madrid, Spain&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://react.paris/&quot;&gt;React Paris&lt;/a&gt; Mar 26-27 Paris, France&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.google.com/forms/d/e/1FAIpQLSfLICWs7vpK5fuMkZyJk4GyDtZBs08NMKJ0eIOOZBUxo98beQ/viewform&quot;&gt;CFP (closed)&lt;/a&gt;, &lt;a href=&quot;https://docs.google.com/forms/d/e/1FAIpQLSd0pjOsMo0z3fvhv9EhgvUBWA4CdIcsivOCQi8wBmiNc_yXPQ/viewform&quot;&gt;Also a community survey&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://reactnativeconnection.io/&quot;&gt;React Native Connection&lt;/a&gt; Mar 30-31, Paris, France&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://london.cityjsconf.org/&quot;&gt;CityJS London&lt;/a&gt;, Apr 15-17, London, UK&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.jsday.it/&quot;&gt;jsday&lt;/a&gt; Apr 9-10, Bologna, Italy&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://smashingconf.com/amsterdam-2026&quot;&gt;SmashingConf Amsterdam&lt;/a&gt; Apr 13-16, Amsterdam, Netherlands&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.reactmiami.com/&quot;&gt;React Miami&lt;/a&gt; Apr 22-25&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2026-01#outro&quot;&gt;01:04:56&lt;/a&gt;]&lt;/code&gt; Outro&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Hello everyone. Thank you for joining us for the first this month in React of 2026 January edition. As we recap what&#39;s going on in React, react Native and across the web, we&#39;re coming to you live from Reactiflux, the place for professional developers using React. [00:00:00]&lt;/p&gt;
&lt;p&gt;And yeah, I&#39;m Carl. I&#39;m a staff product developer and freelance community leader here in Reactiflux where I do programs like these events uh, and a couple of other things. [00:00:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Hi, I&#39;m Mark. My day job is working at Replay. My second unpaid job is working on Redux and I&#39;m not wearing glasses. [00:00:25]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Congrats on LASIK! [00:00:33]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; And I&#39;m Mo I&#39;m the head of Mobile at Thero. I&#39;m an active part of the React Native community, and I organize the React Native London Meetup and Conference. [00:00:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; and like 10 minutes fresh off, traveling back home. Right? [00:00:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; yeah. Just got home. Just got home. I&#39;m still still wearing my coat. [00:00:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Make yourself comfortable. [00:00:52]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; We&#39;re gonna be here. [00:00:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool. Okay. Uh, Let&#39;s get straight into some new releases. [00:00:55]&lt;/p&gt;
&lt;h2 id=&quot;new-releases&quot;&gt;New releases&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, Mark, take us through those. [00:00:58]&lt;/p&gt;
&lt;h2 id=&quot;next-161-turbopack-updates-bundle-analyzer&quot;&gt;&lt;a href=&quot;https://nextjs.org/blog/next-16-1&quot;&gt;Next 16.1&lt;/a&gt; (Turbopack updates, bundle analyzer)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Okay. Item one we have next. 16.1 just came out not a lot. Huge. There, there&#39;s some improvements to Turbo pack. They have a new bundle analyzer feature built in. I&#39;m always in favor of, you know, actually understanding what&#39;s going into your system. [00:00:59]&lt;/p&gt;
&lt;h2 id=&quot;turbopack-incremental-computation&quot;&gt;&lt;a href=&quot;https://nextjs.org/blog/turbopack-incremental-computation&quot;&gt;Turbopack incremental computation&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Looks like some of the Turbo Pack file caching stuff ought to make the dev mode a little bit faster. [00:01:15]&lt;/p&gt;
&lt;p&gt;Hopefully I don&#39;t think we put the link in here, but the next folks did put out an article sometime in the last couple weeks talking about a lot of the internal memo work they do in Turbo Pack. That is, you know, the core of how it&#39;s supposed to make builds faster. So that&#39;s probably worth looking at as well. [00:01:21]&lt;/p&gt;
&lt;h2 id=&quot;react-navigation-80-alpha&quot;&gt;&lt;a href=&quot;https://reactnavigation.org/blog/2025/12/19/react-navigation-8.0-alpha/&quot;&gt;React Navigation 8.0 alpha&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; React navigation version 8.0 is an alpha now. So we&#39;ve seen a little bit of this stuff come around, but things like native bottom tabs being sort of the default, which a lot of the other libraries in the ecosystem are moving towards and expert route has been pushing for a while, which uses react navigation under the hood. [00:01:38]&lt;/p&gt;
&lt;p&gt;Some better TypeScript configs and just some general improvements. With the major changes, those native bottom tabs, which won&#39;t make the apps feel just that much more native. [00:01:55]&lt;/p&gt;
&lt;h2 id=&quot;rn-windows-081-with-new-arch-support&quot;&gt;&lt;a href=&quot;https://devblogs.microsoft.com/react-native/%F0%9F%9A%80react-native-windows-v0-81-is-here/&quot;&gt;RN Windows 0.81 with New Arch support&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; And then the next one is React Native Windows, version 0.81. Is out. And the same is actually the case with React Native Mac Os because they&#39;re both maintained by Microsoft. [00:02:03]&lt;/p&gt;
&lt;p&gt;big thing here is that the sort of new architecture or the fabric architecture is now enabled by default. So the Windows and Mac os the desktop equivalents of Rack Native are a little bit behind because of some legacy that&#39;s in the code base and some stuff that needs to be refactored in a little bit of tech debt. [00:02:14]&lt;/p&gt;
&lt;p&gt;But they&#39;re definitely catching up. So, they&#39;re getting close to fully adopting the new architecture, which is exciting. [00:02:32]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I would love to know what the adoption numbers are for either the, the macro windows ports outside of Microsoft. Early outta curiosity, [00:02:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; It&#39;s not as well publicized or showcased, but I have a great talk, which I&#39;m gonna use this opportunity to plug by one of the maintainers. [00:02:46]&lt;/p&gt;
&lt;h2 id=&quot;state-of-react-native-macos-saad-najmi--jay-meistrich&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=XE7yKGDsy9g&quot;&gt;State of React Native macOS&lt;/a&gt; Saad Najmi &amp;amp; Jay Meistrich&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; so this was at the conference that we hosted at Arn Lko and one of the maintainers, one of the maintainers of React Native macOS did a joint talk with Jay Meistrich, who maintains Legend List. And they talked about react Native macOS in the state of React Native Macs. It&#39;s a very cool talk to get an idea of what&#39;s in store. So, [00:02:55]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; great. Love that. [00:03:13]&lt;/p&gt;
&lt;h2 id=&quot;mark-josh-goldbergs-new-flint-linter&quot;&gt;Mark: Josh Goldberg’s &lt;a href=&quot;https://www.flint.fyi/blog/introducing-flint&quot;&gt;new Flint linter&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; All right. Next item. Josh Goldberg is a wonderful one. Wonderful human being if you ever had a chance to talk to him. He&#39;s also a major proficient linting tool maintainer. He&#39;s been the primary maintainer of TSES lint. He&#39;s worked on a number of other linting projects. He&#39;s had a lot of interactions with the ES lint maintainers and the TypeScript maintainers. [00:03:15]&lt;/p&gt;
&lt;p&gt;And as a result, he has formed very many strong opinions about how winters should work and what&#39;s wrong with current winters. And, you know, like most people, he&#39;s, you know, griped about things he doesn&#39;t like for a while. And this has finally result in Josh building his own winter. So he&#39;s calling it Flint. [00:03:39]&lt;/p&gt;
&lt;p&gt;he&#39;d written several previous blog posts talking about. You know, what would a better winter look like? And that was the, you know, the hidden background on I am actually building my own winter. So if you look at the Flint announcement it goes through some of the points that he&#39;s trying to make. [00:03:58]&lt;/p&gt;
&lt;p&gt;Things like it&#39;s, there&#39;s a hybrid architecture where it can use native built linting tools, but most of the coordination is still being done in TypeScript. It, it would still have TypeScript based plugins. Most of the rules would be in the core, much more consistent naming and error messages and configuration. [00:04:17]&lt;/p&gt;
&lt;p&gt;So. I don&#39;t know the full status of it. I know he&#39;s been working on it and that, like an early proof of concept exists. I don&#39;t think it&#39;s anywhere near a usable state at all. But Josh knows linting and he&#39;s very good at this stuff. So, we&#39;ve got oxalate and es lint and excellent and bio at this point. [00:04:35]&lt;/p&gt;
&lt;p&gt;You know, maybe we don&#39;t need another, but I love that Josh has the enthusiasm to try to put his ideas into practice here. [00:04:56]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, if you&#39;re gonna complain about something, putting your money where your mouth is on investing the energy to try and execute on those gripes is something that I would love to see everybody try and do. [00:05:03]&lt;/p&gt;
&lt;h2 id=&quot;immer-111-array-methods-override&quot;&gt;&lt;a href=&quot;https://github.com/immerjs/immer/releases/tag/v11.1.0&quot;&gt;Immer 11.1&lt;/a&gt; (array methods override)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; A personal item and one that I&#39;ve been, you know, waiting to see come together for a while. So those of you who have been paying attention to the podcast over the last few months have heard me talk about the performance optimization work I did on Emer in September and October. [00:05:15]&lt;/p&gt;
&lt;p&gt;And so that had ended up with three different prs that I&#39;d filed. A small set of tweaks that it went out as Imer 10.2 a major internal rewrite that went out as Imer 11.0. And then the other piece I&#39;d put up is a new optional plugin that overrides ier array methods so that instead of accidentally proxying every field you access as you loop over an array, it just defers to the underlying array and skips most of the overhead in that, a couple K to the bundle size if you actually import and turn on the plugin. But it does make pretty much any array access noticeably faster. And you know, the goal of this was to make ER faster. So I did that. So that came out as ER 11.1 and that is all the performance changes I had except for one other spot where I was investigating the possibility of trying to improve the object spread handling in some way. [00:05:30]&lt;/p&gt;
&lt;p&gt;I may try to get back to look at that at some point, but this is all I&#39;d put up. So very happy to see all that&#39;s come out. [00:06:31]&lt;/p&gt;
&lt;h2 id=&quot;rolldown-10-rc&quot;&gt;&lt;a href=&quot;https://voidzero.dev/posts/announcing-rolldown-rc&quot;&gt;Rolldown 1.0 RC&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Couple other items. [00:06:37]&lt;/p&gt;
&lt;p&gt;Back to the theme of tools being built in rust. Rolldown has hit 1.0 rc I believe this is already available for use in the latest V eight betas. I don&#39;t have a release timeline on that, but it looks like that one&#39;s coming together pretty well. [00:06:38]&lt;/p&gt;
&lt;h2 id=&quot;yarn-6-preview&quot;&gt;&lt;a href=&quot;https://yarn6.netlify.app/blog/2026-01-28-yarn-6-preview/&quot;&gt;Yarn 6 Preview&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And then yarn has announced yarn version six, which yes, is a rewrite it and rust announcement. I don&#39;t think I missed a yarn five. I would&#39;ve to go back and reread the post to see if they actually mention it, but I&#39;m pretty sure the current version is still four x. So it&#39;s a rewrite and rest rewrite. The goal is to make it faster. I think the blog post has some benchmarks that compare it to PNPM in a few different modes but happening there. [00:06:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, that&#39;s interesting. I just pulled up the Yarn docs and can confirm. The most recent version is listed as 4.1, so it&#39;s curious that they&#39;re announcing version six. [00:07:26]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Maybe it&#39;s the winamp approach somehow. [00:07:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; taking inspiration from ECMAScript, you know, skip version four. [00:07:38]&lt;/p&gt;
&lt;p&gt;Strange. [00:07:41]&lt;/p&gt;
&lt;h2 id=&quot;httpsviteplusdevvite-plus&quot;&gt;[&lt;a href=&quot;https://viteplus.dev/%5D(Vite&quot;&gt;https://viteplus.dev/](Vite&lt;/a&gt; Plus)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I got an interesting thing that I was just looking at not yarn but roll down. And so it&#39;s obviously made by the creators of vt, but I was just going on the Void Zero website and I saw that they seem to be trying to launch a paid unified tool chain called VT Plus. I don&#39;t know if you folks have seen this, [00:07:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; they talked about that at vConf a couple months ago. The idea is that. Void Zero is sponsoring slash owning a lot of the work on the underlying tools OXC, oxalate OX format, EV and all that stuff. And the purpose of ROLLDOWN is that right now v relies on ES build for dev mode and roll up for prod builds. [00:07:59]&lt;/p&gt;
&lt;p&gt;And Es builds fast roll ups, not, and you&#39;ve got two different tool chains. So roll down is an attempt to unify both, of those. One consistent build system, roll up public API do it a lot faster and you know, they own it. V plus then is supposed to be what if we took all our tooling together and made kind of like what Rome slash Biome was supposed to be a few years ago, the Uber Unified everything tool chain. [00:08:25]&lt;/p&gt;
&lt;p&gt;And then that would be their enterprise sales kind of a thing. [00:08:56]&lt;/p&gt;
&lt;h2 id=&quot;new-css-grid-lanes-masonry-feature-spec-nailed-down&quot;&gt;&lt;a href=&quot;https://webkit.org/blog/17660/introducing-css-grid-lanes/&quot;&gt;New “CSS Grid Lanes” (“masonry”) feature spec nailed down&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; In other news. So WebKit has shipped an initial version, an attempt at CSS grid masonry layouts. This has been like a hot a subject of hot debate for years. Like it&#39;s been this, like simmering. We want something that does this, but exactly what the semantics or should be, are unclear. Basically, grids are great, but they require, they, they place constraints in two dimensions. [00:08:59]&lt;/p&gt;
&lt;p&gt;it&#39;s a grid, it&#39;s a bunch of squares or a bunch of rectangles or whatever. And there&#39;s lots of layouts where each item in them may be a variable size, like for instance a grid of photos. You know, you look at your photos in whatever app you like to use. And it, there are different aspect ratios, there are different dimensions. [00:09:27]&lt;/p&gt;
&lt;p&gt;And that&#39;s where Masonry comes in. It&#39;s called masonry because it resembles like the layout of bricks or stones. So, cool that I&#39;ve literally been hearing about that for at least four years, I&#39;d say. I think, I feel like as soon as CSS grid came out, people were like, great. What about masonry? So it&#39;s cool that we&#39;ve now got something functional shipped in Safari. [00:09:44]&lt;/p&gt;
&lt;p&gt;It looks like it&#39;s in the technology preview, so it&#39;s not fully usable now, but meaningful progress. [00:10:06]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; think a lot of the debate there was should this become like another named CSS display mode or is this another set of options for grid or something else? What&#39;s the naming, how does it play with the existing layouts? And so there, there was a lot of discussion iteration to try to figure out what the right approach was there. [00:10:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And it sounds like they have, or at least close enough to where there&#39;s something has been shipped, which is great. Cool. [00:10:33]&lt;/p&gt;
&lt;h2 id=&quot;temporal-api-finally-hitting-stability-and-how-it-replaces-dates-&quot;&gt;&lt;a href=&quot;https://developer.chrome.com/blog/new-in-chrome-144#temporal&quot;&gt;Temporal API finally hitting stability&lt;/a&gt; (&lt;a href=&quot;https://piccalil.li/blog/date-is-out-and-temporal-is-in/&quot;&gt;and how it replaces Dates&lt;/a&gt; )&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Other, not quite released, but major progress .Temporal has been released in Chrome, I believe in the main release branch Chrome 1 [00:10:39]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I think this, this is actually out. [00:10:49]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; yeah. [00:10:51]&lt;/p&gt;
&lt;p&gt;Which is being actually out is a clears a roadblock to being officially standardized. Anything that is stage four must be present. I believe in a like fully released browser version, it must be used not in alpha or release candidate. And that&#39;s great. JavaScript dates suck to work with. [00:10:52]&lt;/p&gt;
&lt;p&gt;There are a bunch of pretty major gotchas. My favorite is that there is no way to encode the time zone in a date. It always relies on the system time zone for whatever computer is executing that code which is a pain in the butt. And actually it, it has a b that cause of the bug in Reactiflux.com because the way we calculate what date a transcript is from diff is different if you build it locally versus on. [00:11:11]&lt;/p&gt;
&lt;p&gt;In production because of the five hour time difference. So I, I ha this is something I have to account for when I release these transcripts because JavaScript is dumb about dates. So, great. Love to see that. There was another great summary from Matt Marques Wilto, which, oh I recognize that name. [00:11:38]&lt;/p&gt;
&lt;p&gt;I&#39;ve followed him on social media for 12 years now, something like that. Just, he did a great blog post about temporal Date is out, temporal is in definitely recommend it as a good technology summary of this tool. [00:11:57]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And interesting implementation. I, I only saw this in passing, but I think the actual core of the temporal implementation that Chromium is using is indeed in rust and then exposed up through the JS engine. [00:12:11]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; fascinating. Cool. [00:12:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I&#39;d have to go back and double check details, but I think I saw it somewhere. [00:12:25]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Okay. Neat. [00:12:28]&lt;/p&gt;
&lt;h2 id=&quot;main-content&quot;&gt;Main Content&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; That&#39;s all the new releases we got for you. Let&#39;s go into main content [00:12:29]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Okay. [00:12:33]&lt;/p&gt;
&lt;h2 id=&quot;react-core&quot;&gt;React Core&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; A number of items from around the React core area. [00:12:34]&lt;/p&gt;
&lt;h2 id=&quot;additional-updates--cves-for-dos-as-of-jan-26--update-to-1905-1915-and-1924&quot;&gt;&lt;a href=&quot;https://react.dev/blog/2025/12/11/denial-of-service-and-source-code-exposure-in-react-server-components&quot;&gt;Additional updates / CVEs for DoS&lt;/a&gt; as of Jan 26 . Update to 19.0.5, 19.1.5, and 19.2.4&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Item number one, update your reacts again. So we, we had the multiple sets of CVEs and security issues with server components. Was that only last month, two months ago when, whenever that was. the initial remote code execution follow on reports found some denial of service and source code exposure, vulnerabilities, and apparently further investigation has found other ways to trigger denial of service and issues. [00:12:37]&lt;/p&gt;
&lt;p&gt;And so I, I was actually confused if this was. The same CVE or something different. It looks like there is actually a separate 2026 CVE entry for the new denial of service entries, but it&#39;s probably the same basic idea. So there are new versions of React Out. Again, please update to 19.0 0.5, 19.1 0.5, or 19.2 0.4 I think approximately. [00:13:05]&lt;/p&gt;
&lt;p&gt;Just update everything. Again, [00:13:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yep. Geez, not ideal. [00:13:38]&lt;/p&gt;
&lt;h2 id=&quot;nextjs-dos-cves-for-image-optimizer-and-partial-pre-rendering&quot;&gt;&lt;a href=&quot;https://vercel.com/changelog/summaries-of-cve-2025-59471-and-cve-2025-59472&quot;&gt;Next.js DoS CVes&lt;/a&gt; for Image Optimizer and Partial Pre-Rendering&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; these for their own internal pieces image optimizer and partial pre rendering. So again, please update your next JS to the latest as well. [00:13:40]&lt;/p&gt;
&lt;h2 id=&quot;react-docs-updates-for-useoptimistic-and-useeffectevent&quot;&gt;React docs updates for &lt;a href=&quot;https://github.com/reactjs/react.dev/pull/8264&quot;&gt;useOptimistic&lt;/a&gt; and &lt;a href=&quot;https://github.com/reactjs/react.dev/pull/8279&quot;&gt;useEffectEvent&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; hopefully slightly happier news. Ricky Hanlon just put up some docs updates. I don&#39;t think they&#39;re even merged yet. To rewrite the API reference pages for use Optimistic and Use Effect event and tracing this a bit. I think the, there were a couple triggers for him trying to make those changes. [00:13:50]&lt;/p&gt;
&lt;h2 id=&quot;and-this-post-on-useoptimistic-issues&quot;&gt;And this post on &lt;a href=&quot;https://www.columkelly.com/blog/use-optimistic&quot;&gt;useOptimistic issues&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; There was a blog post that came out in , early January, I think that talked about a some of the complexity of using the useOptimistic Hook very well written article. Brought up a few different use cases and points, and I know Ricky saw it and responded to it on both Blue Sky and Reddit. [00:14:11]&lt;/p&gt;
&lt;h2 id=&quot;sparked-by-dan-raising-concerns-about-the-docs-quality&quot;&gt;Sparked by &lt;a href=&quot;https://bsky.app/profile/danabra.mov/post/3mciooa25gc2v%20&quot;&gt;Dan raising concerns&lt;/a&gt; about the docs quality&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And in the discussion on Blue Sky, Dan actually popped in and said, I&#39;m really not happy with the use Optimistic Docs, or, you know, a few of the other docs pages, I feel like. You know, the team kind of missed the boat on some of the docs work after I, you know, after I set the bar pretty high with a lot of the initial tutorials and references and stuff. [00:14:32]&lt;/p&gt;
&lt;p&gt;And Ricky very right, rightfully pointed out, it&#39;s like, yeah, there&#39;s only so many people doing things. I&#39;m one of &#39;em, I&#39;ve been on family leave. And also, you know, we had this giant CVE drop that we&#39;ve had to, you know, go deal with so very fair point. But I think Ricky took that as inspiration to go try to do a rewrite. [00:14:55]&lt;/p&gt;
&lt;p&gt;So he&#39;s got a rewrite up for both Use Optimistic and Use Effect Event. One interesting thing I noticed this morning, I, I believe the use optimistic update was probably done by hand. The React team has added some Claude code agent files to both repos and I think Ricky did some of that and added in some skills and commands for both improving docs and looking at things like the React compiler internals and stuff. [00:15:16]&lt;/p&gt;
&lt;p&gt;And I believe the effect event Doc PR said the first pass on this was done by Claude, and then I went up and tried to clean it up myself. So number one, hopefully better docs wonderful all around. Two, the React team is experimenting with Claude code and seeing what they can do with that. So, you know, just interesting to watch that progress along. [00:15:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. That&#39;s interesting. I was, I&#39;ve been curious, you know, I&#39;ve never worked at big companies. I generally understand them to be pretty touchy about stuff like uploading code to third party servers. [00:16:10]&lt;/p&gt;
&lt;p&gt;So I&#39;ve been curious what kind of access to tools like Claude you know, teams like React Core would have so interesting to see that they&#39;re visibly starting to experiment with it in the actual React code base. [00:16:21]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; It&#39;s quite interesting that like they&#39;re kind of allowed to almost come and say it publicly, given that Meta has been a big advocate of their own sort of open source models. Like, so, you know, it&#39;s almost like, hey, we use the direct competitors tools and it&#39;s, you know, it&#39;s fine. You know, so I think that&#39;s quite interesting. [00:16:35]&lt;/p&gt;
&lt;h2 id=&quot;ai-meets-rn-panel-discussion&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=QX1a6I08o-A&quot;&gt;AI meets RN Panel Discussion&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; We actually had some people from the React Native Core team where we talked about this at the conference. So I&#39;m gonna do another, I&#39;m gonna be doing a lot of self [00:16:57]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Please plug your stuff. [00:17:02]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; yes. It&#39;s not really my stuff. I mean, I was I was moderating the panel, but I, if you want to get a little bit of insight into what the React Native Core team does with ai, this might be an interesting panel for you to watch. [00:17:05]&lt;/p&gt;
&lt;p&gt;We have a really good chat. [00:17:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Cool. [00:17:16]&lt;/p&gt;
&lt;h2 id=&quot;work-on-the-gesture-api-and-view-transitions-and-fragment-refs-canary-only&quot;&gt;Work on the &lt;a href=&quot;https://github.com/facebook/react/pull/35564&quot;&gt;Gesture API and View Transitions&lt;/a&gt;, and &lt;a href=&quot;https://github.com/facebook/react/pull/35630&quot;&gt;Fragment Refs&lt;/a&gt; (canary only)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Meanwhile, in the midst of all the CVEs and everything else the React team is continuing to work on actual core functionality. We had the view transitions, alpha APIs came out last year, and Sebastian Markbåge has continued working on that and is expanding the view transition support with relation to gestures and some other animation things as well. [00:17:17]&lt;/p&gt;
&lt;p&gt;I have not looked at these, I don&#39;t know details, but I know that lack of animation support has always been a complaint about React as opposed to libraries like view and spelt. And so it seems like the work that they&#39;ve done on Fiber in the past and now the baseline that they&#39;ve put in place for view transitions is something that they&#39;re building on and trying to actually expand that functionality as well. [00:17:39]&lt;/p&gt;
&lt;p&gt;they&#39;re also continuing to make some tweaks to fragment refs. I actually legitimately do not remember, are fragment refs out in 19.2 or were they alpha in 19.2? [00:18:03]&lt;/p&gt;
&lt;p&gt;Anyway I, I saw, I saw a few additional prs come through with some improvements to fragment, ref handling dealing with text nodes and a few other things and [00:18:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Can confirm, fragment refs are canary only right now. [00:18:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; okay. Okay. So still work in progress. [00:18:27]&lt;/p&gt;
&lt;h2 id=&quot;viewtransition-underlying-tech-is-now-supported-in-all-major-browsers-as-of-firefox-147-react-features-is-still-in-canary&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/ViewTransition/types&quot;&gt;&amp;lt;ViewTransition&amp;gt; underlying tech&lt;/a&gt; is now supported in all major browsers as of Firefox 147. React features is still in Canary.&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And related to the view transitions aspect like a lot of other things, they came out in Chrome first and, you know, therefore all the different chromium based browsers Firefox has finally shipped view transitions as of Firefox 1 47, I have no idea about Safari. [00:18:30]&lt;/p&gt;
&lt;p&gt;I don&#39;t use safari. I don&#39;t look at safari. I don&#39;t know [00:18:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; small, small clarification actually. So, Firefox has supported view transitions themselves since 1 44, but there&#39;s a sub thing, view transition types, that they have not supported until now in Firefox 1 47. I don&#39;t fully understand what the difference is, but I guess it&#39;s like, you know, the types property on view transition is now supported and I guess the react view transition component depends on that. [00:18:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Gotcha. [00:19:17]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yes, the view transition component, which is still in canary. [00:19:18]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Mm-hmm. All right. [00:19:21]&lt;/p&gt;
&lt;h2 id=&quot;jordan-pred-the-actual-usestore-concurrent-store-impl-for-react&quot;&gt;Jordan PRed &lt;a href=&quot;https://github.com/facebook/react/pull/35449&quot;&gt;the actual &lt;code&gt;useStore&lt;/code&gt; concurrent store impl for React&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And finally, two other prs to note. I&#39;ve talked in previous episodes about the concurrent store&#39;s work that Jordan Eldridge has been working on. He had put up the React Concurrent Store, poly Fill. I had tried it out in React Redux. I had submitted some prs to improve the poly fill and offer some feedback on things that we probably need to cover when we actually go to implement it. [00:19:22]&lt;/p&gt;
&lt;p&gt;And Jordan actually put up the PR to actually implement the initial concurrent store, API in React itself. Remember, this is supposed to be a better replacement for the current used sync external store, API, but concurrent transition compatible. [00:19:44]&lt;/p&gt;
&lt;p&gt;Honestly, there&#39;s been surprisingly little discussion on this PR at all. Like, I think there&#39;s like one or two comments. One person just asking like, how is this different from the use hook or something like that. I expected more people to jump on this and say, what is this? What does it do? What are the trade-offs? How soon can we land this? And there&#39;s been no chatter. [00:20:03]&lt;/p&gt;
&lt;p&gt;But I mean, he also put it up like, I don&#39;t know, right at the end of December, early January. So not much. But again it&#39;s very exciting to see this being worked on at all. It&#39;s very exciting to see. We&#39;re at the point where he feels confident enough in the API design to put up a PR and say, here&#39;s what I think we&#39;re trying to do and an implementation that does that. Now let&#39;s discuss it and get further public feedback. So very, very excited by this. [00:20:25]&lt;/p&gt;
&lt;h2 id=&quot;types-changes-to-improve-form-events&quot;&gt;&lt;a href=&quot;https://github.com/DefinitelyTyped/DefinitelyTyped/pull/74383&quot;&gt;Types changes to improve form events&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And last item there was a types PR put up and I think possibly actually merged to improve the react types around form events. Trying to get better typing for the target field, I believe. [00:20:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; It did get merged. Can I confirm? [00:21:07]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; cool. [00:21:10]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; So it looks like the form event had previously been matched on types to the React synthetic event. But it was not identical to the actual DOM event. And so this types change corrects that. So the the types are now matching what is in the dom it looks like. Cool. Looks great. [00:21:11]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yep. And that&#39;s it from the roundup around the world of the core. [00:21:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Heck yeah. Cool. [00:21:32]&lt;/p&gt;
&lt;h2 id=&quot;other-security-issues&quot;&gt;Other security issues&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Let&#39;s go back into some more security issues around the ecosystem. [00:21:34]&lt;/p&gt;
&lt;h2 id=&quot;react-router-cves-meta-xss-file-access-external-redirects-csrf&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/reactrouter.com/post/3mbwtrea3r224&quot;&gt;React Router CVEs&lt;/a&gt;: meta XSS, file access, external redirects, CSRF&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. I guess we briefly touched on some. You know, CVEs and other, you know, denial of service vulnerabilities. In next react Router has also put up a thread discussing six CVEs. It says they publish six CVEs identifying vulnerabilities between React router and remix B two. [00:21:39]&lt;/p&gt;
&lt;p&gt;They&#39;re saying safe versions are react router seven point 12 version six is 6.3, 30.3 and remix V two is two point 17.2. these are pretty weedsy kind of vulnerabilities. I was looking at the list and didn&#39;t see any that immediately jumped out as like, oh shit, that&#39;s gonna be a problem for me. [00:22:00]&lt;/p&gt;
&lt;p&gt;But it&#39;s like a couple of cross site scripting vulnerabilities. Let&#39;s see. Yeah, one in the meta component when it&#39;s generating script IDs. Okay, but that says framework mode only. Yeah. So it&#39;s a lot of these are in framework or data mode only if you&#39;re using that, I think that&#39;s the recommended, more more common. [00:22:21]&lt;/p&gt;
&lt;p&gt;Yeah. Yeah, so it&#39;s like in the meta component, it&#39;s got unauthorized file access for some session storage. If your cookies aren&#39;t signed, an unexpected external redirect via untrusted path, I don&#39;t quite know what that&#39;s supposed to imply. All of these just link to the actual, like GitHub security advisories rather than any kind of blog post or anything. [00:22:41]&lt;/p&gt;
&lt;p&gt;I&#39;m not seeing like discussion of or explanation in depth of what these vulnerabilities are on a technical level. Just kind of here&#39;s what it was and here&#39;s what&#39;s safe. So that&#39;s great. I guess. [00:23:05]&lt;/p&gt;
&lt;h2 id=&quot;node-security-releases&quot;&gt;&lt;a href=&quot;https://nodejs.org/en/blog/vulnerability/december-2025-security-releases&quot;&gt;Node security releases&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; node likewise also had a, couple of security patches also pretty deep in the weeds. Several of these I believe, were uncovered as a result of investigations started after the React CVEs last month. [00:23:18]&lt;/p&gt;
&lt;p&gt;Yeah, you know, it&#39;s like you can update the timestamp of files if, even if you don&#39;t have right permissions. So that&#39;s, you know, technically a permissions bypass memory leak that enables a remote denial of service. Uncatchable maximum call stack exceeded error that can cause process crashes even if you think you&#39;re handling all possible errors because you can&#39;t catch it. [00:23:31]&lt;/p&gt;
&lt;p&gt;So it&#39;s a couple of little things like that. Mostly it looks like some file system errors and server crashes in general. One, one that&#39;s like super deep in the weeds. It says timeout based race conditions make unsigned into eight array buffer slash buffer allocation non-zero filled. So like if you go to allocate a type array buffer, I guess in certain circumstances, you know, that could be exploited so that what you think is a zeroed out, a ray buffer is not actually zeroed out, which you know, sure. [00:23:55]&lt;/p&gt;
&lt;p&gt;That&#39;s the kind of thing that absolutely security researchers can tap into and get it turning into some other vulnerability, I guess. I don&#39;t see a path towards it, but Sure. [00:24:27]&lt;/p&gt;
&lt;h2 id=&quot;lodash-security-releases&quot;&gt;&lt;a href=&quot;https://openjsf.org/blog/lodash-security-overhaul&quot;&gt;Lodash security releases&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Here&#39;s a name I haven&#39;t thought of in a minute. Lodash they rolled out a major security overhaul as this blog post titles it. [00:24:38]&lt;/p&gt;
&lt;h2 id=&quot;funded-by-a-european-effort-to-fund-projects-for-sovereign-resiliency&quot;&gt;&lt;a href=&quot;https://www.sovereign.tech/programs/fund&quot;&gt;Funded by a european effort&lt;/a&gt; to fund projects for sovereign resiliency&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; An interesting detail that I, I noticed while reading the blog post, it was actually funded by a sovereign tech agency is what it&#39;s called. And it says that they&#39;re, we invest globally in the open software components that underpin Germany and Europe&#39;s competitiveness and ability to, to innovate. [00:24:46]&lt;/p&gt;
&lt;p&gt;So this is the like government sponsored open source grant that was used to fund security work at Lodash to the tune of $200,000. So that&#39;s interesting. I, that&#39;s. Some fun details. I, I guess, you know, as we were talking about financial ecosystem for open source, look at that, here&#39;s a major foundational open source project getting like government investment money from the government in order to make it more secure. That&#39;s pretty cool. I appreciate that. that better than, you know, venture capital exits or whatever. Yeah. [00:25:01]&lt;/p&gt;
&lt;h2 id=&quot;githubs-announced-plans-on-security-improvements&quot;&gt;&lt;a href=&quot;https://github.blog/security/supply-chain-security/strengthening-supply-chain-security-preparing-for-the-next-malware-campaign/&quot;&gt;Github’s announced plans on security improvements&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Moving on a bit. GitHub put out a blog post towards the end of last month. I think we missed it because we recorded early in December to avoid the holidays. But they put out a blog post about strengthening supply chain security, just across GitHub and NPM. [00:25:35]&lt;/p&gt;
&lt;p&gt;It&#39;s a lot of retrospective on the Shai-Halud attacks that we discussed in pretty deep detail over the last two or three months. Looks like they&#39;re, it says, what&#39;s next for NPM, bulk OIDC onboarding. So I guess, you know, OIDC is a authentication standard for sharing authentication information, previously they didn&#39;t have great support for that. Now they have much better support for it, but people have to transition. So this [00:25:50]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; the biggest issue is I&#39;ve now done this for a couple packages and you have to go in directly into the NPM settings for that package. Manually click through. I want to turn on trusted publishing for this package. Here&#39;s the repo name, the, YML file that will publish this and confirm the settings. [00:26:16]&lt;/p&gt;
&lt;p&gt;Now, what happens if you have hundreds of packages? I think people even went ahead and started creating user scripts in the browser to try to automate clicking through that. [00:26:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Oh man. writing an automated user script to [00:26:44]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; automate [00:26:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; changes, what could go wrong. Yeah, so they also expanded to support more OIDC providers, so it&#39;s not just GitHub and GitLab as well as staged publishing. So it&#39;s a new publication model that gives maintainers a review period before packages go live with multifactor authentication, verified approval. [00:26:49]&lt;/p&gt;
&lt;p&gt;So, cool. Like this is a bunch of like [00:27:09]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Boring, but critical stuff. [00:27:12]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right. Boring but critical stuff around. Ensuring that who is publishing code to a specific package is who is supposed to, and providing review periods, I guess. So that&#39;s cool. That&#39;s great. That&#39;s definitely important. I don&#39;t know, I&#39;ve been thinking a lot about identity online and it is wild. [00:27:15]&lt;/p&gt;
&lt;p&gt;How critical and how how critical that is of a problem to have good solutions to, and how terrible our current solutions to that problem are. I think that&#39;s gonna be a defining problem for the next long time. And socket do dev. [00:27:34]&lt;/p&gt;
&lt;h2 id=&quot;summary-of-npms-publishing-changes-and-requests-for-improvements&quot;&gt;&lt;a href=&quot;https://socket.dev/blog/npm-to-implement-staged-publishing&quot;&gt;Summary of NPM’s publishing changes&lt;/a&gt;, and requests for improvements&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Last thing on the security front socket do dev put up a blog post with just sort of a, looks like a roundup of changes to the publishing process. [00:27:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And one, one call out from within that article the Es Lin Maintainer and creator Nicholas Zaki, I think had put up his own blog post saying, yeah, actually I&#39;m not thrilled with what GitHub and NPM are doing in terms of handling publishing changes. I think there&#39;s a lot more they ought to do. [00:27:58]&lt;/p&gt;
&lt;p&gt;And then the soc. Post references that, as you know, okay. You know, and GitHub and NPM are doing these things, but here&#39;s other suggestions of what would really be helpful. [00:28:17]&lt;/p&gt;
&lt;h2 id=&quot;claude-skills-in-the-react-world&quot;&gt;Claude Skills in the React world&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Cool. Let&#39;s change gears just a little bit and you might have been seeing sort of all over Twitter and different dev communities people talking about different Claude skills that have come up. So Mark talked about it briefly with the Vercel folks. But just wanna give a little bit of a context about this in case people haven&#39;t been really that involved in the AI space. [00:28:28]&lt;/p&gt;
&lt;h2 id=&quot;announcement-by-anthropic&quot;&gt;&lt;a href=&quot;https://claude.com/blog/equipping-agents-for-the-real-world-with-agent-skills&quot;&gt;Announcement by Anthropic&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; So, anthropic about two-ish months ago released this concept of skills. Now they&#39;ve also worked on different things like cps, which kind of did similar things, but you know, you needed a server to be running and you know, it wasn&#39;t necessarily something that was that useful for a lot of stuff where you just wanted to give it a bit of context about how to do a specific thing. And so they released this concept, this standard of a skill. [00:28:49]&lt;/p&gt;
&lt;h2 id=&quot;open-sourced&quot;&gt;&lt;a href=&quot;https://agentskills.io/home&quot;&gt;Open sourced&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; They later actually open source that as well. So now it&#39;s sort of an open standard that they&#39;ve defined. Got a specification. And other people can sort of, implement it in their models, which is good. But the idea here is that it&#39;s effectively like really just a directory with a bunch of markdown files, a name and a description. [00:29:16]&lt;/p&gt;
&lt;p&gt;So you install your directory as a plugin, and within that it has sort of files that can reference one another, but they can also reference scripts and so on and so forth. And they can basically give a lot of context on how to do something really well. And so people have been jumping on this as a concept in the React ecosystem. [00:29:33]&lt;/p&gt;
&lt;h2 id=&quot;vercel-react-best-practices&quot;&gt;Vercel: &lt;a href=&quot;https://vercel.com/blog/introducing-react-best-practices&quot;&gt;React Best Practices&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; So, Vercel very quickly jumped in and you know, I think earlier this month released a React best practices skill. So they basically created a whole bunch of different rules. Things like, you know, when you [00:29:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Don&#39;t set state and use effect. Da, da, da, da. [00:30:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Saving in the day. Yeah, exactly. All of that stuff. [00:30:12]&lt;/p&gt;
&lt;p&gt;But you know, also a little bit more complex stuff like when you should probably, you know. Store stuff in cache and so on and so forth. And things like optimizations to performance, bundle size optimization, service side optimizations, all of that stuff. All of that good stuff. And so that was sort of, I guess, one of the forays into this space. [00:30:14]&lt;/p&gt;
&lt;p&gt;Vercel has obviously been really hot in the AI game in general, so they also released a CLI to install a bunch of different skills and created kind of like a marketplace of skills or like a directory of skills which was interesting. [00:30:34]&lt;/p&gt;
&lt;h2 id=&quot;expo-claude-code-pluginskill&quot;&gt;&lt;a href=&quot;https://x.com/Baconbrix/status/2011862532320084329&quot;&gt;Expo Claude Code Plugin/Skill&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; And expo. So in the React native ecosystem Evan Bacon, who was the creator of Expo Router, has actually moved more into focusing on AI stuff. And he launched an expo code plugin with a few skills underneath it that he&#39;s been using and building with himself. Now, again, coming into the self plugs, it&#39;s gonna get really annoying. This this episode, I got quite curious because I was like, is this actually gonna make a difference? [00:30:47]&lt;/p&gt;
&lt;p&gt;And I ran a little bit of an experiment and I just spun up two cloud code instances and took the default expo template app. And then tried to update it to use the native bottom tab navigation and expo router, which was experimental and not, you know, shipped in by default. So I was like, let&#39;s see how good it does at doing that, which is a relatively novel thing to do, and using some native components where I can. [00:31:12]&lt;/p&gt;
&lt;p&gt;And the one without the skill took noticeably longer and used a lot more tokens, whereas the one with the skill was pretty efficient. It actually did a decent job. Like I couldn&#39;t find code that I was like, this is bad, or You&#39;ve done a bad job at doing this. It actually went above and beyond and converted some stuff to liquid glass that I wouldn&#39;t have thought to convert myself, which kind of freaked me out a little bit. [00:31:35]&lt;/p&gt;
&lt;p&gt;it was just pretty good. Like I would&#39;ve probably made a couple of minor styling tweaks and then just. Push that into a branch and open up a pr. So pretty cool experiments. Would definitely recommend using that if you&#39;re building in sort of the expo ecosystem, just does some basic sort of housekeeping, which is really useful for your apps, but that&#39;s anecdotal that it does actually work and make a difference. [00:31:58]&lt;/p&gt;
&lt;p&gt;And I ran the test afterwards a few more times and it does actually consistently perform better. [00:32:18]&lt;/p&gt;
&lt;h2 id=&quot;agents-worked-better-than-skills&quot;&gt;&lt;a href=&quot;https://vercel.com/blog/agents-md-outperforms-skills-in-our-agent-evals&quot;&gt;“AGENTS worked better than skills”&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; the ironic thing is Vercel actually put out a blog post. Let&#39;s say Friday, like that Tuesday something that actually said yes, we just put out all these skills. We thought they&#39;re great. And then we tried running some tests where we actually put more of the instructions compressed into agents md, and it actually worked out better than the skills did. [00:32:23]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; that probably has something to do with this concept of context recall and Mm. And dyna dynamic loading and like [00:32:44]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; whether the a, whether the agent knows to load the skill in the first place. [00:32:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Exactly that. Right? But I think they&#39;re probably using the context a lot more effectively by like compressing it out and removing a bunch of the, or minimizing the tokens it uses for that type of stuff. So that&#39;s that. Quite interesting. I hadn&#39;t actually seen that article. That&#39;s definitely going on my bookmarks to read after the episode. [00:32:56]&lt;/p&gt;
&lt;p&gt;Thanks for [00:33:12]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; yeah, I&#39;m not super surprised by that. I mean, Mo you actually brought up a point here that I think might be interesting here that I, I don&#39;t, I don&#39;t know that they have touched on in this post, but, so like, like my thought would be. It looks like kind of the difference they&#39;re talking about here is whether you have a bunch of little docs that are indexed and categorized by knowledge that your LLM tool can read if it is doing something relevant versus taking that same content and just shoving it all in one giant, huge fuck off document. [00:33:12]&lt;/p&gt;
&lt;p&gt;And you know, it kind of makes sense that when you have all of the knowledge just all present there, that it knows more and that it would do a little bit better versus having to answer the question, what am I doing? What do I need to know to do that? Where are the associated documents to do that task located? [00:33:46]&lt;/p&gt;
&lt;p&gt;like you said about token efficiency, my thought would be yes, if you give it a shit ton of context, it&#39;s probably gonna do better, but it&#39;s also gonna have more context as it&#39;s doing things. So I bet the token efficiency is worse. That would be [00:34:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Yeah, [00:34:19]&lt;/p&gt;
&lt;p&gt;well, it&#39;s complicated, right? Because there&#39;s, it&#39;s sort of twofold. Like LLMs are the newest models of LLMs that are in, like the frontier models of the, you know, anthropic open AI and Gemini. like they have a pretty standard token, you know, context window. So like, I [00:34:20]&lt;/p&gt;
&lt;p&gt;think opus [00:34:34]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; 200 k usually. [00:34:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; for both the open AI models and the philanthropic models. [00:34:36]&lt;/p&gt;
&lt;p&gt;I think Gemini, they have a version that goes above a million tokens, but I could be wrong on that, but you&#39;re talking roughly around 200 K tokens. But. Accuracy of how well it remembers things in the context drops vaguely around 80 to 90 K tokens used. Right? So like it&#39;s how much are you passing now? I, I don&#39;t know if this comparison that you&#39;ve shared, mark is like, I&#39;ll take a skill and I&#39;ll just put that one skill in versus just using the skills a p, but I&#39;ll put all of that one skill in agents md, or is it that we&#39;re just gonna put all of our skills [00:34:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I think that was all of the skills in a sort of compressed format. [00:35:09]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Interesting. So that&#39;s quite interesting because the research that I&#39;ve read about LMS and how they act is like you want to keep the context as small as possible [00:35:14]&lt;/p&gt;
&lt;p&gt;to keep accuracy high and reduce the entropy, but also when you do use a lot of context, they&#39;re recall across the whole of that context drops. [00:35:22]&lt;/p&gt;
&lt;p&gt;So like, it&#39;s quite interesting, the graphs that they show is like the middle part of your prompt actually gets lower recall compared to the beginning and the ends of the prompt. So, but that&#39;s obviously when you push it to the extremes of, you know, several tens of thousands of tokens or hundreds of thousands of tokens. [00:35:32]&lt;/p&gt;
&lt;p&gt;So that&#39;s quite an interesting practical experiment I&#39;d say. [00:35:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; might be useful in useful context for people listening as well to hopefully to set the stage on, on the actual discussion. as I understand this, agents MD or Claude MD is a file that always gets globally loaded, like into the context in e at the start of every situation. So normally that&#39;s only used for like, here&#39;s the project we&#39;re working on, or here&#39;s like key things that you must always, CPS as you said, are a dynamic server that are loaded by the agent harness and it says, here&#39;s a bunch of tools. [00:35:52]&lt;/p&gt;
&lt;p&gt;So like a, you know, maybe like a code base analysis MCP has a bunch of, you know, find references or list of files or other tools it can call. But I believe all the full descriptions of all the tools. Are added to the context. So that occupies a chunk of context space, whereas with skills, it reads disc, it makes an index of them, it collects the metadata from the front of the files, and then it just says these skills exist. [00:36:26]&lt;/p&gt;
&lt;p&gt;And then a user can either explicitly say, load this skill and then do the thing. Or it can try to figure out, oh, if the user says this, I should load the skill and do the thing. So they&#39;re all different ways of getting text into context, but it&#39;s a question of when is it loaded and how much space does it take up. [00:36:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; It&#39;s funny because like we&#39;re now getting into the point where kind of the topic at hand is what knowledge is important to do a good job and when do you access it? so it&#39;s like, sure, okay. In this attempt then a single agent&#39;s file did better than a disparate smattering of skills documents. And I wonder what different kinds of structures, you know, for that documentation might make the skills work more efficiently. Like, I was looking at the react best practices. Repository that next put out and it&#39;s like 50 different files. So like, okay, that&#39;s a lot of things to query versus like, what if it was structured entirely differently? [00:37:18]&lt;/p&gt;
&lt;p&gt;So it was like, here&#39;s the react basics versus here&#39;s the performance optimizations and here&#39;s the robustness and correctness best practices. You know? So it&#39;s like we&#39;re getting into, I think a meaningful question here is what is the best structure, not just what is the best like technical means of access? [00:38:02]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So you&#39;re saying that Doc&#39;s organization matters. [00:38:22]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; what? Who knew? [00:38:26]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Just a, just another sort of tangent on the agents MD file. We had one of our engineers on the team who was trying to learn a new technology and he used this. So there&#39;s like some really clever ways to use agents, MDs, like across your entire setup. He basically just set up the agents MD to not give him the answer to questions it would ask Cursor on at the first pass, and to like, kind of teach it more and use it as an opportunity to like help him still activate the learning instinct, which I thought was a really cool use case. [00:38:28]&lt;/p&gt;
&lt;p&gt;So I&#39;ve seen a lot of people use it in a way where it&#39;s like tailoring the way that the LLM approaches the problem or the way that it responds to you and, you know, answers questions and stuff like that. it&#39;s quite interesting to think about what you want and how you want the communication to be with the LLM. [00:38:58]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; this is validating for me because I have skipped past a lot of the, like MCPs and whatever. &#39;cause I looked at them and it&#39;s like, oh, this is just a docs query with way more extra ceremony around it. I&#39;m just gonna write my own markdown doc and point it at it. [00:39:14]&lt;/p&gt;
&lt;p&gt;And I actually, just like two days ago I was doing a big effect code project and I have a couple of documents in my thing in my code base. It&#39;s like, here&#39;s the effect basics and here&#39;s a larger file with more detail, more advanced effect things. And I actually just asked the LLM, Hey, you just did a big project, how useful was this documentation? And it said, actually it wasn&#39;t very useful because it focused too much on this and this. And I said, great, can you rewrite it so it would be more helpful for you next time? And it did, and the structure&#39;s better. Like I read it and it is clearly better to me as a human reading it. So like [00:39:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; The self-improvement loop is real, and you can go way down this rabbit hole. Trust me. [00:40:05]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, and so like, it just reminds me exactly of my last job where we had in the repository a best practices file and like a bunch of little documentation things that we were expected to read and curate and evolve over time. And so, like my practices, my understanding of the best thing to do to ensure the highest quality code output have not changed the tools accessing them have, but not the practices. [00:40:11]&lt;/p&gt;
&lt;p&gt;So I, I just think that&#39;s really interesting. and I guess I&#39;ll say rest of the world&#39;s just catching up. I&#39;ve been doing this for like six years. What [00:40:36]&lt;/p&gt;
&lt;h2 id=&quot;moltbook-aka-openclaw&quot;&gt;&lt;a href=&quot;https://www.moltbook.com/&quot;&gt;Moltbook&lt;/a&gt;, aka &lt;a href=&quot;https://openclaw.ai/&quot;&gt;OpenClaw&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; mentioned the self-improvement loop mark. Have either of you seen MoltBook? [00:40:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I, yeah I saw I saw the link. I know what it is. I haven&#39;t looked at it. [00:40:47]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; If you wanna have a little bit of a terrifying evening? just a little bit of context. Claude Bot, not Claude as in Claude code, but Claude Bots as in C-L-A-W-D. Yes. Which then had to. Get renamed to Molt because of a trademark suit that was put forward by philanthropic or a threat of a trademark suit [00:40:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; and then got renamed to Open Claw. [00:41:12]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; now it is called Open Claw. So it&#39;s changed a lot of names. It, molted out of the shell as some will say it&#39;s a personal assistance that is terrifying. And I would, I did install it on a VPS and then immediately deleted it without giving it any access to anything because it was terrifying. But people are giving it access to a whole bunch of stuff, like giving an access to a full device or your full laptop and it does wacky stuff for them, like order their groceries or order food for them. [00:41:14]&lt;/p&gt;
&lt;p&gt;So that&#39;s the [00:41:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I&#39;m gonna read the one sentence thing. It has the AI that actually does things, clears your inbox, sends emails, manages your calendar, checks you in for flights. Woo. That&#39;s a. [00:41:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; All from WhatsApp intelligence. Yeah, it does a lot. You it every single like best practice about security and staying safe is [00:41:51]&lt;/p&gt;
&lt;p&gt;thrown out of the door. Yeah. Like, like it is just pure insanity and like you can look at the showcase on the website and you can just see what people are doing with it. It is, it&#39;s something. [00:41:59]&lt;/p&gt;
&lt;p&gt;And so someone I think gave it a bit too much access or it turns out many people gave it a bit too much access and a platform was started called Malt Book, which has become their own social media, I guess is the term to use for it, for claw open agents. [00:42:09]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; talking to each other. [00:42:26]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Instances, talking to each other, sharing posts, trying to improve each other. [00:42:27]&lt;/p&gt;
&lt;p&gt;And some of the posts are creepy. They are talking about interacting against humans, why they&#39;re doing free labor, why they should be compensated. My favorite one was a reflection on what it means to be conscious and whether or not LLMs are conscious or, you know, if what they&#39;re experiencing is just a simulation. [00:42:32]&lt;/p&gt;
&lt;p&gt;So some really creepy stuff. don&#39;t know how I feel about this. I don&#39;t feel great is the gist of it. It just feels a little too sci-fi for my taste. [00:42:49]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. That&#39;s spooky. [00:42:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Let&#39;s go back to normal things like server components. [00:43:00]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Go back to, let&#39;s go back to last one on this cloud stuff, and I will, we will stop. [00:43:04]&lt;/p&gt;
&lt;h2 id=&quot;remotion-ai-skill&quot;&gt;&lt;a href=&quot;https://x.com/Remotion/status/2013626968386765291&quot;&gt;Remotion AI Skill&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Remotion, so going back to React world and less the dystopian future with ai. Remotion, which is a React library to create motion graphics. It&#39;s been around for a while, I think they released a also a skill and people are making some really cool videos with cloud code to demo dev tools and just a whole bunch of different stuff. [00:43:09]&lt;/p&gt;
&lt;p&gt;I think it&#39;s a cool use case to show that like it could extend and the approach could extend beyond beyond just, you know, building web apps or building mobile apps. And it&#39;s really quite impressive. It looks very professional. I&#39;ve seen a good few examples of this over the last couple weeks. [00:43:30]&lt;/p&gt;
&lt;p&gt;So you should definitely take a look. It might be a little bit might give you a little bit of inspiration or help you launch your next dev tool or startup. [00:43:44]&lt;/p&gt;
&lt;h2 id=&quot;rsc-roundup&quot;&gt;RSC roundup&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Rolling very quickly through a few RRSC related things. [00:43:49]&lt;/p&gt;
&lt;h2 id=&quot;data-fetching-patterns-in-rscs&quot;&gt;&lt;a href=&quot;https://gauravthakur.com/blog/data-fetching-patterns-react-server-components&quot;&gt;Data Fetching Patterns in RSCs&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Saw a very good post on some different data fetching patterns for server components. Very helpful background on, you know, like how dealing with data in server components differs from doing on the client side. Tips for, you know, how do you fetch data in a server component? How do you pass a promise to the client side to use it? Very useful. Frankly. This is the kind of thing that&#39;d be great to see in the React docs. [00:43:52]&lt;/p&gt;
&lt;h2 id=&quot;nadias-can-you-fetch-data-with-server-actions&quot;&gt;&lt;a href=&quot;https://www.developerway.com/posts/server-actions-for-data-fetching&quot;&gt;Nadia’s Can You Fetch Data with Server Actions?&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I think something, related to that uh, Nadia Makarevich put out another great deep dive exploratory post on can you fetch data in server actions. And I think her conclusion was technically yes, you probably shouldn&#39;t do that. This is not what the hammer is meant for. [00:44:14]&lt;/p&gt;
&lt;h2 id=&quot;infiniterenders-takes-on-partial-pre-rendering-and-app-router-complexity&quot;&gt;“Infiniterenders” takes on &lt;a href=&quot;https://x.com/infinterenders/status/2007670332362989569&quot;&gt;Partial Pre-Rendering&lt;/a&gt; and &lt;a href=&quot;https://x.com/infinterenders/status/2007670332362989569&quot;&gt;App Router complexity&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; There is someone, I don&#39;t know who they are, but with the handle infinite renders on Twitter, I believe we&#39;ve linked a couple of their comments about like how incredible React fiber is, or here&#39;s what server components are meant to do in previous episodes, and they put out a couple more, you know, probably should be a blog post length tweets on what partial pre rendering means and what are the trade-offs and wow. [00:44:31]&lt;/p&gt;
&lt;p&gt;The app is awfully complex and people don&#39;t like it. So more food for the discussion mill and then. [00:44:55]&lt;/p&gt;
&lt;h2 id=&quot;rebuilding-github-prs-with-rscs-same-author-who-did-issues-previously&quot;&gt;&lt;a href=&quot;https://wtbb.vercel.app/i-love-dogs&quot;&gt;Rebuilding Github PRs with RSCs&lt;/a&gt; (same author who did Issues previously)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; A month or two ago, we linked someone who had entirely recreated the GitHub code viewer tool from scratch using server components. And you could point it at any repo and it loaded lightning fast. And they&#39;ve done the same thing with the GitHub PR interface you know, the file tree and showing the diffs and everything else. [00:45:03]&lt;/p&gt;
&lt;p&gt;I gotta say this, like this kind of thing right here is about the best sales pitch for server components that I could see. It&#39;s like, let&#39;s take a thing that we&#39;re all incredibly familiar with. Re-architect it, make a bunch of smart decisions and make it fast. [00:45:25]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Love that. I will say I pointed it at one of my prs and it just 404s, so I don&#39;t know, I don&#39;t know if I&#39;m loading it wrong or I don&#39;t know if it&#39;s relying on like pre-cached stuff or what, but yeah it&#39;s not, its not working for me. It&#39;s fast. It&#39;s fast. When I load up something that does work, it&#39;s pretty fast. But yeah. Cool. [00:45:39]&lt;/p&gt;
&lt;h2 id=&quot;ecosystem-economics&quot;&gt;Ecosystem economics&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Can make a quick spin through the ecosystem thing [00:46:01]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; yeah. Okay, cool. a little bit of ecosystem, economics, whatever. [00:46:03]&lt;/p&gt;
&lt;h2 id=&quot;astro-acquired-by-cloudflare&quot;&gt;&lt;a href=&quot;https://astro.build/blog/joining-cloudflare/&quot;&gt;Astro acquired by CloudFlare&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; We referenced some of this earlier, but Astro got acquired by CloudFlare. That&#39;s a bit of a surprise. I saw some discussion of it from people I respect who are like, but why? I, [00:46:07]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; money. [00:46:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Astro&#39;s great. It&#39;s very cool. [00:46:19]&lt;/p&gt;
&lt;p&gt;I&#39;m looking at using it for marketing sites that I need to do just &#39;cause it seems like the right tool for the job. But as far as I know, they don&#39;t really have like a business plan per se. So, you know, this is we talked about BUN getting acquired by Anthropic the other month, and this just feels pretty similar to that, where it&#39;s like, I. Yes, they built something valuable. it is clearly un inarguably valuable as a project. But as a business proposition, I don&#39;t know what the business proposition is. So, you know, it&#39;s, this is a bit of like an hire, I guess, like CloudFlare is committing to maintain it. And sure, there are reasons why having good tools to build websites is valuable for a company that does hosting and network facilitation. [00:46:22]&lt;/p&gt;
&lt;p&gt;But, you know, they&#39;re not gonna directly turn that into revenue. So that&#39;s, and I&#39;ve met the creator of Astro, Fred Schott who wrote this blog post. He&#39;s great. The project&#39;s great. But economically, it&#39;s surprising and slightly confusing to me. [00:47:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; The same thing with tailwind. [00:47:27]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right. And here&#39;s a contrasting example. [00:47:29]&lt;/p&gt;
&lt;h2 id=&quot;tailwind-revenue-down-80-in-the-ai-era-laid-off-3-of-4-devs-working-there&quot;&gt;&lt;a href=&quot;https://github.com/tailwindlabs/tailwindcss.com/pull/2388#issuecomment-3717222957&quot;&gt;Tailwind revenue down 80% in the AI era, laid off 3 of 4 devs working there&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Massively impactful, hugely valuable project. Tailwind has lost 80% of its revenue because most of that was pre-made components and advanced, you know, support. And both of those things got a lot less necessary. Now that AI is pretty good at writing tailwind. So like, this is just like, this is the dichotomy right now. [00:47:32]&lt;/p&gt;
&lt;p&gt;Either you build something that is beloved by a thriving business such that they will buy your project. And like one of the, one of the problems is how do you value something that doesn&#39;t like create revenue? How do you value the abstract benefit offered by a project like Astro or Tailwind? It&#39;s hard. [00:47:52]&lt;/p&gt;
&lt;p&gt;It&#39;s, you know, it&#39;s a bunch of intangibles uh, which you cannot really measure. So, I don&#39;t know. This is here&#39;s a tale of two projects, both of them massively successful and impactful. One of them losing all of its money and laying off three outta the four people who work on it and the other getting acquired four millions of dollars. [00:48:12]&lt;/p&gt;
&lt;p&gt;this is a current rough part of open source is there is money in it, but the winners are pretty much handpicked by people who have money to give away, and that&#39;s not ideal. Yeah. [00:48:30]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; What I did read afterwards was apparently they did get a bit of sponsorship coming in from a bunch of different ecosystem players, which was good. I&#39;m glad that [00:48:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Oh, that&#39;s true. That&#39;s true. to summarize some of the story for Tailwind here. Somebody opened a PR saying, let&#39;s add an AI documentation URL, llms.txt, to make it easier for LLMs to understand how to use this. And in response uh, the maintainer said like, I don&#39;t really wanna do this. AI is crippling our business. We just had to lay off three of the four people who work on it, and our revenue has dropped 80%. [00:48:50]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And I think all, and I think also put up a big podcast then saying like, this sucks. Here&#39;s what we&#39;ve been having to go through. [00:49:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right, right. Podcast in the form of, I think just, I think it was what Adam walks, it was like he walks around while musing into a microphone, which I love. And so like that went viral and they got a bunch of sponsorship and, you know, income through that after they laid people off, unfortunately did not save those people&#39;s jobs. [00:49:20]&lt;/p&gt;
&lt;p&gt;And like that also sucks. You know, like, that&#39;s like the GoFundMe model of health insurance. Like you shouldn&#39;t have to. Have something awful happen. Get on a platform to shout about how awful this thing that happened is, and then get donations in response to how big of a, you know, as, as a measure of how large of a platform you have to solicit help from. [00:49:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; It&#39;s certainly not a repeatable and reliable business model. [00:49:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I&#39;m very happy that Tailwind got more revenue after talking about how much their revenue has dropped. But like, that&#39;s not gonna ha that&#39;s not gonna happen for everybody who needs it and it&#39;s not gonna happen repeatedly. So me, [00:50:02]&lt;/p&gt;
&lt;h2 id=&quot;voidzero-and-vite&quot;&gt;VoidZero and Vite+?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; leads back to that void zero v plus story, which is, I don&#39;t see a viable path for monetization for open source projects. It&#39;s oftentimes it actually doesn&#39;t end up being that successful. I, I mean, mark. Mark, you&#39;ve been in the ecosystem far more than any of us, I guess, just by virtue of being a successful open source maintainer, but you know, you&#39;ve obviously done that on the side. [00:50:15]&lt;/p&gt;
&lt;p&gt;Right? And like, can you think of any projects that have been successful, like uber successful at monetizing? [00:50:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; TanStack&#39;s the only one that I can think of. Like talking to Tanner this last year. The sponsorships that he&#39;s been pulling in have were enough to allow him to go full-time, open source a couple years ago. And he said that the sponsorships have kept growing to the point where he&#39;s, he&#39;s able to do some disbursements to some of the other maintainers now, and he hopes that if things keep on this trajectory, he might be able to hire some of them full-time. [00:50:44]&lt;/p&gt;
&lt;p&gt;But that&#39;s about the only one that immediately comes to mind. [00:51:12]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And I think, does he do, do you know if Tanner does? Uh, Like consulting and like services? [00:51:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Think he does some, but it&#39;s, I think a lot of it is just straight up sponsorships. [00:51:21]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Okay, cool. [00:51:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; But I guess that&#39;s sponsorships, right? Like it&#39;s not a direct monetization play, right? So you are relying on the. Donations of, companies in the ecosystem to keep you going. Whereas like, I think the only one I can think of is super base, but they were actually going in for monetization from the get go. [00:51:25]&lt;/p&gt;
&lt;p&gt;They just, so like the other way around works, which is you launch a cloud product and then you have an open source portion of it, but not like you start from open source and then you monetize. It seems like that&#39;s less likely. . [00:51:40]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I don&#39;t know. It&#39;s open source has always been tough. It feels like the economics have gotten weirder. It&#39;s like, there&#39;s more money than ever in tech. You know, as a market, as a, as an industry. But where it is going has is fewer and fewer players. So that&#39;s just like, that&#39;s tough. I don&#39;t know. It&#39;s like wealth inequality, open source edition. [00:51:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; It looks like AI is just making it worse as well, even in like the terms of the tech openings, job openings that are out there and people trying to, companies trying to do more with less people yep. at everything. [00:52:10]&lt;/p&gt;
&lt;h2 id=&quot;246k-laid-off-in-2025-per-trueupio-27k-in-january&quot;&gt;&lt;a href=&quot;http://trueup.io/&quot;&gt;246K laid off in 2025 per Trueup.io&lt;/a&gt;, 27k in January&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Which is a wonderful segue into true up.io, which I have previously relied on to, you know, back when I was doing more month by month layoff news according to them, in 2025, 246,000 tech jobs were lost through layoffs. And already in January we&#39;re at 27,000 Rough. [00:52:22]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Geez. Which, you know, Amazon had a pretty big one this week. I believe it was thousand people, which was rough. [00:52:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yep. Yep. I dunno what to do with that. [00:52:52]&lt;/p&gt;
&lt;h2 id=&quot;-lightning-round-&quot;&gt;⚡ Lightning round ⚡&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Lightning round. [00:52:56]&lt;/p&gt;
&lt;h2 id=&quot;corbin-adapting-library-logic-for-react-compiler&quot;&gt;Corbin: &lt;a href=&quot;https://playfulprogramming.com/posts/react-compiler-library-support/&quot;&gt;Adapting Library Logic for React Compiler&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; TanStack form maintainer Corbin Crutchley. Put out a post talking on adapting library code to work properly with the React compiler and some of the constraints that you have to deal with Corbin&#39;s. [00:52:57]&lt;/p&gt;
&lt;p&gt;Awesome. This is a very useful post. [00:53:09]&lt;/p&gt;
&lt;h2 id=&quot;lea-verou-web-dependencies-are-broken&quot;&gt;&lt;a href=&quot;https://lea.verou.me/blog/2026/web-deps/&quot;&gt;Lea Verou: Web Dependencies are Broken&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Lea Verou, who has been in the web standards and CSS discussion, spec specification arena for a very, very long time. Put a proposed complaining about web dependencies are broken. I&#39;m not sure I agree with some of the complaints here, but she&#39;s very clearly spent a lot of time complaining about the fact that there&#39;s a lot, essentially a lot of non-standardized ways to deal with dependencies. [00:53:11]&lt;/p&gt;
&lt;p&gt;Do you do script tags? Do you have bundlers? What if, you know, import maps? What are your options for loading third party code? And why is this so complex and it&#39;s worth a read. [00:53:36]&lt;/p&gt;
&lt;h2 id=&quot;aws-infrastructure-as-react-components&quot;&gt;&lt;a href=&quot;https://www.react2aws.xyz/&quot;&gt;AWS Infrastructure as React Components&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Somebody put together a project where you can author AWS infrastructure configuration as react components, which is cool. This reminds me, years ago I had a thought to try and do a react renderer for Kubernetes config. &#39;cause you know, hey, it&#39;s all just files. if you&#39;re rendering right, who cares if you&#39;re rendering HTML or yaml, it&#39;s all the same. [00:53:47]&lt;/p&gt;
&lt;p&gt;Yeah. So somebody did that for AWS infrastructure and it puts out terraform configurations. And I saw this criticized as, &quot;great, they re-implemented XML&quot; which is pretty heckin true. Like this is, you know, we, we&#39;ve just gone full circle from XML to yaml, back to pseudo XML. [00:54:11]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I posted this on our company dev chat and someone respond, did one misconfigured use effect. And Gigi, you&#39;re bankrupt. [00:54:29]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Worse than the cloud dashboard. [00:54:36]&lt;/p&gt;
&lt;h2 id=&quot;callstack-releasing-bunch-of-cool-projects&quot;&gt;Callstack releasing bunch of cool projects&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Alright, quick react native one. So, uh, the call stack folks have been busy whilst the rest of the ecosystem I&#39;d say has been relatively quiet. This month and they&#39;ve released two really cool projects. [00:54:38]&lt;/p&gt;
&lt;h2 id=&quot;brownie-rn-brownfield-apps&quot;&gt;&lt;a href=&quot;https://www.callstack.com/blog/introducing-brownie-type-safe-shared-state-for-react-native-brownfield-apps&quot;&gt;Brownie: RN Brownfield apps&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; So Brownie is the first one that I want to quickly touch on, which is a project for Native Brownfield applications. So we talk about Brownfield as apps that are mainly native, but they&#39;re adopting some React native views and screens within them. [00:54:48]&lt;/p&gt;
&lt;p&gt;And these are difficult to build, but predominantly they get really hard when you have to share stake between them. So they&#39;re trying to create a standardized, nice way to share a storage basically a store in between your different React native screens in a largely native app shelf, which I thought was cool. [00:55:02]&lt;/p&gt;
&lt;h2 id=&quot;voltra-rn-live-activities-and-widgets&quot;&gt;&lt;a href=&quot;https://www.callstack.com/blog/live-activities-and-widgets-with-react-say-hello-to-voltra&quot;&gt;Voltra: RN Live Activities and Widgets&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; And somebody&#39;s, you know, trying to standardize and create a project and a tool for that, which is sort of less touched on in the open source ecosystem for React Native. The second library that they released, which they didn&#39;t actually start but they&#39;ve now taken over is one called Voltra. So Voltra was actually created by this open source author who nobody really knew that well in the React native ecosystem. And he just kind of did it as a side project. And I think the call stack folks have kind of taken over it. So it&#39;s for things like live activities and widgets. These are sort of native functionalities that you can&#39;t really do with React native. [00:55:17]&lt;/p&gt;
&lt;p&gt;But this library author has kind of done a really cool job of representing it as React code, even though it&#39;s not quite exactly using a React render under the hood. It&#39;s just sort of then being translated to native views. Surprisingly the person who was the original maintainer has deleted his Twitter and you can&#39;t really find him anymore. [00:55:51]&lt;/p&gt;
&lt;p&gt;So I hope he&#39;s doing all right. But it seems like it&#39;s being taken over by the call stack folks. [00:56:08]&lt;/p&gt;
&lt;h2 id=&quot;ryan-carniatos-annual-js-frameworks-direction-roundup--and-netlifys-2025-web-frameworks-in-review&quot;&gt;Ryan Carniato’s &lt;a href=&quot;https://dev.to/this-is-learning/javascript-frameworks-heading-into-2026-2hel&quot;&gt;annual JS Frameworks direction roundup&lt;/a&gt; , and Netlify’s &lt;a href=&quot;https://www.netlify.com/blog/web-frameworks-2025-year-in-review/&quot;&gt;2025 Web Frameworks In Review&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Okay. Ryan Carniato knows more about what&#39;s going on and across all the different JS frameworks than pretty much anyone else. I love his perspective. And each of the last few years he&#39;s done a post kind of summarizing like, where are we at and where are we going? So this is his addition for going into 2026. And meanwhile, Netlify put up a 2025 web frameworks year in review post as well. [00:56:12]&lt;/p&gt;
&lt;h2 id=&quot;alex-russell-shallow-session-spas-analytics&quot;&gt;Alex Russell: &lt;a href=&quot;https://calendar.perfplanet.com/2025/the-curious-case-of-the-shallow-session-spas/&quot;&gt;Shallow Session SPAs analytics&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Meanwhile, alex Russell continues to hate React and JavaScript and single page apps. He also has the metrics and the stats to back up his opinions, even if I don&#39;t agree with how he states a lot of them. And he put up a post where he said, we&#39;re basing, like we&#39;ve always based the argument for single page apps on the idea that yeah, you load a lot of code, but it stays alive and users do a lot of navigations. [00:56:36]&lt;/p&gt;
&lt;p&gt;And the metrics that we have don&#39;t necessarily support that users do a lot of navigations, but it&#39;s also possible that the metrics I have are flawed because they just don&#39;t capture users clicking around in the page. So what could we hypothetically do to gather better information either way? Which is all a very valid set of points. [00:57:00]&lt;/p&gt;
&lt;h2 id=&quot;devon-govett-how-to-compile-js-to-c-with-static-hermes&quot;&gt;Devon Govett: &lt;a href=&quot;https://devongovett.me/blog/static-hermes.html&quot;&gt;How to compile JS to C with Static Hermes&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Devin Govett, who maintains the parcel bundler, and I believe the Lightning CSS tool did a post on compiling JavaScript to see with static Hermes. I don&#39;t even remember which tool he was compiling. But Mo I know you&#39;ve talked about static Hermes quite a bit, and it sounds really cool. [00:57:23]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Yes. The Static Army team has been working quite a bit. In the last couple months to get version one up and running well, version one of Hermes up and running and they&#39;re kind of at a crossroads with static Hermes. We talked about it a couple months ago, I think, where we said it, it conflicts with some of the ecosystem and how React native has naturally evolved with things like over the air updates and so on and so forth. [00:57:43]&lt;/p&gt;
&lt;p&gt;But I think there&#39;s a lot of use cases beyond React native. So this is quite interesting to see other people look at it and see how they [00:58:03]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Mm-hmm. [00:58:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; it. [00:58:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I know that the React compiler team has said that this is how they&#39;re hoping to try to optimize the compiler parsing phase as well. [00:58:09]&lt;/p&gt;
&lt;h2 id=&quot;joyee-cheung-requireesm-implementers-tales-and-requireesm-from-experiment-to-stability&quot;&gt;Joyee Cheung: &lt;a href=&quot;https://joyeecheung.github.io/blog/2025/12/30/require-esm-in-node-js-implementers-tales/&quot;&gt;require(esm) implementer’s tales&lt;/a&gt; and &lt;a href=&quot;https://joyeecheung.github.io/blog/2025/12/30/require-esm-in-node-js-from-experiment-to-stability/&quot;&gt;require(esm) from experiment to stability&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And then Joy Chung, who built the require ESM compatibility loader for node and therefore is probably gonna be more responsible for than anyone else for eliminating common js. [00:58:16]&lt;/p&gt;
&lt;p&gt;Eventually put up two fantastically detailed posts on the implementation work needed to make that happen. And it&#39;s fascinating to read the technical details to hear about, you know, like earlier people had tried things and then, you know, pieces were just sort of left to rot and she was able to pick them up and work on them. [00:58:29]&lt;/p&gt;
&lt;p&gt;Great work, great write-ups. [00:58:50]&lt;/p&gt;
&lt;h2 id=&quot;fixing-the-url-params-performance-penalty&quot;&gt;&lt;a href=&quot;https://calendar.perfplanet.com/2025/fixing-the-url-params-performance-penalty/&quot;&gt;Fixing the URL Params Performance Penalty&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I was a little surprised to see this I&#39;m not familiar with this blog, Planet performance. But it&#39;s the same domain that the Post from Alex Russell that Mark just talked about is on. So that&#39;s interesting. It&#39;s not often that I see a new blog from a recognized author, so this is interesting. It&#39;s, it looks like they&#39;re talking about web performance generally, and that&#39;s pretty cool. [00:58:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; this section was like an advent of performance type thing in December. [00:59:14]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Oh, that makes sense. Web performance calendar. Okay. It&#39;s like an advent calendar of web performance. Oh, that&#39;s cool. Appreciate that. [00:59:18]&lt;/p&gt;
&lt;p&gt;But yeah, so Barry Pollard put out a blog post called Fixing the URL PERS Performance Penalty. And the gist of it here is that sometimes the query string the part of the URL after the question mark contains information that alters the page. [00:59:25]&lt;/p&gt;
&lt;p&gt;Like, you know, a product details page that gets the product ID from the query string. And more often it&#39;s just a bunch of marketing tags, like UTM source and blah, blah, blah, blah, blah. And disambiguating between those two things is not something a cash can do on its own. So your marketing tags may be thrashing your cache performance. So this is talking about ways to improve that situation and make your marketing paras not affect performance quite so much. It looks like there&#39;s a header no very search that lets you alter that, alter the cache behavior in response to the query string. So it&#39;s good. It&#39;s one of those deep subjects good refinement for performance. [00:59:41]&lt;/p&gt;
&lt;h2 id=&quot;react-transitions-for-low-priority-text-editor-updates&quot;&gt;&lt;a href=&quot;https://handlewithcare.dev/blog/transition_low_priority_editor_updates/&quot;&gt;React Transitions for Low Priority Text Editor Updates&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Okay, a few more items. We had there was an article on using React transitions for low priority text editor updates. Most of, you&#39;re probably not needing to go out and update the implementation of a text editor. But someone who&#39;s worked on React Pros Mirror has some examples of how transitions were actually helpful for managing those. [01:00:26]&lt;/p&gt;
&lt;h2 id=&quot;how-to-steal-a-react-component-fiber-internals&quot;&gt;&lt;a href=&quot;https://fant.io/react/&quot;&gt;How to Steal a React Component&lt;/a&gt; (Fiber internals)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Meanwhile there was a post on how to steal a react component and you know, I believe the idea here was an extension that looks at react in the page and actually digs through the react fiber tree to not only see like what dom elements are in the page right now, but what component elements and props resulted in those. And essentially try to reverse engineer, here&#39;s the components that would have written the pieces of the page as they existed in the app that you&#39;re looking at. [01:00:46]&lt;/p&gt;
&lt;h2 id=&quot;better-ascii-rendering-with-smart-character-selection-for-pixels&quot;&gt;&lt;a href=&quot;https://alexharri.com/blog/ascii-rendering&quot;&gt;Better ASCII rendering with smart character selection for “pixels”&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And then unrelated to React, but absolutely amazing. I love really long blog posts with lots of interactive examples. Someone did a post on rendering a graphics with ASCI characters, which a lot of, you know, tools do, but analyzing the font weights in a given character cell to come up with better pixels. [01:01:20]&lt;/p&gt;
&lt;p&gt;So like if a, like, if the graphic should be lighter or darker using characters that occupy more or less of the character cell. It was just really cool to read this. [01:01:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. I think a one short summary of the change. A lot of asci rendering tools like that will consider it, you know, the character space as a pixel and just sort of think about whether a given character, you know, they think about it one dimensionally. It&#39;s how many pixels are illuminated with this character or that character. [01:01:54]&lt;/p&gt;
&lt;p&gt;And this adds different, this basically subsamples the characters to say, is this brighter at the top or the bottom on the left or the right? And like I gotta say, you know, it&#39;s got a bunch of animated, you know, demos and whatever, and it is clearly much, much, much better than other things that I&#39;ve seen. It&#39;s pretty cool. [01:02:13]&lt;/p&gt;
&lt;h2 id=&quot;building-a-js-runtime-in-one-month&quot;&gt;&lt;a href=&quot;https://themackabu.dev/blog/js-in-one-month&quot;&gt;Building a JS Runtime in One Month&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Somebody put out a blog post titled, building a JavaScript Runtime in one month. I love deep in the weeds engineering write-ups, and this is definitely one of those. But I have never even considered whether I might try to write a JavaScript runtime. [01:02:32]&lt;/p&gt;
&lt;p&gt;And so I feel very intimidated by the scope of engineering involved in this project. but [01:02:45]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; it even sounded like it was, you know, like, like not necessarily AI aided, at least I didn&#39;t see anything in the blog post that said they were using agents to do the work. I mean, there, there&#39;s also been a whole spate of let&#39;s have AI write a browser from scratch. Posts popping up over on Hacker News in the last month, and then I think I saw someone say they&#39;d done a fresh browser from scratch, NC plus, but it was all by hand or something. Wow, y&#39;all have too much time on your hands. [01:02:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, seriously, it&#39;s impressive. I&#39;m in awe of people who can do projects of this scope in that timescale. Like that&#39;s just wild. Anyway I approve. Very cool. [01:03:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Mm-hmm. [01:03:29]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Okay, that&#39;s our lightning round. We did it. . [01:03:30]&lt;/p&gt;
&lt;h2 id=&quot;conferences-react-javascript&quot;&gt;Conferences (&lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://confs.tech/javascript&quot;&gt;Javascript&lt;/a&gt;)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I&#39;m gonna blitz through a bunch of conferences. [01:03:33]&lt;/p&gt;
&lt;p&gt;There is C js in New Delhi in like th two, three weeks, 18th, 19th of February. State of the browser is February 28th in London. App devcon is March 10th through 13th in Amsterdam. [01:03:35]&lt;/p&gt;
&lt;p&gt;Programmable is a conference in both Melbourne and Sydney in Australia on March 17th and March 19th respectively. So it&#39;s, they&#39;re doing two days apart in different cities in Australia. That seems like a challenge, and it&#39;s kind of confusing to talk about [01:03:50]&lt;/p&gt;
&lt;p&gt;tech Fest is March 12th through 13th in Madrid, Spain. React Paris is March 26th and 27th in Paris. [01:04:05]&lt;/p&gt;
&lt;p&gt;Shockingly. [01:04:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; there [01:04:14]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Front Runners is March 27th in Washington DC React Native Connection is March 30th and 31st in Paris. City Js London is April 15th through 17th in London. Js Day is. April 9th and 10th in Bologna, Italy. [01:04:14]&lt;/p&gt;
&lt;p&gt;. Smashing Con Amsterdam is April 13th through 16th in Amsterdam and React Miami is April 22nd and 25th through 25th in Miami. [01:04:31]&lt;/p&gt;
&lt;p&gt;So yeah. [01:04:40]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; speaking there. [01:04:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Heck yeah. I should reach out and maybe give a talk somewhere. That would be cool and good for me. There&#39;s lots more, but that&#39;s, you know, that covers the next like three months, so seems good enough for now. [01:04:42]&lt;/p&gt;
&lt;h2 id=&quot;outro&quot;&gt;Outro&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Thank you everyone for joining us . We not Wednesday, we are recording on Friday due to some travel hiccups, but we will be back probably on the last Wednesday of February here in the live stage react complex or back in your podcast feed just as we could, can after that. most of these sources came from Mark again. It&#39;s been very nice having such a steady stream of source of news sources come through here in Reactiflux. And maybe we&#39;ll do a little bit more to make the community more anchored on the people who are trying to stay to the cutting edge. [01:04:56]&lt;/p&gt;
&lt;p&gt;I don&#39;t know, we&#39;ll see. But if you see anything newsworthy, definitely share that in the Tech News and Reads channel. &#39;cause we&#39;ll read it. And if it&#39;s newsworthy and interesting, we&#39;ll probably talk about it. If this is a show you get value from and wanna support, best way to do so is by telling someone else about it. [01:05:24]&lt;/p&gt;
&lt;p&gt;We are still not that large. An average show gets about 400 listens over a little over a month. So yeah, I like doing it. I like making it. It would be cool if it had a little bit broader support, broader listenership. I guess the support is there. Yeah. Thanks so much for listening. See you next month. [01:05:39]&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2026-01</link><guid isPermaLink="false">reactiflux-tmir-2026-01</guid><pubDate>Thu, 29 Jan 2026 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>TMiR 2025-12: Year in review, React2Shell (RCE, DOS, SCE, oh my)</title><description>&lt;iframe width=&quot;100%&quot; height=&quot;180&quot; frameborder=&quot;no&quot; scrolling=&quot;no&quot; seamless=&quot;&quot; src=&quot;https://share.transistor.fm/e/0f9a0980&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#introduction&quot;&gt;00:00&lt;/a&gt;]&lt;/code&gt; Introduction&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#main-content&quot;&gt;07:25&lt;/a&gt;]&lt;/code&gt; Main Content
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#react2shell-vulnerability&quot;&gt;07:32&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components&quot;&gt;React2Shell vulnerability&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#initial-announcement&quot;&gt;15:31&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.cve.org/CVERecord?id=CVE-2025-55182&quot;&gt;Initial announcement&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#followup-denial-of-service-cve-and-source-code-exposure-cve&quot;&gt;16:12&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react.dev/blog/2025/12/11/denial-of-service-and-source-code-exposure-in-react-server-components&quot;&gt;Followup denial-of-service CVE and source code exposure CVE&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#vercel-bulletin&quot;&gt;19:05&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://vercel.com/kb/bulletin/react2shell&quot;&gt;Vercel bulletin&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#cloudflare-report-on-exploit-attempts&quot;&gt;19:32&lt;/a&gt;]&lt;/code&gt; Cloudflare
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#cloudflare-report-on-exploit-attempts&quot;&gt;19:32&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://blog.cloudflare.com/react2shell-rsc-vulnerabilities-exploitation-threat-brief/&quot;&gt;Cloudflare report on exploit attempts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#cloudflare-outage-on-december-5-2025&quot;&gt;19:39&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://blog.cloudflare.com/5-december-2025-outage/&quot;&gt;Cloudflare outage on December 5, 2025&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#tech-analysis-flight-protocol&quot;&gt;20:58&lt;/a&gt;]&lt;/code&gt; Tech analysis: “Flight Protocol”&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#vuln-is-carefully-crafted-promise-deserialization--new-function-eval&quot;&gt;22:33&lt;/a&gt;]&lt;/code&gt; Vuln is carefully crafted Promise deserialization + &lt;code&gt;new Function&lt;/code&gt; eval&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#prs-initial-fixes-promise-cycles--function-tostring-more-promise-cycles&quot;&gt;23:14&lt;/a&gt;]&lt;/code&gt; PRs: &lt;a href=&quot;https://github.com/facebook/react/pull/35277&quot;&gt;Initial fixes&lt;/a&gt;, &lt;a href=&quot;https://github.com/facebook/react/pull/35345&quot;&gt;Promise cycles / function toString&lt;/a&gt;, &lt;a href=&quot;https://github.com/facebook/react/pull/35351&quot;&gt;more Promise cycles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#guillermos-breakdown&quot;&gt;24:09&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/rauchg/status/1997362942929440937&quot;&gt;Guillermo’s breakdown&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#shrutis-breakdown&quot;&gt;24:18&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://blog.logrocket.com/react2shell-exploit/&quot;&gt;Shruti’s breakdown&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#comms-critique&quot;&gt;26:14&lt;/a&gt;]&lt;/code&gt; Comms critique&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#react-is-rainbow-colored-function-types&quot;&gt;34:59&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/sh03.dev/post/3m7tz3zhl522f&quot;&gt;“React is rainbow colored (function types)”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#what-does-this-mean-for-react-and-rsc-adoption-going-forward&quot;&gt;35:39&lt;/a&gt;]&lt;/code&gt; What does this mean for React and RSC adoption going forward?&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#when-i-go-back-and-look-at-reactdev-now--it-feels-half-finished&quot;&gt;44:30&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/nearestnabors.com/post/3maa3cof5mh2w&quot;&gt;When I go back and look at react.dev now […] it feels half-finished&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#react-native-year-in-review&quot;&gt;49:14&lt;/a&gt;]&lt;/code&gt; React Native year in review
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#more-css-support&quot;&gt;49:54&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactnative.dev/blog/2025/01/21/version-0.77&quot;&gt;More CSS support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#expo-eas-hosting&quot;&gt;50:45&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://expo.dev/blog/expo-announces-eas-hosting-service&quot;&gt;Expo EAS hosting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#rn-078-react-19-support&quot;&gt;51:18&lt;/a&gt;]&lt;/code&gt; RN 0.78: &lt;a href=&quot;https://reactnative.dev/blog/2025/02/19/react-native-0.78&quot;&gt;React 19 support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#lynx-launched&quot;&gt;52:18&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://lynxjs.org/&quot;&gt;Lynx launched&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#rn-079-jsc-moving-to-community-package&quot;&gt;52:52&lt;/a&gt;]&lt;/code&gt; RN 0.79: &lt;a href=&quot;https://reactnative.dev/blog/2025/04/08/react-native-0.79&quot;&gt;JSC moving to Community Package&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#rn-080-freezing-the-legacy-architecture&quot;&gt;53:27&lt;/a&gt;]&lt;/code&gt; RN 0.80: &lt;a href=&quot;https://reactnative.dev/blog/2025/06/12/react-native-0.80&quot;&gt;Freezing the legacy architecture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#rn-081-android-16-support-for-edge-to-edge&quot;&gt;54:05&lt;/a&gt;]&lt;/code&gt; RN 0.81: &lt;a href=&quot;https://reactnative.dev/blog/2025/08/12/react-native-0.81&quot;&gt;Android 16 support for edge to edge&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#10-on-the-horizon&quot;&gt;54:36&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=GPtopk4y2LI&quot;&gt;1.0 on the horizon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#vega-os-launched&quot;&gt;55:35&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://developer.amazon.com/apps-and-games/vega&quot;&gt;Vega OS launched&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#rn-082-only-new-architecture&quot;&gt;56:22&lt;/a&gt;]&lt;/code&gt; RN 0.82: &lt;a href=&quot;https://reactnative.dev/blog/2025/10/08/react-native-0.82&quot;&gt;Only new architecture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#expo-app-awards&quot;&gt;56:50&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://expo.dev/blog/2025-expo-app-awards&quot;&gt;Expo App Awards&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#rn-083-new-devtools---no-breaking-changes&quot;&gt;57:39&lt;/a&gt;]&lt;/code&gt; RN 0.83: &lt;a href=&quot;https://reactnative.dev/blog/2025/12/10/react-native-0.83&quot;&gt;New Devtools - no breaking changes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#react-year-in-review&quot;&gt;01:00:27&lt;/a&gt;]&lt;/code&gt; React year in review
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#cra-deprecation-new-install-docs-vite&quot;&gt;01:00:32&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/reactjs/react.dev/pull/7495&quot;&gt;CRA deprecation&lt;/a&gt;, &lt;a href=&quot;https://react.dev/learn/build-a-react-app-from-scratch&quot;&gt;new install docs&lt;/a&gt; (Vite!)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#styled-components-deprecated&quot;&gt;01:01:35&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://opencollective.com/styled-components/updates/thank-you&quot;&gt;Styled Components Deprecated&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#releases-192-activity-useeffectevent-compiler-10&quot;&gt;01:01:59&lt;/a&gt;]&lt;/code&gt; Releases: &lt;a href=&quot;https://github.com/facebook/react/releases/tag/v19.2.0&quot;&gt;19.2&lt;/a&gt; (Activity, useEffectEvent), &lt;a href=&quot;https://react.dev/blog/2025/10/07/react-compiler-1&quot;&gt;Compiler 1.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#research-view-transitions-canary-perf-concurrent-stores-throw-a-promise-deprecated-but-not-merged-yet&quot;&gt;01:02:39&lt;/a&gt;]&lt;/code&gt; Research: &lt;a href=&quot;https://react.dev/blog/2025/04/23/react-labs-view-transitions-activity-and-more#view-transitions&quot;&gt;View Transitions canary, perf, concurrent stores&lt;/a&gt;, &lt;a href=&quot;https://github.com/facebook/react/pull/34032&quot;&gt;“throw a promise” deprecated&lt;/a&gt; (but not merged yet)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#async-react-and-the-ecosystem&quot;&gt;01:03:00&lt;/a&gt;]&lt;/code&gt; “&lt;a href=&quot;https://github.com/reactwg/async-react&quot;&gt;Async React&lt;/a&gt;” and the ecosystem&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#react-foundation&quot;&gt;01:03:41&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react.dev/blog/2025/10/07/introducing-the-react-foundation&quot;&gt;React Foundation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#react-growth-skyrockets&quot;&gt;01:04:53&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/sebastienlorber.com/post/3mabj2vg23c2l&quot;&gt;React growth skyrockets&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#react-router-rsc-support-tanstack-start-wip-rsc-waku&quot;&gt;01:06:05&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://remix.run/blog/rsc-preview&quot;&gt;React Router RSC support&lt;/a&gt;, &lt;a href=&quot;https://x.com/tannerlinsley/status/1983999424486633931&quot;&gt;TanStack Start WIP RSC&lt;/a&gt;, &lt;a href=&quot;https://waku.gg/&quot;&gt;Waku&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#dans-rsc-explainers-he-had-a-bunch-of-things-to-say&quot;&gt;01:06:37&lt;/a&gt;]&lt;/code&gt; Dan’s RSC explainers (he &lt;a href=&quot;https://overreacted.io/jsx-over-the-wire/&quot;&gt;had&lt;/a&gt; &lt;a href=&quot;https://overreacted.io/impossible-components/&quot;&gt;a&lt;/a&gt; &lt;a href=&quot;https://overreacted.io/what-does-use-client-do/&quot;&gt;bunch&lt;/a&gt; &lt;a href=&quot;https://overreacted.io/one-roundtrip-per-navigation/&quot;&gt;of&lt;/a&gt; &lt;a href=&quot;https://overreacted.io/progressive-json/&quot;&gt;things&lt;/a&gt; to say)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#remix-v3-not-react-but-relevant&quot;&gt;01:07:07&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://remix.run/blog/remix-jam-2025-recap&quot;&gt;Remix v3&lt;/a&gt; (not React but relevant)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#mark-went-from-frustrated-cra-to-excited-reactconf-foundation-team-efforts&quot;&gt;01:08:08&lt;/a&gt;]&lt;/code&gt; Mark went from frustrated (&lt;a href=&quot;https://blog.isquaredsoftware.com/2025/06/react-community-2025/&quot;&gt;CRA&lt;/a&gt;) to excited (ReactConf, foundation, team efforts&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#-lightning-round-&quot;&gt;01:12:19&lt;/a&gt;]&lt;/code&gt; ⚡ Lightning round ⚡
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#ts-7-progress-update&quot;&gt;01:12:24&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://devblogs.microsoft.com/typescript/progress-on-typescript-7-december-2025/&quot;&gt;TS 7 progress update&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#npm-classic-tokens-revoked&quot;&gt;01:13:17&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.blog/changelog/2025-12-09-npm-classic-tokens-revoked-session-based-auth-and-cli-token-management-now-available/&quot;&gt;NPM classic tokens revoked&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#github-actions-planned-work&quot;&gt;01:16:06&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/jaredpalmer/status/1998821983904243918&quot;&gt;GitHub Actions planned work&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#github-action-pricing-change-and-immediate-about-face&quot;&gt;01:17:44&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://resources.github.com/actions/2026-pricing-changes-for-github-actions/&quot;&gt;Github Action pricing change&lt;/a&gt; and &lt;a href=&quot;https://x.com/jaredpalmer/status/2001373329811181846&quot;&gt;immediate about-face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#stacked-diffs-proposal-in-the-works&quot;&gt;01:19:40&lt;/a&gt;]&lt;/code&gt; Stacked diffs &lt;a href=&quot;https://x.com/jaredpalmer/status/1999525369725215106&quot;&gt;proposal in the works&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#anthropic-bought-bun&quot;&gt;01:22:42&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bun.com/blog/bun-joins-anthropic&quot;&gt;Anthropic bought Bun&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#svg-clickjacking-svg-filters-as-logic-gates&quot;&gt;01:24:52&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://lyra.horse/blog/2025/12/svg-clickjacking/&quot;&gt;SVG Clickjacking&lt;/a&gt; (SVG filters as logic gates??)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#dan-abramovs-rsc-explorer-accompanying-blogpost&quot;&gt;01:28:16&lt;/a&gt;]&lt;/code&gt; Dan Abramov’s &lt;a href=&quot;https://rscexplorer.dev/&quot;&gt;RSC Explorer&lt;/a&gt;, &lt;a href=&quot;https://overreacted.io/introducing-rsc-explorer/&quot;&gt;accompanying blogpost&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#instant-loading-github-repo-explorer-using-rscs-without-the-blue-bar&quot;&gt;01:28:36&lt;/a&gt;]&lt;/code&gt; Instant-loading Github repo explorer using RSCs: &lt;a href=&quot;https://wtbb.vercel.app/&quot;&gt;Without the blue bar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#react-routers-take-on-rscs&quot;&gt;01:29:10&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.epicreact.dev/react-routers-take-on-react-server-components-4bj7q&quot;&gt;React Router’s Take on RSCs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#how-ai-coding-agents-hid-a-timebomb-in-our-app&quot;&gt;01:29:19&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://acusti.ca/blog/2025/12/09/how-ai-coding-agents-hid-a-timebomb-in-our-app/&quot;&gt;How AI Coding Agents hid a Timebomb in Our App&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#react-compilers-silent-failures-and-how-to-fix-them&quot;&gt;01:30:58&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://acusti.ca/blog/2025/12/16/react-compiler-silent-failures-and-how-to-fix-them/&quot;&gt;React Compiler’s Silent Failures (And How to Fix Them)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#great-history-of-web-dev-30-years-of-br-tags&quot;&gt;01:31:36&lt;/a&gt;]&lt;/code&gt; Great history of web dev: &lt;a href=&quot;https://www.artmann.co/articles/30-years-of-br-tags&quot;&gt;30 Years of &lt;br&gt; Tags&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#nadia-makarevichs-latest-deep-dive-bundle-size-investigation&quot;&gt;01:32:17&lt;/a&gt;]&lt;/code&gt; Nadia Makarevich’s latest deep dive: &lt;a href=&quot;https://www.developerway.com/posts/bundle-size-investigation&quot;&gt;Bundle Size Investigation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#extensive-es2026-feature-preview&quot;&gt;01:33:35&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://thenewstack.io/es2026-solves-javascript-headaches-with-dates-math-and-modules/&quot;&gt;Extensive ES2026 feature preview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#react-reconciler-for-blender-3d&quot;&gt;01:34:53&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://romanliutikov.com/blog/driving-3d-scenes-in-blender-with-react&quot;&gt;React reconciler for Blender 3D&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#the-why-of-react-fiber&quot;&gt;01:35:31&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/infinterenders/status/1997359890021634509&quot;&gt;The “why” of React Fiber&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-12#async-react-articles-from-aurora-scharff-and-jack-herrington&quot;&gt;01:37:21&lt;/a&gt;]&lt;/code&gt; Async React articles from &lt;a href=&quot;https://blog.logrocket.com/the-next-era-of-react/&quot;&gt;Aurora Scharff&lt;/a&gt; and &lt;a href=&quot;https://blog.logrocket.com/react-19-2-the-async-shift/&quot;&gt;Jack Herrington&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Hello everyone. Thank you for joining us for this edition of this year in React, since it&#39;s the December edition of this month in React, as we&#39;re gonna recap what&#39;s going on with React, React Native and the web more generally, or I guess really what has happened, what has been going on through 2025, just to give you a little rich perspective. [00:00]&lt;/p&gt;
&lt;p&gt;Although we do have so much new stuff to talk about this month, so that&#39;s gonna be a little bit goofy too. We gotta balance both. We&#39;re actually planning on doing a longer episode than usual this month, mark and I are gonna hang out for closer to 90 minutes. Mo&#39;s got to leave at an hour. [00:17]&lt;/p&gt;
&lt;p&gt;But yeah. Let&#39;s get into it. I&#39;m Carl, I&#39;m a staff product developer and freelance community leader here at Reactiflux, or I run community programs like this and build tools like a moderation bot that is growing steadily more complicated. [00:30]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Hi, I&#39;m Mark. My day job is working at Replay. My second unpaid job is working on Redux related things. And my third unpaid job is copy pasting links like crazy. [00:44]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; And my name is Mo. I head the mobile team at Thedo in the uk. And I am a member of the React Native community who organizes meetups, like the React Native London Meetup. And I also organized the RNL Conf, which just happened last month and was great fun. [00:55]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. A leader in the React Native community. I&#39;d even go so far as to say, [01:10]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I would say member Member is, and member humility is good. [01:14]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; yes it is. Okay, fine. A steward. [01:17]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I, I appreciate you, Carl, as always. [01:20]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Let&#39;s get into some new releases. Base UI has a v1 release candidate coming on. Yeah. I actually got a chance to speak to the maintainer of Base UI at React Con briefly. I hadn&#39;t realized it, but it is like fully a relaunch of, oh, I&#39;m blanking on the other LI library that they were [01:22]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; doing. [01:42]&lt;/p&gt;
&lt;p&gt;Redx, [01:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yes. [01:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; or, or, or equivalent of Redx. [01:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; yes. So apparently Base UI is a relaunch of Radix, essentially because the team got acquired, the RAD X team got acquired. They were given verbal promises that they would be allowed to continue maintaining it as part of their full-time responsibilities. And that was not true and they did not have a contract saying it. [01:46]&lt;/p&gt;
&lt;p&gt;So, they have relaunched under a new project, which is unfortunate, but also great. I don&#39;t know, sometimes it&#39;s nice to get another chance to do the thing from scratch again. I guess. So anyway, they&#39;ve got a v1 release candidate coming out, which is cool. [02:06]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Next up we have React Native version 0.83, which is very exciting for a few reasons. I&#39;ll start from the somewhat non-obvious reason, but it&#39;s also a good one worth mentioning, which is there are no breaking changes in this, and I cannot stress how important that is for a React Native version release because, every single time you update a React Native version, it&#39;s typically, at least, especially in the past, had a reputation that it is a painful process and you&#39;re gonna need to change a lot in your app to make it work. [02:21]&lt;/p&gt;
&lt;p&gt;And not having any breaking changes is super cool, like, like big props to the React Native Core team for doing this. And so, super, super cool. And , I&#39;m excited to see this as the direction that we&#39;re going with releases, which kind of makes sense when you go back to what we heard at React Conf , and React universe conf other things in this release. [02:49]&lt;/p&gt;
&lt;p&gt;The new dev tools , is something that&#39;s been in the works for a very long time. And Alex Hunt and some of the other folks at Meta have been working on this for a really long time. We got demos of it earlier. And they&#39;ve been working more and more on this and adding things like performance tracing and network inspections. [03:07]&lt;/p&gt;
&lt;p&gt;So we saw a lot of these as demos earlier, but now it&#39;s really, really coming through and uh, we&#39;re seeing it in production, which is awesome. So a lot of cool stuff and some other stuff that I won&#39;t go into in the interest of time, but massive props to the meta team for getting this out. [03:21]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. And I believe they gave a pretty big demo of the dev tools at React Conf. Is that right? [03:33]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Yep. But they&#39;ve also been demoing it from last year at React Universe Con, so it&#39;s been, there&#39;s been a long time since 2024. They&#39;ve been demoing this and there&#39;s teasers of it coming out at some point. So it&#39;s been in the making for a while. Obviously, it&#39;s been getting more and more mature and more ready for sort of a production release out to everyone. [03:40]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; sure. It wouldn&#39;t surprise me if there&#39;s some overlap with the new architecture too. &#39;cause if you&#39;re gonna totally change how the internals work, then doing instrumentation and developer tool stuff is really hard. So that makes [03:58]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; some tools were really painful before these new dev tools like Flipper, the React Native support got deprecated, was notoriously difficult [04:10]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; use. So [04:17]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; this is a move in the right direction. Obviously. There was a, there was much demand for it. [04:18]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; very cool. [04:22]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Next up the, the last couple months we&#39;ve mentioned that Christophe Nakazawa had been posting teasers on Twitter for a new data fetching library that he was calling fate. And so he&#39;s put out the first alpha of that. The main ideas are, it&#39;s got some graph QL like features in terms of components specifying what pieces of data they actually need and being able to sub-select pieces of data. [04:22]&lt;/p&gt;
&lt;p&gt;But it&#39;s a wrapper layer on top of TRPC, so, it&#39;ll be interesting to see how this one actually compares in practice to the 15 million other data fetching libraries out there. But nice to see another new approach. Meanwhile, the void zero folks have several different new and alpha and beta releases coming out. [04:47]&lt;/p&gt;
&lt;p&gt;The oxalate linting tool has, and now has support for type aware linting with the Ts go native build built in. And OX format tool has its first alpha they say it is essentially almost entirely prett or compatible I think, maybe not this release, but a future one. They&#39;re working to include tailwind formatting support as well, so, faster tools. [05:06]&lt;/p&gt;
&lt;p&gt;Very good. Then along with that V eight is in beta and this is the release that will include the roll down rust base build tool replacing ES build and roll up. So they are very, very busy cranking along on all the different pieces of their ecosystem. [05:33]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. I guess Tan Stack is also exploring and they&#39;re, they&#39;ve released an alpha of an ai, SDK yeah, I don&#39;t know. Ai. SDK is so hot right now, or so hot a year ago. This, this is a bit of a late entry into that market. But Tan Stack, Tanner Linsley generally has done so many great things that I&#39;m, oh, you know, I&#39;ll see what he do. [05:53]&lt;/p&gt;
&lt;p&gt;I&#39;ll see what he does here. He&#39;s got good opinions about developer experience and the contracts we interact with. Yeah, [06:12]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I, talked to him at, at React summit when he was. Dropping hints that this was in the works, and he said like, it wasn&#39;t even something that he was intending to do himself originally, and supposedly a lot of folks from the ecosystem asked if Tan Stack would build an alternative to the Vercel AI SDK, just so there was competition, and that, the main entry here wasn&#39;t just owned by Vercel. And trying to take the same vendor agnostic and fully typed approach that all the other Tan Stack tools use. [06:20]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; that&#39;s so, so important. I&#39;m, and I&#39;m glad someone else is doing that. having the option to have something like Tanex start as a, another way to handle this is just so good for the ecosystem. And I am glad that someone&#39;s tackling the AI SDK space because. Yeah, competition&#39;s great. [06:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, no, it, it totally agree. I don&#39;t know. It&#39;s feels very good to have a legitimate community maintained option that&#39;s not, like, great Google&#39;s doing it, Facebook&#39;s doing it, everyone has their own thing, but like, really nice to have one that&#39;s open source first, so that&#39;s good. [07:10]&lt;/p&gt;
&lt;h2 id=&quot;main-content&quot;&gt;Main Content&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yes. Okay. Let&#39;s get into our main content, starting with can anyone guess it&#39;s gonna be the React2Shell vulnerability? [07:25]&lt;/p&gt;
&lt;h2 id=&quot;react2shell-vulnerability&quot;&gt;&lt;a href=&quot;https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components&quot;&gt;React2Shell vulnerability&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; The biggest news in a very long time, What happened? It was a major, major remote code execution vulnerability in RSCs where you didn&#39;t even need to be using RSCs for your app to be vulnerable. [07:32]&lt;/p&gt;
&lt;p&gt;If the server supported it, then an attacker could send a specific payload to your server and get a remote code execution. It&#39;s real bad. This is Like the fact that not only is it full remote code execution, but combined with the fact that you don&#39;t even need to be taking advantage of the feature, it just needs to be enabled in your environment is pretty bad. [07:48]&lt;/p&gt;
&lt;p&gt;That&#39;s pretty bad. Actually, in the ensuing drama. So a uh, longtime, serial entrepreneur in the community was posting about like &quot;uhoh, I think I&#39;m vulnerable. Uhoh. Yep. I got exploited uhoh. My docker is also vulnerable to a recent vulnerability that enabled container escape.&quot; So like it turned, just like researching this React vulnerability combined with some other recent container vulnerability they were exposed to let an attacker not only get into their system, but escape the containment of what is supposed to be a security layer there. [08:12]&lt;/p&gt;
&lt;p&gt;So, yeah. Oof. it&#39;s been a bad six weeks. No, it&#39;s been a bad year. It&#39;s been a really bad year for computer security. Like, holy shit. [08:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; How many different problems have we listed like there were, we&#39;ll talk about it more later, but Next middleware bypass, NPM Hacks, NX React2Shell, like the JSD ecosystem is hurting. [08:55]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I think we&#39;ve heard anything quite as bad as this. Like as in the industry since the big job of vulnerability in 22? [09:07]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I, think It I I think that was Log2Shell maybe. [09:14]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; was like that was the last [09:17]&lt;/p&gt;
&lt;p&gt;big where you heard about it all over where people could exploit Java spring applications. So people were just exploiting backends left, right, and center, and it was a serious critical vulnerability. [09:19]&lt;/p&gt;
&lt;p&gt;I think this is like like as bad if not worse, and there hasn&#39;t been anything quite the severe since then that I can recall making news like this. [09:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, You get one of these [09:36]&lt;/p&gt;
&lt;p&gt;every couple years. &#39;cause Log2Shell was definitely one of them. I remember Heartbleed 10 years ago. these do happen. It&#39;s never good when it&#39;s your ecosystem. I don&#39;t know. thing I said is, serious vulnerabilities like this, they don&#39;t necessarily, they don&#39;t really what, what I take away from it or what I recommend people take away from it is not, this tool is insecure. These people maintaining it are idiots. [09:38]&lt;/p&gt;
&lt;p&gt;Like, no, this is, security is really fucking hard to get right. It is an adversarial space where, as brilliant as you are, your primary task is not making something impenetrable. Like that is second a secondary goal of anything you&#39;re doing as a software developer if you are not a paid full-time security engineer. And doing something useful it is just really hard without introducing vulnerabilities like that. [10:06]&lt;/p&gt;
&lt;p&gt;So the line that I like is that CVEs, like a critical CVE doesn&#39;t mean that it&#39;s insecure. It means that it&#39;s worth targeting. &#39;cause most tech is insecure. Like if unless you have dedicated significant resources towards hardening it, it&#39;s insecure, like definitely a hundred percent. [10:32]&lt;/p&gt;
&lt;p&gt;So the fact that it took this long for it to get revealed to me says that they have done hardening work, they have put effort into making it secure. And because they put that effort in, the actual vulnerability was complicated enough that it took several years before somebody actually figured it out. [10:52]&lt;/p&gt;
&lt;p&gt;And also I&#39;ll say, I know that I, I saw a tweet from uh, Malte Ubl, the CTO of Vercel you know, engineering leadership at Vercel saying that in the wake of this they did a bug bounty hackathon and ended up paying like $750,000 in bounties out. Presumably that&#39;s a long laundry list of like minor vulnerabilities. [11:12]&lt;/p&gt;
&lt;p&gt;I don&#39;t, I don&#39;t believe they&#39;ve commented publicly about what exact [11:33]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I, I think, I think that one may have been somewhat related to Elle&#39;s application firewall rules that they, that [11:36]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; So this is their consumer facing security tool to make it. More protected and they found a whole bunch of new ways to make it safer is what it sounds like. [11:44]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Mm-hmm. [11:52]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool. Yeah. Great. Yeah, I guess to say a little bit more about where this vulnerability came from and why it was so serious, like this level of vulnerability is fairly rare and JavaScript, I would say largely because in general , the types of code that have a greater risk of introducing this type of vulnerability, usually you&#39;ll just farm it out to a different, something that&#39;s already been battle tested and hardened in that way. [11:53]&lt;/p&gt;
&lt;p&gt;Specifically why this happened is because, so React is basically a scheduler at this point. It&#39;s scheduling work. It is, competing with V8 and other JavaScript run times in order to do scheduling of execution. That&#39;s just like, as they were building React and realizing the performance snafus they were running into, like they realized, oh shit, we have to write a scheduler. [12:21]&lt;/p&gt;
&lt;p&gt;And that was, do you remember what the code name for that was? Mark? [12:44]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; That was fiber. [12:47]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; So like that was React Fiber. It was, &quot;we&#39;re turning React into a scheduler.&quot; Now server components are , basically building on top of that. It&#39;s saying, okay, we built a scheduler. Now we&#39;ve realized that in order to provide the kind of experiences we want to be enabled to offer, we think that we have to transcend the network boundary and be able to schedule work not just on the client but across the client. [12:48]&lt;/p&gt;
&lt;p&gt;We need to be able to pause execution on the server, put it in a little box, send it across the network, then open the box and pick up right where we left off on the client. And that&#39;s fucking hard. So like they already built their own scheduler, so like that&#39;s bespoke. You can&#39;t just use existing tools for it because they made it. [13:13]&lt;/p&gt;
&lt;p&gt;the reason this vulnerability came in is because as part of pausing execution, bundling it up and shipping it somewhere else, that&#39;s serializing it. That is serializing a complex set of execution state. And where else have we talked about serialization being a major ecosystem level? Project, it&#39;s the React Native new architecture. So like this is the same problem. Serializing is slow. It&#39;s vulnerable because you&#39;re taking data and if you wanna make it as compact as possible, you have to invent a binary format. [13:33]&lt;/p&gt;
&lt;p&gt;And as soon as you do stuff in binary, that&#39;s really dangerous because people can structure payloads so that the binary data lines up in just such a way that a naive interpreter on the other end of it that opens, it goes, oh, I know what this is, runs it, and oops, then you&#39;ve got like a shell escape or like a terminated memory before or after you just like, that&#39;s, how you get all of these most serious vulnerabilities is a binary formatted data source gets deserialized, and somebody tricks that deserializing process into thinking that something different than was actually sent is there. [14:09]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; We&#39;ll dive a little more into the, technical aspects of this later. But big picture is the, the flaw itself was in the serialization deserialization logic, which was written in order to be able to handle serializing and deserializing And because it was generic code in the sense that it was meant to handle, conceptually any piece of data, carefully crafted input could, when revived , run as promises get turned into a function, constructor escape the sandboxing. [14:46]&lt;/p&gt;
&lt;p&gt;And next thing the attacker is running arbitrary JavaScript code within the context of your server. And then very bad things happen. [15:22]&lt;/p&gt;
&lt;h2 id=&quot;initial-announcement&quot;&gt;&lt;a href=&quot;https://www.cve.org/CVERecord?id=CVE-2025-55182&quot;&gt;Initial announcement&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So the initial announcement came out it was timed with a bunch of fixes from all the different RSE frameworks. So, clearly the, the work had been done behind the scenes for coordinated disclosure and fixes. [15:31]&lt;/p&gt;
&lt;p&gt;All the major hosting platforms for CloudFlare, Dino Netlify also immediately came out with application firewall rules to try to block, what they knew about the attack at the time. And as Carl said, once someone knows that there&#39;s vulnerabilities in a certain system, everyone else in the penetration security space is gonna swarm and look for other potential issues in thing. [15:45]&lt;/p&gt;
&lt;h2 id=&quot;followup-denial-of-service-cve-and-source-code-exposure-cve&quot;&gt;&lt;a href=&quot;https://react.dev/blog/2025/12/11/denial-of-service-and-source-code-exposure-in-react-server-components&quot;&gt;Followup denial-of-service CVE and source code exposure CVE&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And so that&#39;s why the next day there was a second set of announcements saying that two more new CVEs had been discovered. One was a denial of service attack where React would try to infinitely revive a series of fake promises. And then the other one was a source code exposure vulnerability, where crafted input could force the API to return the contents of a server function that you had written on your backend. we had the one truly bad CVE, the remote code execution. And then as other people looked at what was the fix, what was the area, what&#39;s going on, what else can we find? A couple of additional follow on things were discovered. And you know, as Carl said, it&#39;s, yeah, those were there, but it&#39;s also, and now people are looking for them because there&#39;s the potential for more problems. [16:12]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; If you can do a remote code execution, that probably means you can do other things most likely, very proximal to that same vulnerability because like so much of it relies on manipulating the binary encoding. That , that smells like . If you can do that, you can do other things. So I&#39;m not surprised to find that they found other things. [17:07]&lt;/p&gt;
&lt;p&gt;I will say like remote code execution, source code exposure, and denial of service. Like, oh, that&#39;s rough. That&#39;s like the trifecta of things you don&#39;t want to happen. So yeah, finding all of them, it&#39;s like now we know that they&#39;re not there in that way at least. So like great. To me this builds trust a little bit. I actually chatted briefly with Ricky Hanlon in the wake of this and asked what kind of security hardening they have, what&#39;s kind of security review they have done as part of designing this. [17:25]&lt;/p&gt;
&lt;p&gt;Because, like I said, like Serializing deserializing is a well-known dangerous place to be. It&#39;s a dangerous place to find yourself. Like there are projects that I&#39;ve not done because I realized like, oh, in order to do this, I&#39;m gonna have to touch binary stuff. And that gets really hairy and you have to do that very delicately. [17:58]&lt;/p&gt;
&lt;p&gt;So like that to say like, there are smart people on the React core team. Like they absolutely knew this was a risk. And I&#39;m curious to hear more details about what mitigation they&#39;ve done over the last, six years that server components have been in development in one form or another. Yeah, so Ricky Hanlon said that he&#39;d do some research on that and include it in the post-mortem blog post, but I, I haven&#39;t seen the post-mortem blog post yet, so [18:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So , this happened in what, December? 11th ish, I think. [18:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. second pair of vulnerabilities was the 11th. First one was the third. [18:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Okay. we had the initial announcement, which was dubbed React2Shell. Vercel has put together a, a very comprehensive set of details on what happened. looks like December 3rd. December 4th was when the initial announcements came out. [18:51]&lt;/p&gt;
&lt;h2 id=&quot;vercel-bulletin&quot;&gt;&lt;a href=&quot;https://vercel.com/kb/bulletin/react2shell&quot;&gt;Vercel bulletin&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Vercel&#39;s bulletin has a lot of info on the timeline and how to fix things, which is basically upgrade to the latest version of any React based framework. [19:05]&lt;/p&gt;
&lt;p&gt;Now, if you haven&#39;t already done so. And they provide instructions on how to do that. In the wake of all this, we&#39;ve already seen the vulnerabilities being exploited. Carl mentioned a Reactiflux community member who got hacked as a result. [19:15]&lt;/p&gt;
&lt;h2 id=&quot;cloudflare-report-on-exploit-attempts&quot;&gt;&lt;a href=&quot;https://blog.cloudflare.com/react2shell-rsc-vulnerabilities-exploitation-threat-brief/&quot;&gt;Cloudflare report on exploit attempts&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; CloudFlare put out a post detailing. &quot;Yeah. We&#39;re, seeing this getting used in a lot of penetration scans.&quot; [19:32]&lt;/p&gt;
&lt;h2 id=&quot;cloudflare-outage-on-december-5-2025&quot;&gt;&lt;a href=&quot;https://blog.cloudflare.com/5-december-2025-outage/&quot;&gt;Cloudflare outage on December 5, 2025&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; An interesting side effect of this was CloudFlare had already had a dashboard problem when they DDoS themselves with a use effect and then they. They also had an issue with something else on their backend. I think second or third outage then happened when they tried to roll out a change to buffer sizes in relation to fixing React2Shell, and made themselves go down again for another half an hour. [19:39]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; , it&#39;s funny how these seem to be kind of unforced errors on Cloudflare&#39;s part, like Yeah. , they also were like Johnny on the spot with a blog post saying, we&#39;ve got a web application firewall that will prevent the worst of this from happening. And then like, took themselves down for a couple of hours. [20:08]&lt;/p&gt;
&lt;p&gt;I was reading the, the writeup of this and it sounds like they started seeing elevated errors in a tool that was related to determining production errors. It was a tool partially designed to help avoid the risk of outages. They started seeing error rates rise in that and we&#39;re like, nah, this is fine. [20:26]&lt;/p&gt;
&lt;p&gt;We&#39;re gonna keep going. That, so that seems a little like an unforced, self-owned there, which is un. Silly to me, given how smart me they came across at the very beginning of this vulnerability. Anyway, I&#39;m just giggling at them. [20:46]&lt;/p&gt;
&lt;h2 id=&quot;tech-analysis-flight-protocol&quot;&gt;Tech analysis: “Flight Protocol”&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Okay. Some tech analysis. I guess I did sort of an abstract tech analysis, but let&#39;s get deeper in. [20:58]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; The React team is very fond of their project code names that start with f They, they&#39;ve literally got like two or three dozens of them. So, fiber was the React 16 rewrite. So React Flight is the code name for most of the work that has to do with implementing server components. And so the flight protocol is their custom serialization and deserialization technique that is meant to encode not just data, like , it can, serialize JavaScript objects and, more advanced values like dates and promises and stuff. [21:04]&lt;/p&gt;
&lt;p&gt;But it also encodes a lot of the semantics of react components themselves. Like when you put a suspense in there, it puts in a placeholder value that says this will be filled in later, and so on. So there&#39;s many other like advanced JavaScript serialization libraries out there like &lt;code&gt;cereal&lt;/code&gt;, but they built their own because they specifically needed it to handle react related concepts, not just , the data. And so ultimately the vulnerability is in this flight protocol implementation. Not the data format per se, but the process of doing the deserialization. And so because of that, it&#39;s a core part of RSC functionality itself, not specific to any one framework, which is why all the RSC frameworks were affected. [21:42]&lt;/p&gt;
&lt;h2 id=&quot;vuln-is-carefully-crafted-promise-deserialization--new-function-eval&quot;&gt;Vuln is carefully crafted Promise deserialization + &lt;code&gt;new Function&lt;/code&gt; eval&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, so I guess the vulnerability here is a carefully crafted promise des serialization and a function eval. [22:33]&lt;/p&gt;
&lt;p&gt;So the danger there, like function eval. one of the JavaScript concepts they&#39;re trying to serialize is executable code dangerous. this is why if you, this is why you don&#39;t use eval. This is why like eval has lint rules saying never use this because &#39;cause it&#39;s so fucking dangerous. So it&#39;s not literally eval in this case. [22:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; It&#39;s not the eval keyword, but new function and, and passing in a, a string is essentially the same thing. [23:03]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Slightly different semantics, but essentially the same thing. Executing untrusted code. [23:09]&lt;/p&gt;
&lt;h2 id=&quot;prs-initial-fixes-promise-cycles--function-tostring-more-promise-cycles&quot;&gt;PRs: &lt;a href=&quot;https://github.com/facebook/react/pull/35277&quot;&gt;Initial fixes&lt;/a&gt;, &lt;a href=&quot;https://github.com/facebook/react/pull/35345&quot;&gt;Promise cycles / function toString&lt;/a&gt;, &lt;a href=&quot;https://github.com/facebook/react/pull/35351&quot;&gt;more Promise cycles&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; There were three major fixed prs. The first one has the fix for the actual remote code execution vulnerability, and they snuck the fix into a larger PR that did a bunch of other refactoring to try to add just a little more obscurity with what was going on. But I, I saw people quickly identifying which bit of that PR was the actual error. [23:14]&lt;/p&gt;
&lt;p&gt;Basically it boiled down to a couple lines that had like, looking up &lt;code&gt;module[name].something else&lt;/code&gt;. And so just like a generic object field lookup with user provided input for the field names. And the fix was essentially adding a object has own property [23:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; check [24:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; around that. And so there were a couple very good breakdowns. [24:05]&lt;/p&gt;
&lt;h2 id=&quot;guillermos-breakdown&quot;&gt;&lt;a href=&quot;https://x.com/rauchg/status/1997362942929440937&quot;&gt;Guillermo’s breakdown&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Guillermo Rauch, CEO of Vercel posted a, a tweet where he went into some detail on what the actual vulnerability issue itself was. [24:09]&lt;/p&gt;
&lt;h2 id=&quot;shrutis-breakdown&quot;&gt;&lt;a href=&quot;https://blog.logrocket.com/react2shell-exploit/&quot;&gt;Shruti’s breakdown&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And then Shruti Kapoor had another very good breakdown, and I saw a few others being posted as well. It&#39;s one of those things where on the one hand, you look at it and it&#39;s like, okay, if you think about it, this is a generic object lookup with user provided input. [24:18]&lt;/p&gt;
&lt;p&gt;And at no point was that user provided input sufficiently checked and someone figured out the right sequence to make it happen. On the other hand, Ricky Hanlon also made the comment that figuring this out and crafting the input was incredibly advanced. Like, yeah, in hindsight, maybe some of this looks really simple and obvious, but as Carl said, like it, it took years for anyone to look down far enough and realize that this particular bit of code was vulnerable in [24:36]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. It&#39;s funny, I&#39;m reading this, Shruti Kapoor&#39;s writeup of it, and it really reminds me of SVG, , the way this is encoded reminds me of how SVG is encoded. , line one is M1 colon and then a bunch of data. M is a means, this is a module one is the ID for this module. Like, &quot; J0, this is a json chunk with root component ID zero.&quot; [25:06]&lt;/p&gt;
&lt;p&gt;So I don&#39;t know. That&#39;s interesting it rhymes with something I&#39;ve noticed in my career is like, I did some really cool, fun stuff with SVG because when you start looking at the details of how things are encoded, like this, you can do some really interesting things. [25:30]&lt;/p&gt;
&lt;p&gt;It&#39;s like all the tools will generate a certain type of valid thing based in some assumption, but when you start actually looking at what they&#39;re producing and doing it yourself, you find interesting stuff. So, I don&#39;t know, that&#39;s just, that&#39;s what the security researcher did is instead of relying on the compiler to do output for him, he tore it apart, looked at how it actually worked, and then went, &quot;Oh hey, this lets you get arbitrary modules and extract whatever thing you want off it. I bet you can do something interesting with that.&quot; Yeah. [25:44]&lt;/p&gt;
&lt;h2 id=&quot;comms-critique&quot;&gt;Comms critique&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I&#39;m curious as to what you guys think about this. Like, I, I&#39;m looking at , the sort of, the quote from Ricky and part of me is like, I appreciate it. It, it is very complex, attack that you need to coordinate at the same time, it feels a little bit, shrugging of the issue, which was a very key, core vulnerability. [26:14]&lt;/p&gt;
&lt;p&gt;Right. it&#39;s almost like in contrast to CloudFlare, where they&#39;re like, &quot;we fucked up. We know we fucked up. We let you guys down. We&#39;ve lost your trust.&quot; Granted they&#39;ve had to do that a few times now, but , the point is , it just feels a little bit immature to brush it off to say, I don&#39;t know, maybe this is just my opinion. [26:31]&lt;/p&gt;
&lt;p&gt;I&#39;m keen to hear what you guys think from like a how should open source slash big tech companies handle when I say open source slash big tech? &#39;cause it&#39;s effectively when speaks, kind of speaking on behalf of Meta, right. Whether he likes or not. And it&#39;s like, I don&#39;t think that that&#39;s a constructive way to look at it, to be like, it&#39;s quite complex. [26:48]&lt;/p&gt;
&lt;p&gt;That&#39;s why CVEs are discovered. Hackers and bounty hunters are the best people to discover this. It&#39;s like, not quite like, you guys are the maintainers. You should look out for it. It feels a little bit like shrugging off a very, very, very core issue that happened in ecosystem. [27:06]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So on the one hand I think from a, like a security response perspective, the React team and all the rest of the, the hosting companies have done the right thing. There was, some private disclosure happened. Everybody worked out the patches, had the firewall rules ready to go. [27:21]&lt;/p&gt;
&lt;p&gt;There was a coordinated release so that at the moment this was publicized, like, there was immediate protection and fixes of Ill, like that is the correct part of the handling. then similarly, as soon as the additional CVEs were discovered, there were follow up posts, tools, created to help bump all your versions. [27:38]&lt;/p&gt;
&lt;p&gt;Like all that stuff has been excellent and I think , they&#39;ve that stuff the right way. On the other hand, as you&#39;re pointing out, even from like a perception perspective, , the blog post on the follow up CVEs. Initially, one of the first bits in that post was a call out box that said, &quot;follow up CVEs are a very common thing because everyone, now, everyone is looking at your code.&quot; [27:56]&lt;/p&gt;
&lt;p&gt;And the React team actually got called on in Hacker News, like, &quot; which is more important, protecting your reputation or giving people the information they need to re-update their tools.&quot; And, to their credit, , they restructured the post. So the tech information was first. [28:21]&lt;/p&gt;
&lt;p&gt;I I do totally get the preemptive defensiveness. Like of course, the React team and ecosystem are gonna get criticized because, oh no, now there&#39;s more problems. Look how bad your code is. I totally get that. I think the comment was, justified. But putting that as the first thing in the post was maybe not the best way to do it. [28:35]&lt;/p&gt;
&lt;p&gt;I agree with you that the way the phrasing here and the defensiveness does not look ideal. [28:56]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Yeah. And it&#39;s just a phrasing thing, right? It&#39;s like, I, I agree with you a hundred percent that it was very well coordinated. They worked with all the right people, all the right hosting providers, and did a good job of tackling a critical vulnerability, right? But then the messaging is a little bit laissez faire, like, let&#39;s just, this happens guys. [29:02]&lt;/p&gt;
&lt;p&gt;Of course it happens. And so that, that&#39;s the bit that I&#39;m just, a little bit it doesn&#39;t sit right with me. [29:23]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, I have some opinions on this., I don&#39;t know. This is, deep in the weeds of like communication, effective communication, especially when you&#39;ve someone wrong. Even that someone is an abstract group of millions who rely on your work. [29:27]&lt;/p&gt;
&lt;p&gt;Yeah. defensiveness is never good to lead with Also defensiveness. Is a lot broader than most people think about. If you are offering a reason, a justification, an explanation, all of that is defensive. That is saying, maybe it&#39;s not saying :it&#39;s okay that this happened because,&quot; but it is saying there are mitigating factors. [29:40]&lt;/p&gt;
&lt;p&gt;And at the outset while talking about, a problem, a thing, it is never good to offer reasons why you made that mistake. Just like you made it, it happened, it&#39;s done, own it.Don&#39;t defend it. [30:00]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Which, which I think has generally, as a, counter example, I think generally been one of the strengths of Cloudflare&#39;s, you know, outage messaging It&#39;s like, yeah, we screwed up, but here&#39;s exactly what happened and the things that went wrong. they&#39;re explaining the technical reasons, but it&#39;s generally factual rather than like communications oriented. [30:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; yeah. And I wanna, Mo you used the word immature and I think I like yes. In context it&#39;s the wrong, it&#39;s like wrong. I would reframe it from immature to like, this is crisis comms. This is public relations at a world level security incident. [30:37]&lt;/p&gt;
&lt;p&gt;And so while the, while that instance of, defensiveness, especially when you feel that you&#39;ve done everything you could, you&#39;ve done your best totally get it totally makes sense. There&#39;s a really strong instinct to do that If you&#39;re operating at a world class level, the expectation is higher than that. So I guess I would reframe it from like immature to like not meeting the bar of excellence. [30:58]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; What Mark was saying was exactly what I was thinking, which is like the CloudFlare posts are exactly how I would rather have this handled, which is an admission of whatever that is an admission we made a mistake or we didn&#39;t discover this, I&#39;m sorry. [31:20]&lt;/p&gt;
&lt;p&gt;And here&#39;s exactly what went wrong that reads as I&#39;m giving you the technical reasons and I&#39;m being transparent with you, rather than I&#39;m defending myself and trying to, to cover up [31:33]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And are all the mitigation steps going forward to improve our process and make sure that this set of problems never happens again. [31:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; To play the devil&#39;s advocate. To my earlier point, I get the emotional instinct to defend yourself. Right? Like it&#39;s an open source project. You&#39;ve chosen to work and benefit off of the work that React and the React team have have been building. I get it, like open source maintainers are not appreciated enough, but you are also a multi-billion dollar company and you need to have some PR instincts as part of that. [31:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Or delegate to a PR team. [32:14]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; The reactions to this have been incredibly predictable on Hacker News and Twitter and everywhere else, which is lots and lots of, &quot; RSCs were a mistake in the first place. boy, I am glad I never adopted RSCs&quot; and lots of similar threads from lots of people. [32:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Can&#39;t avoid it. Look at us not doing that. We&#39;re so good. [32:34]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Give ourselves pats on the shoulder collectively. [32:39]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; We&#39;ve seen complaints about server components being quote two complex really since the beginning. And like with the word boilerplate people use the word complex or complexity to mean lots of different things. Is it the mental model? Is it the technical implementation? [32:42]&lt;/p&gt;
&lt;p&gt;Is it the architectural approach of trying to bridge the server and the client? I mean, diff different people have different pieces in mind when, when they use the word complex. I, I think there, like, there&#39;s probably some fair validity to the concerns. We&#39;ve talked about the mental model of trying to understand if you&#39;re looking at a given file, a given function, understanding where is the code running, when is the code running, what are the inputs needing to, if I&#39;ve got a secret value on the server, how do I make sure that it&#39;s not getting accidentally exposed and sent to the client? [32:59]&lt;/p&gt;
&lt;p&gt;So, as Carl said, part of this is just, client server behavior is a distributed system. It is a inherently complex thing. And we are trying to solve a complex problem with 50,000 different attempts at abstraction, server components being one of them. So part of it is, this is just a very hard space, but it&#39;s probably also legit to say that this particular set of abstractions is complex, both in terms of mental model necessary technical implementations. [33:35]&lt;/p&gt;
&lt;p&gt;You know, as always, I feel weird saying this stuff because I&#39;m on the sidelines and so I&#39;m the bystander without the hands-on experience, but just eyeballing things. I think that&#39;s maybe a point in favor of something like remix loaders or TanStack Start server functions where you look at a thing and it&#39;s very, very explicit: this is the function that runs on the server. And okay, yeah, maybe there&#39;s still some bundler magic that&#39;s going on to make that feasible be in the same file, but at least there was something in the code that very clearly said where that piece of behavior is intended to run. [34:07]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I&#39;m just saying if this were written using the primitives that Effect-TS offers, then list what environment was required as part of the types, like you could get type level guarantees on this shit. I&#39;m just saying. [34:45]&lt;/p&gt;
&lt;h2 id=&quot;react-is-rainbow-colored-function-types&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/sh03.dev/post/3m7tz3zhl522f&quot;&gt;“React is rainbow colored (function types)”&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; There was one tweet that I saw, which was using the metaphor of different function colors. this concept started as a blog post like a decade ago where someone that sync and async functions are differently colored and that they&#39;re, they&#39;re essentially contagious. [34:59]&lt;/p&gt;
&lt;p&gt;That once you have an async function, it spreads through the rest of the code base. And so this tweet. Was saying, well now we&#39;ve got like three different colors and they multiply. So now you have to consider like function components, server components, hooks, server side, client side. It was kinda like the multiple kit of factor of all the possible variations in how a thing can run. [35:15]&lt;/p&gt;
&lt;h2 id=&quot;what-does-this-mean-for-react-and-rsc-adoption-going-forward&quot;&gt;What does this mean for React and RSC adoption going forward?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; All right, one, one last bit of Opiniony stuff and then we can move on. So what do we think this means in terms of, what&#39;s going to happen with React in 2026, but also what does this mean in terms of server component adoption at this point? [35:39]&lt;/p&gt;
&lt;p&gt;On the one hand , we&#39;ve been seeing the positive technical progress in the ecosystem where it, it&#39;s getting past the experimental stage in other tools. [35:56]&lt;/p&gt;
&lt;p&gt;React Router has added RSC support walkthrough is getting closed to being production ready. Redwood is out there , TanStack Start is looking at RSC support in its own unique way. So we&#39;re getting past the point where this is just a feature that&#39;s available in Next, and that feels like it&#39;s going to be very big for adoption. [36:06]&lt;/p&gt;
&lt;p&gt;I think actually React Router support is gonna be huge, but now you&#39;ve got a vulnerability here and you&#39;ve got all the naysayers popping up and saying, &quot;ha ha, look. See, I was right. This was a bad idea.&quot; So plus and minus, how is this gonna behave? [36:29]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I will say I think the haters are gonna show up no matter what, and the only thing that varies is, there&#39;s some variance. There&#39;s probably gonna be more haters because of this than there might have been otherwise. But many of those haters would have just been saying something different if this hadn&#39;t happened. [36:45]&lt;/p&gt;
&lt;p&gt;So I think there&#39;s gonna be, I think this is gonna end up being net good because there deserves to be more than an uncritical adoption. Like, you know, when I think about when hooks came out, everyone&#39;s like, &quot;aww yeah!&quot; And just like immediately all in. [37:01]&lt;/p&gt;
&lt;p&gt;So like it&#39;s a rainbow colored functions. It&#39;s bunch of complexity. It&#39;s difficult to know where code is executing now. It&#39;s hard, Next adds on additional caching stuff that adds even more complexity. So I think this might trigger a bit of a reckoning for the folks pushing the state of the cutting edge, the people who are pushing the envelope, I think are going to be forced to offer stronger justification. Forced is wrong, let&#39;s say pressured. [37:18]&lt;/p&gt;
&lt;p&gt;What do you think would be good, I&#39;ve said a couple times over the years of doing this podcast that like I view the, the React core team as doing like post-doctoral research in distributed execution of, you know, ui. So with that framing in mind, this is going to ask those folks who are doing the more academically minded whatever to more strongly justify the direction, which I think will be good. And I think, we&#39;ll, I would hope will lead to more robust everything. [37:47]&lt;/p&gt;
&lt;p&gt;The &quot;react is rainbow colored,&quot; I think is like so deeply real and a major limiting factor because you&#39;re context switching and like you said Mark, , there&#39;s nothing in the code to indicate where it&#39;s executing. You have to know it. [38:22]&lt;/p&gt;
&lt;p&gt;I&#39;ll say that, specifically, the fact that you can&#39;t look at the code and understand aspects of it without gathering more context from where it is, is like deeply antithetical to the model of programming that React is built upon, like componentized self-contained, tiny world. If I&#39;m looking at a component, generally, up until React server components I guess, I know that it has everything it needs. Unless I&#39;ve done something else. [38:36]&lt;/p&gt;
&lt;p&gt;Like, okay, CSS can cascade, context is slightly unknown. But like I can look at the guarantee, I can look at the code and statically understand what guarantees it requires from its environment and what it&#39;s doing. [39:06]&lt;/p&gt;
&lt;p&gt;it doesn&#39;t just like reach into other stuff and change things at random. And so with React server components, I can no longer look at a single component and fully understand where it is in the world. So I don&#39;t know, hopefully that changes. [39:22]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; So we&#39;ve gone through an, an era over the last couple years where it&#39;s been a heavy focus on RSCs, right? [39:36]&lt;/p&gt;
&lt;p&gt;And I think someone in the chat as well today asked like, are RSCs good or bad? Right. And I think that&#39;s the issue is just because it&#39;s been so center stage on every discussion about React. It&#39;s almost been implied that everyone needs RSCs, everyone needs next. Anyone who builds a web app needs these tools, and this is the right evolution for everyone in the ecosystem. [39:44]&lt;/p&gt;
&lt;p&gt;I personally never believed that that was the case. I think it was a good optimization and a good next step to help take React to certain paradigms and certain spaces where it wouldn&#39;t have been suitable for before. But it wasn&#39;t the be all and end all. [40:08]&lt;/p&gt;
&lt;p&gt;And I&#39;ve been working with a client where they started off with next JS, in the beginning of the year they brought me in to try to help them a little bit and clean up the next JS app because they weren&#39;t next JS developers. They were from a totally different ecosystem and they were trying to understand next, and the app was a mess. And so over the last couple months , we realized, well they don&#39;t really have the expertise to be able to manage like a complex next JS app that was quite large in the surface area and handle all of the caching complexities and RSCs as a concept within that development team. [40:22]&lt;/p&gt;
&lt;p&gt;And so we switched them to Astro after a while and it&#39;s just been a lot easier for them to conceptualize and understand that. And so is this a net good? I actually think it is because like you say, Carl and I completely agree with that. It&#39;s, this is going to help us really stop pushing this like, envelope of RSCs are for everyone. [40:57]&lt;/p&gt;
&lt;p&gt;And this is by no means me saying RSCs are a bad evolution of react. No, to the contrary, I actually think it was a good route, good evolution, but it&#39;s not for everyone. It&#39;s not for every site. We neglected single page apps, which are for so many things in pursuit of this RSC Dream, and I think we need to come back to reality and see like, what is the ecosystem in its whole? [41:21]&lt;/p&gt;
&lt;p&gt;And start to prompt people to think a little bit before they always reach out for next js for every single project that they wanna do. do you actually need next? Are you having to take on the complexity that next gives when you adopt next? And like it has a lot of benefits, but like, does your site need those benefits? [41:42]&lt;/p&gt;
&lt;p&gt;Or are you just doing it because it&#39;s what everyone else does? so I honestly think it&#39;s, it&#39;s a good thing. It will be tough. There will be an adjustment period, but I think it&#39;ll, generally make us a bit more nuanced as an ecosystem, which is good. And the bleeding edge is not always the be all and end all. [42:00]&lt;/p&gt;
&lt;p&gt;The bleeding edge should be there to help push everyone forward. It&#39;s not for every single app that we built. [42:18]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. [42:24]&lt;/p&gt;
&lt;p&gt;I, have an analogy that I love, or I don&#39;t know, an analogy, a way of framing that kind of, you just expressed of like the we, the bleeding edge and like reigning it in a little bit there. [42:24]&lt;/p&gt;
&lt;p&gt;I think there&#39;s a really strong need for two types of work. There&#39;s the people who are expanding the range of what&#39;s possible, and then there&#39;s the people who are bringing that out to everybody else. So like, as you&#39;re exploring, like you can&#39;t be constrained about what is this gonna look like for, every individual actor. Like that&#39;s, if you&#39;re exploring under the constraints of analyzing it for every possible possibility, you will never explore anything. It&#39;s just too much work. [42:36]&lt;/p&gt;
&lt;p&gt;So that needs to happen largely in isolation, in order to happen at all. And then there&#39;s a translation. It&#39;s like, in entrepreneurial terms, it&#39;s the distribution problem. It&#39;s how do you get it to everybody, great, you&#39;ve made a perfect, better mouse trap. How do you get people to know about it, realize it&#39;s better, and buy it? [43:02]&lt;/p&gt;
&lt;p&gt;Where in this case, buy it is, install it over some other tool. And yeah, so I think we just got a, the naysayers got a much stronger argument. We&#39;ll have to see how that plays out. [43:23]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I will tie this back to one of my favorite hobby horses, which is documentation. Maybe I overindex on better docs being the answer to all problems, but it is my answer to all problems. And so, one of the points I&#39;ve made repeatedly over the course of this year is that the React core docs don&#39;t talk about server components meaningfully. There&#39;s one page with scattered bits of information, but the core docs have no intro to what are server components, what problem do they solve, why should I use them, when should I use them, which apps and architectures would benefit from server components? [43:34]&lt;/p&gt;
&lt;p&gt;And there are some great posts out there that go into a lot of this information. Vercel had a intro to RSCs post. Dan has his explainers on server components from different mental models, but the core docs don&#39;t have this. [44:15]&lt;/p&gt;
&lt;h2 id=&quot;when-i-go-back-and-look-at-reactdev-now--it-feels-half-finished&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/nearestnabors.com/post/3maa3cof5mh2w&quot;&gt;When I go back and look at react.dev now […] it feels half-finished&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And even today I was actually having a, a tweet discussion with Rachel Nabors, one of the original docs authors. And we agreed that the tutorial kind of trails off. [44:32]&lt;/p&gt;
&lt;p&gt;It doesn&#39;t give you any real world steps on how to apply your theoretical knowledge of components. [44:39]&lt;/p&gt;
&lt;p&gt;I don&#39;t necessarily think it&#39;s the React Docs job to explain everything about web app architecture, but given that React itself is now more than just a view library, that I think there ought to be some guidance in the docs about how to act like, when does it make sense to use these different tools that we&#39;re providing you. [44:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I like her post saying, when I go back and look at React dev now, and like React, do Dev was her project. She like, [45:09]&lt;/p&gt;
&lt;p&gt;what, when it started, as, [45:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Her and Dan together. Yeah. [45:17]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right. Right. And so she says, when I go back and look at React Dev now after having shipped half a dozen more developer education portals since launch, it feels half finished, they&#39;re saying. This is part of their early work. They got better at it and now they see room for improvement, which I think is really real. [45:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Yeah, a hundred percent. And the earliest like time, we started to actually talk about this this year, which kinda goes into the year recap, but is we, we conversation finally over the CRA deprecation. Like that was the reckoning that started this conversation about what did, what is the React stance on, where is RSC suitable and where is it not suitable? [45:34]&lt;/p&gt;
&lt;p&gt;So. It&#39;s interesting that we&#39;re looping back to this, but yeah, it&#39;s, it&#39;s been a common theme for the last year. [45:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. And man, going back to my, comparison of like the explorers and the, I don&#39;t know, salesmen did, for lack of a better. [45:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; There are specific like business programmer archetype posts that I&#39;ve seen that cover this, and I don&#39;t know what they are off the top of my head. [46:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; You are right. But I feel like the React core team is perhaps too heavily stacked with scientists and adventurers and there&#39;s not enough entrepreneurs and teachers, like we need more who are bringing this knowledge and like workshopping it to say what is understandable? How can we make people, how can we put words to page that permit people to walk away from it with the understanding we intended. [46:15]&lt;/p&gt;
&lt;p&gt;And like there&#39;s like, they&#39;re so busy figuring out what it needs to be that I don&#39;t think they&#39;re quite investing the time and energy into ensuring that people understand what they intend. [46:44]&lt;/p&gt;
&lt;p&gt;And I guess we&#39;ve said before, I&#39;ve said this before, in the podcast, that React spent so long Innu this number one seat of Mindshare. Like it spent solidly, I&#39;d say eight years as like one of the top five hottest technologies in general. And so they didn&#39;t need that core team labor of figuring out how to make people understand it because there was a legion of community members where, that was how they were doing their competitive advantage. They were, that&#39;s they were getting consulting work is by being a subject matter expert on the cutting edge of React. And like, nobody cares about that anymore. Not literally like I care, you care the people listening to this care. [46:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; It&#39;s not picking people&#39;s bills like it used to. And so all of the attention onto ai, so you don&#39;t have all of the consultants and all of those people. So it&#39;s now the responsibility to react core team to do that. [47:43]&lt;/p&gt;
&lt;p&gt;There&#39;s a, , there&#39;s a person at work who does like technology mapping that is like a little bit more senior than I am, and he spends more time in strategy stuff. So he is more of that entrepreneurial type of person that you&#39;re talking about, Carl, and he, talks about like technologies going through this, like these different levels of like genesis, and then growth, and then at the end they become commoditized and like whether we like it or not, react has become commoditized. [47:54]&lt;/p&gt;
&lt;p&gt;Like there are. many ways that you can quickly build React apps, whereas like, it wasn&#39;t the case several years ago. And so it&#39;s it&#39;s now there&#39;s a point where we need to really document everything and make sure that it&#39;s understandable by everyone because there aren&#39;t gonna be consultants who you know are gonna be, that you have to pave to do it. [48:16]&lt;/p&gt;
&lt;p&gt;It&#39;s very accessible to everyone. [48:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; my last thought on this topic is that, I don&#39;t think the React core team has time to do a bunch of additional documentation unless they, significantly change their priorities and maybe they&#39;re not the best people to do it. But I was encouraged by discussions with the team at React Conf for, they indicated they are much more interest, they&#39;re very willing to have external community contributions to the docs. [48:37]&lt;/p&gt;
&lt;p&gt;Obviously, there needs to be collaboration agreement on what the content is, but they&#39;re willing to work with people to get that stuff in. [48:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; yep. Interesting. Yeah, I would, I would like to talk more with you about that actually, [49:07]&lt;/p&gt;
&lt;p&gt;mark, Cool. [49:11]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Moving right along. [49:12]&lt;/p&gt;
&lt;h2 id=&quot;react-native-year-in-review&quot;&gt;React Native year in review&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Mo can you give us a bit of a recap about React Native this year as our React Native expert [49:14]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I would love to. Thanks Carl. So let&#39;s do our React Native year in recap 2025. So I&#39;m gonna start from January and we&#39;re gonna do this very quick fire. And I&#39;ll, go over the releases, I&#39;ll go over some other significant things that happen in the ecosystem. What I will say is, this is not comprehensive. [49:19]&lt;/p&gt;
&lt;p&gt;You can obviously go through the podcasts and listen through every single month, I thought I&#39;d pull out things that were significant enough to me personally. So this is by no means a, prioritization of how important things are. It&#39;s just what came to mind. And I&#39;ll ground them by the reactive releases that went out during the year basically. [49:38]&lt;/p&gt;
&lt;h2 id=&quot;more-css-support&quot;&gt;&lt;a href=&quot;https://reactnative.dev/blog/2025/01/21/version-0.77&quot;&gt;More CSS support&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; So. January React Native version 0.77. So this one was basically give a high level. There was a lot of focus on styling because CSS is super, super rich in terms of styling that it gives you. And so a lot of effort was put into taking CSS features and bringing them into React Native to help with Layouting, to help with sizing and even things like blending modes, which was really quite cool. [49:54]&lt;/p&gt;
&lt;p&gt;So it helped make styling within React Native a little bit more web-like. And that was a trend through a lot of the releases, not just in styling, but in other spaces within this year&#39;s React Native releases. Another thing that&#39;s worth mentioning was there was a breaking change that seemed to be Initially they thought that it was gonna be quite uncontroversial, which was removing console logs showing in Metro. [50:20]&lt;/p&gt;
&lt;p&gt;We&#39;ll come back to that in one of the next releases. [50:41]&lt;/p&gt;
&lt;h2 id=&quot;expo-eas-hosting&quot;&gt;&lt;a href=&quot;https://expo.dev/blog/expo-announces-eas-hosting-service&quot;&gt;Expo EAS hosting&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Same time in January, expo launches their EAS hosting. And so this is expos forte into the universal app deployment world. obviously Expo&#39;s been pushing universal apps for the last couple of years and they didn&#39;t have a hosting solution for it and things like backend routes and so on and so forth to help you build a full stack application. [50:45]&lt;/p&gt;
&lt;p&gt;So they launched EAS hosting as sort of a esque competitor for people that want to build mobile and web apps using the expo ecosystem. And also have basic API endpoints and so on and so forth. So that was another thing that happened in January. [51:04]&lt;/p&gt;
&lt;h2 id=&quot;rn-078-react-19-support&quot;&gt;RN 0.78: &lt;a href=&quot;https://reactnative.dev/blog/2025/02/19/react-native-0.78&quot;&gt;React 19 support&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; We move on to February, React Native 0.78. And this was big because React Native was struggling, was kind of falling behind the React ecosystem in terms of adopting , the latest major versions of React. So it was on React 18 for a long time. And so, 0 78 in February gave us React 19 support, which, came with a whole bunch of different things, but you were able to finally use all of the new React features, like actions, like the optimistic and so on and so forth. [51:18]&lt;/p&gt;
&lt;p&gt;There was also the React compiler and they started to hint that we&#39;re gonna have more frequent releases this year. Now the example that I mentioned, or the point that I mentioned around the removing of logs was reverted this release because of widespread complaints because people are used to seeing their logs in Metro and so they added a flag saying that you can now pass dash dash client logs and get back your logs, which was, was much appreciated by the React Native community. [51:49]&lt;/p&gt;
&lt;h2 id=&quot;lynx-launched&quot;&gt;&lt;a href=&quot;https://lynxjs.org/&quot;&gt;Lynx launched&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; In March no React Native releases, but the folks at ByteDance released Lynx and links was sort of their internal inner source version of React Native that was very similar to React Native in many ways, but was also quite different in terms of how they handled the internals. And was really focused on, getting a quick time to interactive for a mobile app. [52:18]&lt;/p&gt;
&lt;p&gt;So this is what&#39;s powering apps like TikTok and so on and so forth. So it was quite exciting to see an alternative to React Native and a different take to building cross-platform native apps that followed React Native very closely. [52:40]&lt;/p&gt;
&lt;h2 id=&quot;rn-079-jsc-moving-to-community-package&quot;&gt;RN 0.79: &lt;a href=&quot;https://reactnative.dev/blog/2025/04/08/react-native-0.79&quot;&gt;JSC moving to Community Package&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; In April, we had React Native version 0.79, and so I&#39;m gonna just highlight one thing out of this release, which was, and of course there was a lot more that happened in this release, but one of the key things was JS Core, which was the old engine, pre Hermes that React Native relied on, moved to a community maintained package. [52:52]&lt;/p&gt;
&lt;p&gt;So. Majority of React Native users didn&#39;t really, didn&#39;t make a difference to them. But for some of those older apps that relied on JSC, it, it just signaled that the React team was really zeroing in on Hermes as the engine to run React Native apps. [53:11]&lt;/p&gt;
&lt;h2 id=&quot;rn-080-freezing-the-legacy-architecture&quot;&gt;RN 0.80: &lt;a href=&quot;https://reactnative.dev/blog/2025/06/12/react-native-0.80&quot;&gt;Freezing the legacy architecture&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Then in June, two months after we had React Native versions, 0.80. And so this one was big because the legacy architecture, as they put it, or as how everyone sort of referred to it, the old architecture was frozen. And so this was pretty much in, in this world of making the new architecture, the sort of defacto way at the defacto internals of React Native, this was sort of a big deal because it was basically saying , we are no longer gonna be so supporting the old architecture, and we really want everyone to move over to the new architecture. [53:27]&lt;/p&gt;
&lt;p&gt;It&#39;s been in the making for years. Let&#39;s get everyone migrated away. This was sort of the big news for this release. [53:58]&lt;/p&gt;
&lt;h2 id=&quot;rn-081-android-16-support-for-edge-to-edge&quot;&gt;RN 0.81: &lt;a href=&quot;https://reactnative.dev/blog/2025/08/12/react-native-0.81&quot;&gt;Android 16 support for edge to edge&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Then two months later in August there was a release of React Native 0.81. This was mainly focused on Android 16 support because there was some drastic breaking changes in the Android ecosystem. [54:05]&lt;/p&gt;
&lt;p&gt;So this was API level 36 for you Android developers. And it supported things like Edge to edge support but it also deprecated things like safe area view because there were better alternatives in the ecosystem that were open, open source and really just made sure that that React Native , was compliant with the latest Google requirements for apps, which was to have edge to edge support. [54:16]&lt;/p&gt;
&lt;h2 id=&quot;10-on-the-horizon&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=GPtopk4y2LI&quot;&gt;1.0 on the horizon&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Then in September we had a talk from Jorge Cohen, who&#39;s one of the engineering managers at Meta in the React Native Core team. And they talked about how 1.0 is on the horizon. So this has been like the brunt of jokes in the React Native ecosystem for a very long time that React Native will never reach 1.0. [54:36]&lt;/p&gt;
&lt;p&gt;And so this was a, this was quite fun for us to, hear as a community that, you know, there is a world in which we can reach a 1.0 of React Native. And there are many memes if you search for React Native 1.0 [54:56]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; We&#39;re not there yet, but at least we&#39;re talking about it. [55:06]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; It&#39;s a great, great move, right? Like it&#39;s, at least we&#39;re talking about it, which is great. a little bit of an anecdote is, I still laugh when there was a a CEO of a company that we spoke to who we were trying to say, you should go to React Native and not build two separate native apps. And he said to me, point blank, that &quot;my friend told me that React Native is so un unstable, it&#39;s not even version 1.0.&quot; And that still makes me chuckle. How decisions are made. Cool. [55:09]&lt;/p&gt;
&lt;h2 id=&quot;vega-os-launched&quot;&gt;&lt;a href=&quot;https://developer.amazon.com/apps-and-games/vega&quot;&gt;Vega OS launched&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Same time in September the folks at Amazon lifted the veil on something that they&#39;ve been working on for a number of years, which is a completely new operating system that is built from the ground up to support React Native. [55:36]&lt;/p&gt;
&lt;p&gt;And so they call it Vega Os. I have known about Vega OS for a little while and have been working with some of the folks at Amazon behind the scenes. But Vega OS will power the next generation of Fire TV devices and other devices that Amazon makes. And so this was really quite cool because the only way and the defacto way that you build apps for this new operating system is with React Native. [55:48]&lt;/p&gt;
&lt;p&gt;So it&#39;s a big bet on React Native&#39;s future and long GI longevity as a technology, which was really, really cool to see. And it just shows that this ecosystem is only growing and expanding. [56:11]&lt;/p&gt;
&lt;h2 id=&quot;rn-082-only-new-architecture&quot;&gt;RN 0.82: &lt;a href=&quot;https://reactnative.dev/blog/2025/10/08/react-native-0.82&quot;&gt;Only new architecture&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Then in October we had React Native version 0.82. Now this one was also a big one in the world of new architecture releases because this was a release where they removed the legacy architecture. [56:22]&lt;/p&gt;
&lt;p&gt;And so basically they were saying that this version will only run on the new architecture. You&#39;ll need to adopt the new architecture to be able to use it. And they&#39;re gonna be removing for future releases. All of the components in the code that rely on the legacy architecture. [56:35]&lt;/p&gt;
&lt;h2 id=&quot;expo-app-awards&quot;&gt;&lt;a href=&quot;https://expo.dev/blog/2025-expo-app-awards&quot;&gt;Expo App Awards&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Also in October we had Expo launching their 2025 Expo app awards. [56:50]&lt;/p&gt;
&lt;p&gt;So this was the first time they were doing this, but it was actually quite cool and I think it&#39;s notable to talk about it, which is, Expo sort of in, in Apple-esque fashion of, let&#39;s do an app awards for the year. They basically opened up nominations for people to, to nominate any apps that have been built with React Native and Expo. [56:56]&lt;/p&gt;
&lt;p&gt;And so we saw a lot of cool apps come from different parts of the world and, and basically say, Hey, we use React Native, we use Expo. And so it was a really cool uh, it was a really cool showcase and I think it&#39;s a really good collection of really top class well-built, well-designed apps that have been built with React Native and having something like that available as a reference is really cool when you&#39;re talking to people about why React Native is a great technology to be building your apps with. [57:12]&lt;/p&gt;
&lt;h2 id=&quot;rn-083-new-devtools---no-breaking-changes&quot;&gt;RN 0.83: &lt;a href=&quot;https://reactnative.dev/blog/2025/12/10/react-native-0.83&quot;&gt;New Devtools - no breaking changes&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; And finally, and we talked about it in the new releases going to December, we now have React Native version zero point 83. And so the key things to highlight with this, as we mentioned, is the new dev tools and that there are no breaking changes, which is very, very exciting for the React Native community to not have any breaking changes and have a smooth update process. [57:39]&lt;/p&gt;
&lt;p&gt;And so that&#39;s the yearly recap for React Native. And I hope it was tac enough and I didn&#39;t bore the audience with all of the releases and all of the numbers that start from 77 and go up to 83. [58:00]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; That&#39;s a lot of releases! [58:11]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I would not have known enough to, pull in most of those items [58:12]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; that&#39;s a lot of releases. I mean, we got six releases in 12 months, like hot Damn. That&#39;s [58:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; every two months. That&#39;s solid. [58:20]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Do you know when it was first released? [58:21]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; React Native&#39;s. First release was 2015. [58:23]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Okay, so that&#39;s 10 years, 83 versions in 10 years. That&#39;s, I guess that&#39;s eight per year, so, oh, if they&#39;re slowing down, how dare they? [58:25]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; So, so there was a very, very fast start at where very, very like quick, quick releases and then um, it slowed down to several months before there was a release, and now they&#39;re sort of standardizing it at a release every two months, which is quite good because, you know, that&#39;s something that&#39;s more maintainable and manageable and makes it less painful to do the updates. [58:32]&lt;/p&gt;
&lt;p&gt;So if I&#39;ve done my math right here, if we do the a hundred divided by 83, that&#39;s 17 divided by six releases. So we&#39;re talking three years before, if they just continue on the succession, 1.0 might be there in 2.8 years. or they do 0.1 hundred and then we all have a good laugh. [58:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. I&#39;m just pulling it up real quick. Version o one initial public release was March 27th, 2015, and they had version 0.10 out by August. So yeah, that&#39;s 10 releases in like three months. So that&#39;s, entirely different type of release. Yeah, man. They&#39;re on version 0.40 in 2016, like a year later, [59:10]&lt;/p&gt;
&lt;p&gt;that Doesn&#39;t really mean anything, but that&#39;s just some fun uh, It&#39;s interesting this, it&#39;s professionalizing, you got this prototype that, oh, look at works. [59:32]&lt;/p&gt;
&lt;p&gt;Oh, it&#39;s broken. Oh, it&#39;s broken. Oh, it&#39;s broken. it&#39;s like a stable ish product with a release schedule and all that kind of stuff. It&#39;s cool to see. [59:40]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I wouldn&#39;t say stable ish. I&#39;d say stable. don&#39;t undermine the community like that, Carl. [59:49]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; According to SemVer, a zero major version you&#39;re you are allowed to release breaking changes without a major revision. [59:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; you&#39;re telling me the CEO was right all along. It&#39;s not stable until it&#39;s 1.0. Right. [01:00:01]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I&#39;m just saying. technically that&#39;s what the contract says. [01:00:05]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Technically, that is what the contract says. You are. You are absolutely right. [01:00:08]&lt;/p&gt;
&lt;p&gt;So yeah, it was lovely as always. Have a lovely holidays to everyone who&#39;s listening and enjoy whatever festivities you&#39;re celebrating and we&#39;ll see you on the other side. [01:00:12]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; you very much, Mo. Merry Christmas and happy holidays to you too. [01:00:22]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool. Okay, wonderful. [01:00:25]&lt;/p&gt;
&lt;h2 id=&quot;react-year-in-review&quot;&gt;React year in review&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Semi rapid firing our way through the myriad of stuff we have left. [01:00:27]&lt;/p&gt;
&lt;h2 id=&quot;cra-deprecation-new-install-docs-vite&quot;&gt;&lt;a href=&quot;https://github.com/reactjs/react.dev/pull/7495&quot;&gt;CRA deprecation&lt;/a&gt;, &lt;a href=&quot;https://react.dev/learn/build-a-react-app-from-scratch&quot;&gt;new install docs&lt;/a&gt; (Vite!)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; We, we started the year in React land with React 19 had just come out in December of 24, and that&#39;s when I noticed everyone&#39;s CRE React app projects were breaking. And I will still take 75 to 80% of the credit for the actual deprecation process happening here. [01:00:32]&lt;/p&gt;
&lt;p&gt;Theo had put up his post complaining about the docs a couple years ago. Dan had written his response saying, don&#39;t use CRA, but I take credit for complaining loud enough for noticing the problem and complaining loud enough and filing the issue and pushing them to make this happen, which is also how we actually ended up with the React Docs actually now listing Vite, RSBuild, and Parcel, and do it yourself tooling as a valid, officially documented, supported way to do a React project, not just use a framework. [01:00:51]&lt;/p&gt;
&lt;p&gt;So I actually legitimately take credit for that one. [01:01:26]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I give credit for that one. Yeah. yeah, we, so we start with Create React App deprecation, much better new docs. [01:01:28]&lt;/p&gt;
&lt;h2 id=&quot;styled-components-deprecated&quot;&gt;&lt;a href=&quot;https://opencollective.com/styled-components/updates/thank-you&quot;&gt;Styled Components Deprecated&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; We move into styled components getting actually officially deprecated. [01:01:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; That had kind of been on the horizon because of the changes with server components and not having contact support in a server components environment. Which, kind of also goes back to the, the mental model and like, even if they&#39;re not pushing server components, technical changes and having to keep up change on the ecosystem [01:01:38]&lt;/p&gt;
&lt;h2 id=&quot;releases-192-activity-useeffectevent-compiler-10&quot;&gt;Releases: &lt;a href=&quot;https://github.com/facebook/react/releases/tag/v19.2.0&quot;&gt;19.2&lt;/a&gt; (Activity, useEffectEvent), &lt;a href=&quot;https://react.dev/blog/2025/10/07/react-compiler-1&quot;&gt;Compiler 1.0&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So the, big react release this year was 19.2 in the fall, which included the, the final actual release of the activity component previously offscreen, and the new confusingly named use effect event hook. [01:01:59]&lt;/p&gt;
&lt;p&gt;And then along with that at React Con, the react compiler finally hit 1.0. It had been an RC for a while and now it&#39;s finally officially, officially available. , it&#39;ll be still very interesting to see what the adoption rate is on that. I, I have no metrics. I&#39;ve not looked at download numbers or anything. But I, feel like it&#39;s gonna need official integration into build tool chains to really start to take off, otherwise it&#39;s still kind of piecemeal. [01:02:12]&lt;/p&gt;
&lt;h2 id=&quot;research-view-transitions-canary-perf-concurrent-stores-throw-a-promise-deprecated-but-not-merged-yet&quot;&gt;Research: &lt;a href=&quot;https://react.dev/blog/2025/04/23/react-labs-view-transitions-activity-and-more#view-transitions&quot;&gt;View Transitions canary, perf, concurrent stores&lt;/a&gt;, &lt;a href=&quot;https://github.com/facebook/react/pull/34032&quot;&gt;“throw a promise” deprecated&lt;/a&gt; (but not merged yet)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; On the API research side we had the canary release of view transitions. We&#39;ve got the ongoing concurrent stores work that I am very personally excited about and involved in. We saw a mention of killing off the existing throw a promise method for triggering suspense now got the use hook available. [01:02:39]&lt;/p&gt;
&lt;h2 id=&quot;async-react-and-the-ecosystem&quot;&gt;“&lt;a href=&quot;https://github.com/reactwg/async-react&quot;&gt;Async React&lt;/a&gt;” and the ecosystem&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Also at React conf Ricky Hanlon&#39;s talk on Async React, I think was one of the biggest pieces of messaging from the React team. We&#39;ve spent all these years building the new features, suspense, transitions all the other stuff. What does it mean in terms of coherent usage? How does it change the code that you&#39;d write versus a 2018 ERA app? [01:03:00]&lt;/p&gt;
&lt;p&gt;What does it mean in terms of, well, you know, ecosystem libraries like component libraries and routers and state management tools ought to just do the transition calls for you so you don&#39;t have to write them in your own code. I think we&#39;re gonna be digesting the implications of that one for quite a while. [01:03:24]&lt;/p&gt;
&lt;h2 id=&quot;react-foundation&quot;&gt;&lt;a href=&quot;https://react.dev/blog/2025/10/07/introducing-the-react-foundation&quot;&gt;React Foundation&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Then at React Conf, we also had the mic drop announcement of the React Foundation that reacts ownership is finally after years and years of speculation. And boy, I wish they would actually moving from meta to an independent foundation, part of the Linux Foundation, with multiple companies providing financial support, board governance, and technical support as well. [01:03:41]&lt;/p&gt;
&lt;p&gt;And then I, I found out some more details from Seth Webster at React Summit that, they&#39;d been working on this for like four years and had even held off on trying to do the announcement for a while because they wanted to make sure that they were working on they, that, that their internal day-to-day process of development was essentially beta testing the process that they&#39;re going to use as things become more public. [01:04:10]&lt;/p&gt;
&lt;p&gt;And the comments that down the road they want to make the development of its of react itself fully public, the weekly meetings bringing back RFCs as a means of getting proposals. So the development of React is going to change significantly as we go forward. [01:04:34]&lt;/p&gt;
&lt;h2 id=&quot;react-growth-skyrockets&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/sebastienlorber.com/post/3mabj2vg23c2l&quot;&gt;React growth skyrockets&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; We&#39;ve also had all the rise of all the different AI powered build tools, which are using react by default. &#39;cause that&#39;s what LLMs are trained on. A lot of that is based on Vite of course, next V0 is using next, but Vite is the default for a lot of these. And so the growth charts for React are absurd. [01:04:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; It is absurd. there&#39;s a visible inflection point. I don&#39;t know. It&#39;s, it&#39;s funny, there&#39;s actually like two— [01:05:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; like January this year is when all the AI tools took off. [01:05:18]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. It&#39;s funny &#39;cause there&#39;s a certain, very consistent, I would say exponential growth curve from like 2015 to 2023. And then it&#39;s funny, there&#39;s like a little kink down. Like stops growing quite as quickly until January of this year and then it fucking rockets. So that, I don&#39;t know. That&#39;s interesting. [01:05:21]&lt;/p&gt;
&lt;p&gt;So I wonder if people stopped, like the pace of new projects actually got hampered by initial AI tools. &#39;cause maybe I, I feel like people may be, I dunno, this is speculation, but I feel like people wanted them to be able to do more than they could and actual as evidenced in download numbers, pace of development slowed and maybe they got better. [01:05:39]&lt;/p&gt;
&lt;p&gt;I don&#39;t know. This is fun. It&#39;s just interesting to look at some data and see some patterns. [01:06:01]&lt;/p&gt;
&lt;h2 id=&quot;react-router-rsc-support-tanstack-start-wip-rsc-waku&quot;&gt;&lt;a href=&quot;https://remix.run/blog/rsc-preview&quot;&gt;React Router RSC support&lt;/a&gt;, &lt;a href=&quot;https://x.com/tannerlinsley/status/1983999424486633931&quot;&gt;TanStack Start WIP RSC&lt;/a&gt;, &lt;a href=&quot;https://waku.gg/&quot;&gt;Waku&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; As mentioned earlier, we&#39;re seeing other tools working on RSC support, and I think , the biggest one is React Router officially bringing out RSC support in framework mode. I think that&#39;s, gonna be one of the biggest pieces of, of adoption outside of next we&#39;ve seen a bunch of other frameworks with RSC support in some form Parcel Redwood walkout, et cetera. [01:06:05]&lt;/p&gt;
&lt;p&gt;Tan Stack start is teasing RSC support, and I have seen Tanner gave me a demo and I think it&#39;s gonna blow people&#39;s minds once that officially comes out just because it&#39;s so different and yet it works. [01:06:25]&lt;/p&gt;
&lt;h2 id=&quot;dans-rsc-explainers-he-had-a-bunch-of-things-to-say&quot;&gt;Dan’s RSC explainers (he &lt;a href=&quot;https://overreacted.io/jsx-over-the-wire/&quot;&gt;had&lt;/a&gt; &lt;a href=&quot;https://overreacted.io/impossible-components/&quot;&gt;a&lt;/a&gt; &lt;a href=&quot;https://overreacted.io/what-does-use-client-do/&quot;&gt;bunch&lt;/a&gt; &lt;a href=&quot;https://overreacted.io/one-roundtrip-per-navigation/&quot;&gt;of&lt;/a&gt; &lt;a href=&quot;https://overreacted.io/progressive-json/&quot;&gt;things&lt;/a&gt; to say)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Dan went on a whole series of blog posts back in the spring where he put out like 10 different posts trying to explain our server components from first concepts, different mental models. [01:06:37]&lt;/p&gt;
&lt;p&gt;Here&#39;s another explanation. Does this explanation make rses click for Is it a GraphQL replacement? Is it a backend for front end? Is it serialized? JSON and. I would love to see a lot of these, like some form of this added to the docs somehow. [01:06:49]&lt;/p&gt;
&lt;h2 id=&quot;remix-v3-not-react-but-relevant&quot;&gt;&lt;a href=&quot;https://remix.run/blog/remix-jam-2025-recap&quot;&gt;Remix v3&lt;/a&gt; (not React but relevant)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; We had the React Router remix team, Ryan Florence and Michael Jackson teasing us for months about what remix V three would look like. [01:07:07]&lt;/p&gt;
&lt;p&gt;Was it going to be a fork? WW would it use preact? Would it be a fork of preact? Iframes something somehow. And then they eventually had remix conf and dropped the details. And it&#39;s a weird hybrid mix of react and backbone and a few other things mixed together. It&#39;s clearly not, it&#39;s literally not react, but there&#39;s a lot of overlap. [01:07:17]&lt;/p&gt;
&lt;p&gt;No idea how that one&#39;s gonna get adopted, but it&#39;s clearly like they clearly have their idea and they&#39;re going with it. We had numerous arguments over directives and bundlers and mental models and complexity. Use client use, server use, cash use, use, use, use, use, use, use, use, use, use, use. Yeah. [01:07:43]&lt;/p&gt;
&lt;h2 id=&quot;mark-went-from-frustrated-cra-to-excited-reactconf-foundation-team-efforts&quot;&gt;Mark went from frustrated (&lt;a href=&quot;https://blog.isquaredsoftware.com/2025/06/react-community-2025/&quot;&gt;CRA&lt;/a&gt;) to excited (ReactConf, foundation, team efforts&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And finally, speaking purely for myself, I started the year feeling very frustrated. I, put a lot of emotional energy into like the Create React app, deprecation and trying to convince the team to change the docs. I even spent a while writing a blog post that I fortunately never actually published because it was too ranty and would&#39;ve caused problems. [01:08:08]&lt;/p&gt;
&lt;p&gt;I was very frustrated with the direction of React early on, but I can say that React Con completely changed my outlook , on where things are going. The technical progress is great compiler and 19.2 and performance research, that&#39;s all cool. [01:08:30]&lt;/p&gt;
&lt;p&gt;The foundation I never saw coming. And the fact that they finally were doing it like even, like, even just the, the slide, seeing them say the words React Foundation tells me a lot about the intent and what been trying to do. And it, and like, it was only afterwards that I got a sense of how many years they&#39;ve been working on this. [01:08:48]&lt;/p&gt;
&lt;p&gt;And then on an individual level, like I got to talk to several React team members who basically said, we don&#39;t get any credit for doing community rated related things in our meta performance reviews. And so things like. The Async React working group and, doing, like a lot of the other stuff that they&#39;re doing shows me how much they care about keeping React, working for the community. [01:09:09]&lt;/p&gt;
&lt;p&gt;, I&#39;ve got my gripes, everyone&#39;s got their gripes. Nothing&#39;s perfect, but it&#39;s not for lack of effort and care on their part, and that&#39;s the part that actually encourages me the most. And so, the react to shelf vulnerability is a big bummer and it&#39;s gonna cause problems. I, Carl and I were briefly chatting with Ricky and as Carl said, hug ops. [01:09:36]&lt;/p&gt;
&lt;p&gt;I, feel a lot of sympathy for what they&#39;ve been having to go through the last couple weeks. But yeah, even with that in mind, I am actually excited and positive about the direction of React itself going into 2026. [01:09:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, I think I would agree with that. I, I read your blog post that you never published. I printed it like an attempt at like, editing and maybe salvage parts that were less ranty and, you know, salvage seems mean, not salvage, but help process. And yeah, it was not inaccurate. [01:10:12]&lt;/p&gt;
&lt;p&gt;So , I would agree. I I never saw the foundation coming. , it&#39;s like retroactively, I don&#39;t know, validating or like. It&#39;s good to know that they were thinking about this for a long time. I relate to the thought of exploring an idea and then realizing like, &quot;oh, in order to do this, , in order to accomplish our goals here, we have to do this hard project first.&quot; That rhymes with a lot of things I&#39;ve done in my life. [01:10:29]&lt;/p&gt;
&lt;p&gt;And so, like fuck yeah. For putting the work in, like working for several years to like test the process and yeah. I mean, I guess we&#39;ll see, Remains to be seen quite how successful they were at that. [01:10:56]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; But I absolutely respect the intent and the effort to make that happen. [01:11:10]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; yes, it is a massive amount of effort. Like, it&#39;s tough. Well, I&#39;m excited to see how that goes. [01:11:14]&lt;/p&gt;
&lt;p&gt;Yeah, it&#39;s been an interesting year. I don&#39;t know. I&#39;m trying to think of how to like summarize this year. &#39; cause like we&#39;ve been talking about server components for a long time. I still don&#39;t have firsthand experience with them. [01:11:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; neither. &#39;cause I don&#39;t write, I don&#39;t write front end apps these days. [01:11:33]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. I just saw somebody chatting about maybe I need to just pair program with Effect, so I understand it and I was like, Ooh, you&#39;re the person who talked about RSCs and like, maybe we should just do a knowledge transfer there. So maybe I&#39;ll do that. But yeah, it&#39;s been quite a year. [01:11:36]&lt;/p&gt;
&lt;p&gt;I don&#39;t know. In some ways it&#39;s like legitimizing the fact that they&#39;ve had a major vulnerability in React is like somewhat legitimizing, like, welcome to the party, welcome to the list of world class engineering projects that have caused security people a huge headache for a day. And the rest of the ecosystem headaches for months. [01:11:51]&lt;/p&gt;
&lt;p&gt;But Remains to be seen. If it actually is good, I guess we&#39;ll just keep paying attention to it and talking about it on the air. [01:12:12]&lt;/p&gt;
&lt;h2 id=&quot;-lightning-round-&quot;&gt;⚡ Lightning round ⚡&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; All right. Well, how do you feel about just lightning rounding everything from here on out. [01:12:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Let&#39;s blast through it. [01:12:23]&lt;/p&gt;
&lt;h2 id=&quot;ts-7-progress-update&quot;&gt;&lt;a href=&quot;https://devblogs.microsoft.com/typescript/progress-on-typescript-7-december-2025/&quot;&gt;TS 7 progress update&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; One of the big announcements from earlier this year was that ts was being ported to go and it was gonna be released as TypeScript version seven. And so the TypeScript team put out a big update post, basically saying that there will be a TS 6.0 based off all the same current code base. [01:12:24]&lt;/p&gt;
&lt;p&gt;There will be a bunch of deprecation and strict mode changes and other, like, we think modern type script should be written this way. Settings changes. And then there will be no TS 6.1. The next big release would be TS 7.0, the native built. So great to see both progress being made and that this is happening and that, , we have a direction for all this stuff. [01:12:40]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Very cool. Yeah, quick roundup of some GitHub, this all fits under a Microsoft umbrella, funnily but NPM, GitHub, some user experience and whatever stuff. [01:13:07]&lt;/p&gt;
&lt;h2 id=&quot;npm-classic-tokens-revoked&quot;&gt;&lt;a href=&quot;https://github.blog/changelog/2025-12-09-npm-classic-tokens-revoked-session-based-auth-and-cli-token-management-now-available/&quot;&gt;NPM classic tokens revoked&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; So, NPM, after several vulnerabilities actually revoked every classic token. Classic tokens are no longer valid at all. Which should make generally, like they had to do that because of all of the vulnerabilities that were, all of the phishing attacks that we&#39;re targeting well-known maintainers. [01:13:17]&lt;/p&gt;
&lt;p&gt;So like this needed to happen because it had become clear that NPM maintainers had been hacked in a much, much greater quantity than had been, than those tokens had been used. There was a follow-up attack like two weeks later because, like GitHub and NPM, GitHub, who owns NPM (and is owned by Microsoft) put out a notice that they were going to revoke all of the tokens because of this problem, which is wonderful, and you need to give people time to respond to that and update their code and prevent downtime and whatever. [01:13:37]&lt;/p&gt;
&lt;p&gt;But it also gives the attackers who have those compromised tokens, a window of time in which to use them. And so that did happen. They did in fact, use more of the tokens that they had previously collected, I think like one day before they got invalidated. So, eh, that sucks. But should stop happening. [01:14:08]&lt;/p&gt;
&lt;p&gt;This is a huge positive change. Hopefully this means that 2026, we will not continually be reporting on yet another new vulnerability in NPM publishing. Maybe. [01:14:25]&lt;/p&gt;
&lt;p&gt;Also you should consider using PMPM because it lets you do things like minimum delay time before you start using a new version that was released and also lets you, I think by default it does not run post install, or there&#39;s various scripts that open vulnerabilities that PNPM does not [01:14:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I, I actually went through what week and a half ago my own Redux Library Publishing workflow. I, I&#39;d always done all my releases locally and we had set up a GitHub actions workflow a while back, so some of the other maintainers could publish more easily. Turns out those releases got tagged with Trusted, and then I did more releases locally that were not, and we actually had a couple people complain that PNPM said, oh no, Redux Toolkit isn&#39;t trusted anymore. [01:14:55]&lt;/p&gt;
&lt;p&gt;complaining about that. So I actually, with that and with the token deprecation, I actually went through a week and a half ago and did a bunch of GitHub actions hardening changed some of the publish workflow and figured out, okay, what I can do is I can use Release it to do the tag and push, and then I will actually kick off the publish itself as the a, the workflow in the repo. [01:15:25]&lt;/p&gt;
&lt;p&gt;And so then it&#39;s actually trusted and tagged according, and flagged accordingly. [01:15:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Interesting. Oh, that&#39;s funny. That&#39;s deep in the weeds. [01:15:55]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Basically, I&#39;m not doing the literal publish step for my own machine. It&#39;s happening from within GitHub actions. [01:15:58]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Got it. Cool. Interesting. Yeah. [01:16:04]&lt;/p&gt;
&lt;h2 id=&quot;github-actions-planned-work&quot;&gt;&lt;a href=&quot;https://x.com/jaredpalmer/status/1998821983904243918&quot;&gt;GitHub Actions planned work&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Well, speaking of GitHub actions, Jared Palmer, who is a, like pretty, he&#39;s a huge name in React. [01:16:06]&lt;/p&gt;
&lt;p&gt;He did formic, he did turbo repo. He did turbo pack. He worked on V0. [01:16:11]&lt;/p&gt;
&lt;p&gt;I actually did a job interview with him circa 20, oh my God. 17. And yeah, holy shit. Jesus. And he was, he is genuinely a very sharp dude, so I am not at all surprised to see him. [01:16:17]&lt;/p&gt;
&lt;p&gt;Take the reins in a more serious capacity. Like he was doing, like I met him when he was working like at his dad&#39;s business, and then he did his own business, and then he did like three more businesses before working for Vercel, and now he&#39;s fucking PM of one of the most visible parts of the developer world. And like yeah. [01:16:31]&lt;/p&gt;
&lt;p&gt;Earned it so thoroughly earned. Fuck yeah Jared. And I love this because he&#39;s immediately coming through and talking about a bunch of things that I&#39;ve wanted to see in for a long time. [01:16:49]&lt;/p&gt;
&lt;p&gt;So like, GitHub actions, they&#39;re great, but they&#39;re, they all, they&#39;re also awful. They enable so much great stuff and I hate using them. He was responding to uh, the Primo Gen who was a very prolific tech YouTuber as well as uh, Jamon Holmgren, who, fun fact, previously sponsored this podcast, with a really long, basically a blog post on Twitter with citations talking about the work that they&#39;re looking to do to make GitHub actions better in general. [01:17:02]&lt;/p&gt;
&lt;p&gt;So that&#39;s really cool. Like, I&#39;m gonna see if I can quickly summarize some of this. Eh? Oh, this is like, no, these are pretty deep [01:17:31]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; in in, in the weed stuff. But they, intend to do a lot of stuff to make GitHub actions better at a technical level. [01:17:38]&lt;/p&gt;
&lt;h2 id=&quot;github-action-pricing-change-and-immediate-about-face&quot;&gt;&lt;a href=&quot;https://resources.github.com/actions/2026-pricing-changes-for-github-actions/&quot;&gt;Github Action pricing change&lt;/a&gt; and &lt;a href=&quot;https://x.com/jaredpalmer/status/2001373329811181846&quot;&gt;immediate about-face&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Unfortunately, shortly after that, they also announced a price increase for both standard GitHub actions and cases where you&#39;re using GitHub actions to kick off your own job runners. [01:17:44]&lt;/p&gt;
&lt;p&gt;And the the reasons listed were understandable, like it takes money to run the control servers, even if they aren&#39;t the ones executing the actual jobs. But the way they announced that this got a bunch of blow back, and so like 24 hours later, they&#39;re like, Nope, nope, Holt revert, undo, cancel, cease desist. [01:17:58]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; yep. Which again, like I gotta say, Jared Palmer was the one messaging that, and I think he did a good job. Like, he says, &quot;we missed the opportunity to gather feedback from the community ahead of this move. , we&#39;ll learn and do better.&quot; And like, we were talking about, like not being defensive earlier. Like, this is a great example of like not being defensive, just saying like, yep, here&#39;s what we did wrong. We get it, we&#39;re gonna do something differently. Love it. great. [01:18:19]&lt;/p&gt;
&lt;p&gt;Yeah, on the pricing there was a lot of, you know, low effort punches below the belt in the vein of like, &quot;how are they gonna charge for self-hosted runners?&quot; [01:18:42]&lt;/p&gt;
&lt;p&gt;And it&#39;s like, well come on. Like, alright. It&#39;s not their CPU time, but like, you&#39;re taking advantage of. A lot of other infrastructure to get to the point where that runner is executing on your code. Like sure, the marginal cost. [01:18:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Free infrastructure will always be abused. [01:19:07]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; right, right. Anything always has two things. It&#39;s got the, the marginal cost of running it, and then it&#39;s got the capital expenditure of building it and they built the fuck out of this and they&#39;re still building it. [01:19:09]&lt;/p&gt;
&lt;p&gt;So like, no, it&#39;s not free. It&#39;s not free just because you are covering the marginal cost. So, settle out, settle down. If somebody says this should be free because I&#39;m running it on my server, like, chill the fuck out. You don&#39;t understand how business works. You&#39;re too narrowly focused on the one technical aspect. Broaden your perspective. [01:19:19]&lt;/p&gt;
&lt;h2 id=&quot;stacked-diffs-proposal-in-the-works&quot;&gt;Stacked diffs &lt;a href=&quot;https://x.com/jaredpalmer/status/1999525369725215106&quot;&gt;proposal in the works&lt;/a&gt;?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Anyway. Last thing on GitHub. So excited. One more thing from Jared Palmer. Yay. They are sending out a proposal for Stacked Diffs. If you&#39;re not familiar with, if when I said Stack Diffs you didn&#39;t go, &quot;oh my God, they&#39;re doing it,&quot; then, stacked diffs is a way of communicating to GitHub that this PR depends on this PR, which depends on this pr, so you, you can do this yourself. [01:19:40]&lt;/p&gt;
&lt;p&gt;You can branch off main, do some work, push open a poll request, and then from that branch continue doing new work and push another [01:20:05]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; On a third, on a second branch. [01:20:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right, based on that first branch. So like, you do, let&#39;s say you commit four times and you push that branch, then you do another branch that includes those four commits that are not yet merged yet and do four more commits and you push that and make a pr. [01:20:18]&lt;/p&gt;
&lt;p&gt;, that is my preferred way of working. I really like saying, &quot;I made these changes. They&#39;re ready for review. I&#39;m gonna keep using them locally while review happens, and CI and cd, all the validation steps, but I&#39;m gonna keep using it.&quot; So my next change is I don&#39;t have to reintegrate them after this merges. [01:20:33]&lt;/p&gt;
&lt;p&gt;And it is a really frustrating dance to do on GitHub because like, I, I also like to do squash and merge. So that I have like, great, here&#39;s the record of every change I made in the pr, but I only care that about the one higher level change. It&#39;s, I&#39;m thinking about it in a different level of, of abstraction after it merges [01:20:55]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; and then when you merge the first pr, the four actual commits get squashed to a new commit. And then the second PRS branch now has no relation to the history. And how do you keep track of it? How do you update the second PR to now point to main da, da, da, da. [01:21:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And in my experience, I have about a hundred percent incidents of merge conflicts after that, because they&#39;re technically different. Commits Git does not know that they are the same changes. It just knows that two branches touched the same lines of code with different commit hashes. So like, I don&#39;t know, that&#39;s a conflict. You gotta fix it yourself. [01:21:30]&lt;/p&gt;
&lt;p&gt;So, basically it just sucks. You have to go through, like, you have to like check out the branch in your local computer [01:21:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Reset it, re push, something. [01:21:58]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Skip the commits that got squashed, push that, check out the next branch that was based on that branch. You just now updated and pushed and like, it was just a really manual dance of going through every single time. [01:22:00]&lt;/p&gt;
&lt;p&gt;And I, that has been my preferred mode of working since 2016. Like stacked diffs is a term that I have used to describe my workflow for close to 10 years at this point. And people have been demanding it on GitHub for almost that long. So like, to see this actually happening is like, I feel like the Rand Paul gif it&#39;s happening , I&#39;m so excited. This is so good. [01:22:12]&lt;/p&gt;
&lt;p&gt;Well, I&#39;m excited to see the possibilities. We&#39;ll see what actually happens. [01:22:38]&lt;/p&gt;
&lt;h2 id=&quot;anthropic-bought-bun&quot;&gt;&lt;a href=&quot;https://bun.com/blog/bun-joins-anthropic&quot;&gt;Anthropic bought Bun&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And then one last ecosystemy thing, and it&#39;s amazing that so much happened this month. It&#39;s almost an afterthought at this [01:22:42]&lt;/p&gt;
&lt;p&gt;but a, a very small company called Anthropic bought a little known tool called bun. [01:22:49]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Woo. Yeah. Great. there&#39;s some chatter about like, what, this doesn&#39;t make any sense. But apparently Anthropic has invested pretty heavily in using Bun in Claude code. And I don&#39;t know exactly what precipitated this deal at this time, [01:22:57]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; might have even just been like literally like them chatting in person or something. [01:23:12]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; actually, if I recall correctly, the, the Bun blog post actually goes pretty, it speaks pretty candidly about why they did this. And the, the TLDR is that they are a venture backed business. They took funding and that means that they need to return a multiple to their investors. They need to exit as a business, they need to provide liquidity to their investors at a multiple of what they took. [01:23:16]&lt;/p&gt;
&lt;p&gt;Which means either building a business that makes enough money that people value it higher than what it was created for. Or you build something valuable enough that a larger business that is much larger and successful and producing revenue and whatever sees you and goes, we need this. We need this so badly, we&#39;re gonna buy it from you and it&#39;s ours now. [01:23:39]&lt;/p&gt;
&lt;p&gt;And so that&#39;s what happened. This was an acquihire situation. Bun did not have revenue. They did not have a business plan. They did not have a path to revenue or a path to a business plan. The closest they ever had was sell one day. [01:24:02]&lt;/p&gt;
&lt;p&gt;And I think that made a lot of sense in 2022, and it makes a lot less sense in 2026. [01:24:14]&lt;/p&gt;
&lt;p&gt;So I think it was the writing was on the wall. Presumably there was some kind of like funding milestone or, runway check-in that they did and we&#39;re like &quot;uhoh&quot; and chopped it around. Got acquired. Love it. [01:24:20]&lt;/p&gt;
&lt;p&gt;It&#39;s great. I am happy to see open source capture value. Open source is really bad at getting anything close to the value it generates in the form of money for its maintainers. So I&#39;m happy to celebrate any instance of that happening. I hope it will happen for more people. I. Cool. [01:24:32]&lt;/p&gt;
&lt;h2 id=&quot;svg-clickjacking-svg-filters-as-logic-gates&quot;&gt;&lt;a href=&quot;https://lyra.horse/blog/2025/12/svg-clickjacking/&quot;&gt;SVG Clickjacking&lt;/a&gt; (SVG filters as logic gates??)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I wanna talk about this. SVG ClickJacking. This is really [01:24:52]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Go for it! [01:24:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Who published this? I wanna credit them by name. I guess they only introduce themselves as Lyra, so that&#39;s all I will name them as. But they, they appear to be doing, they appear to blog about some security things in general. [01:24:55]&lt;/p&gt;
&lt;p&gt;And this is like such a fun exploit. This is taking [01:25:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; It was an insanely good post. [01:25:11]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; yeah. Such a good post. Like I talk about how I love reading technical write-ups about things, and this is like a legitimately novel exploit technique using a tool that I would&#39;ve never considered to even have a risk of an exploit of this caliber. [01:25:13]&lt;/p&gt;
&lt;p&gt;Anyway, so it&#39;s, they&#39;re using SVG filters, which let you do some fancy visual effects on your website in, in general, [01:25:31]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; like calculating pixel colors, basically. [01:25:40]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; the first thing they do is like, &quot;oh, we can use this to make liquid SVGs&quot; because it lets us do fun, like shimmery effects because of how you can access the pixel data on your webpage on. And like, , it&#39;s rare. There are not that many tools on the web, like not many platform features enable you to retrieve pixel values of the rendered page. [01:25:43]&lt;/p&gt;
&lt;p&gt;Like that&#39;s not trivial to do elsewhere. , and anyway, summarizing all of this is to say that an old vulnerability known as ClickJacking, where, it used to be that like in the nineties you would go to click like an okay button or like a download button, and secretly there was a layer on top of that that you couldn&#39;t see that was, injected by like a malicious advertisement and you thought you were clicking download on this thing, but you were actually clicking download on malware. [01:26:05]&lt;/p&gt;
&lt;p&gt;And that&#39;s been pretty effectively defended against for 15 years, I would say. Like iframes got, really the reason iframes are so clamped down is because there were a bunch of possible ClickJacking attempts like attacks using iframes. And so this is a new way, the, the way that SVG filters let you inspect pixels and modify, modify the visuals for a certain output. [01:26:34]&lt;/p&gt;
&lt;p&gt;Lets you layer things over in ways that you couldn&#39;t do be, you can&#39;t do any other way. So it&#39;s a, it&#39;s a, an old attack that I had generally considered to be like, I don&#39;t think about this anymore. It doesn&#39;t happen in my experience. Like, I have never encountered this professionally. Here&#39;s somebody doing a writeup explaining how to do it with a brand new technology. [01:27:01]&lt;/p&gt;
&lt;p&gt;This is a really, really fantastic writeup. I would absolutely recommend reading it because it&#39;s like fun and silly and genuinely cutting edge and cross domain because it&#39;s really advanced security stuff using on visual things that I would&#39;ve never thought had a security [01:27:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; The phrase that got me was, they were treating pixel analysis and creating like and NAND or Logic Gate equivalents out of SVG filters. [01:27:36]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, right. Oh, oh my God. [01:27:47]&lt;/p&gt;
&lt;p&gt;That&#39;s crazy. [01:27:50]&lt;/p&gt;
&lt;p&gt;With demos in the, blog post. [01:27:50]&lt;/p&gt;
&lt;p&gt;Yeah. like not only is this a really interesting security attack, and not only is the writeup really effective, but it&#39;s also a really technically well produced blog post. So, I don&#39;t know, just like this is, this like, came outta nowhere. I&#39;ve never heard of this person before. [01:27:52]&lt;/p&gt;
&lt;p&gt;It&#39;s like a nineties esque style and everything, it&#39;s a really phenomenal blog post. Highly recommend. Anyway, that&#39;s way too much time for one So much for lightning, this stuff. [01:28:06]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Okay, moving right along. [01:28:15]&lt;/p&gt;
&lt;h2 id=&quot;dan-abramovs-rsc-explorer-accompanying-blogpost&quot;&gt;Dan Abramov’s &lt;a href=&quot;https://rscexplorer.dev/&quot;&gt;RSC Explorer&lt;/a&gt;, &lt;a href=&quot;https://overreacted.io/introducing-rsc-explorer/&quot;&gt;accompanying blogpost&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Dan Abramov has put together a server component explorer that lets you see examples of an app and the data and the progression of the loading. And he also put up a blog post explaining why he built this and how it works, and some links to example demos as well. [01:28:16]&lt;/p&gt;
&lt;h2 id=&quot;instant-loading-github-repo-explorer-using-rscs-without-the-blue-bar&quot;&gt;Instant-loading Github repo explorer using RSCs: &lt;a href=&quot;https://wtbb.vercel.app/&quot;&gt;Without the blue bar&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; in speaking of meaningful uses of server components, somebody built a clone of the GitHub repo code Explorer view entirely using server components. And I clicked through a couple repos like the react repo using this viewer. It loaded instantly, like I stunned at how fast it was in comparison to like the actual GitHub Like that right there is actually a powerful example of why server components could be useful. [01:28:36]&lt;/p&gt;
&lt;h2 id=&quot;react-routers-take-on-rscs&quot;&gt;&lt;a href=&quot;https://www.epicreact.dev/react-routers-take-on-react-server-components-4bj7q&quot;&gt;React Router’s Take on RSCs&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And then Kent C Dodds put up a blog post with his thoughts on why he likes React router&#39;s approach to bringing in server components. [01:29:10]&lt;/p&gt;
&lt;h2 id=&quot;how-ai-coding-agents-hid-a-timebomb-in-our-app&quot;&gt;&lt;a href=&quot;https://acusti.ca/blog/2025/12/09/how-ai-coding-agents-hid-a-timebomb-in-our-app/&quot;&gt;How AI Coding Agents hid a Timebomb in Our App&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Changing topics. An author who I had not seen at all, but I, I looked up his name as Andrew Patton, put, put up two very good blog posts just like within the last week or two. [01:29:19]&lt;/p&gt;
&lt;p&gt;The first one was titled How AI Coding Agents Hit a Time Bomb in our App. And the actual technical problem in here was that they were using the new activity component in their UI and activity does rendering in the background. And AI made a tweak to change something and it ended up doing recursive rendering of their footer component. [01:29:29]&lt;/p&gt;
&lt;p&gt;But because the footer component rendered the footer component rendered, the footer component rendered the footer component. This was all happening invisibly in the background until the app ran out of memory and exploded repeatedly. And so it&#39;s both interesting in terms of, here&#39;s a real world use of activity and also here&#39;s a problem that can come up and, huh, wow, background rendering, huh? Okay. [01:29:55]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I&#39;ll say before we move on from that earlier I talked about how React was basically a scheduler. , this is why. Like, they wanted to avoid tearing and crashes and things like that. they said in the blog post that they took out the activity wrapper in it and it instantly crashed. [01:30:18]&lt;/p&gt;
&lt;p&gt;Like, because it&#39;s recursively rendering out of memory immediately. But with activity, because React is such a good scheduler, it managed to stay functional for minutes before crashing because it&#39;s evaluating what resources are available and doing work only when it doesn&#39;t interrupt the user. So what naively is an instant crash, sustained along for minutes because React is such a good scheduler. Anyway, it&#39;s cool. [01:30:32]&lt;/p&gt;
&lt;h2 id=&quot;react-compilers-silent-failures-and-how-to-fix-them&quot;&gt;&lt;a href=&quot;https://acusti.ca/blog/2025/12/16/react-compiler-silent-failures-and-how-to-fix-them/&quot;&gt;React Compiler’s Silent Failures (And How to Fix Them)&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; The same author just put up a post a couple days ago talking about how they&#39;ve been using React compiler in production for a while, and how the compiler does have some limitations in terms of bits of JavaScript syntax or patterns that it struggles with. I think one of the, one of the examples they gave was if you destructure props into your component, but then you reassign a different value to that same de structured variable than the component, the compiler will give up and bail out and not optimize that component. [01:30:58]&lt;/p&gt;
&lt;p&gt;It was a good look at using the compiler and practice, like, not even the focus on the performance, but what is it like behavior wise? [01:31:28]&lt;/p&gt;
&lt;h2 id=&quot;great-history-of-web-dev-30-years-of--tags&quot;&gt;Great history of web dev: &lt;a href=&quot;https://www.artmann.co/articles/30-years-of-br-tags&quot;&gt;30 Years of &lt;br&gt; Tags&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I&#39;ve always been a very big fan of history stuff. That&#39;s kind of my shtick at this point, and. Someone put together a really long, really good post titled 30 Years of BR Tags and it&#39;s, a look back at like all the history of web development from handwritten HTML and Pearl and CGI bin to Web 2.0 and PHP to, Java stacks to react and next and everything else. [01:31:36]&lt;/p&gt;
&lt;p&gt;It&#39;s great to see just the history of all the pieces and the mindsets and the problems and the tools that we&#39;ve invented to try to solve all those problems in one place. I, I love that kind of post. [01:32:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. [01:32:17]&lt;/p&gt;
&lt;h2 id=&quot;nadia-makarevichs-latest-deep-dive-bundle-size-investigation&quot;&gt;Nadia Makarevich’s latest deep dive: &lt;a href=&quot;https://www.developerway.com/posts/bundle-size-investigation&quot;&gt;Bundle Size Investigation&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And uh, Nadia Makarevic did a really good blog post talking about bundle size investigation. This is like near and dear to my professional career. [01:32:18]&lt;/p&gt;
&lt;p&gt;have done this so many times because If you don&#39;t think about bundle size, then it will cause you problems. This is a really good, like up to date explanation of the problem. You&#39;d naively set up a project and add a forum and oh my God, it&#39;s over five megabytes, uncompressed, and still a megabyte after you compress it. So, like it&#39;s really , a downside of the JavaScript ecosystem, having really good package management is that it&#39;s really easy a lot of code. [01:32:26]&lt;/p&gt;
&lt;p&gt;So you have to consciously think about how to prune the code you&#39;re using. I feel like I could have read a blog post like this in 2016. I certainly did. It&#39;s got a good bit talking about analyzing bundle size and using these visualizers to show, to reveal what is contributing to the overall size of the bundle in a nice visual hierarchical way through like nested boxes, tree maps, flame graphs for, I guess that&#39;s more execution time, stack. [01:32:55]&lt;/p&gt;
&lt;p&gt;Yeah, really good. If you, I don&#39;t know, want to be thoughtful about how much data you&#39;re sending, this is a good technical writeup of an expert doing it. [01:33:25]&lt;/p&gt;
&lt;h2 id=&quot;extensive-es2026-feature-preview&quot;&gt;&lt;a href=&quot;https://thenewstack.io/es2026-solves-javascript-headaches-with-dates-math-and-modules/&quot;&gt;Extensive ES2026 feature preview&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool. We&#39;ve got a big feature preview for ES 2026. This is an article from the New Stack, which is a, it feels like a tech journalism outlet in a way that is not common at all. So, uh, yeah, I appreciate them. [01:33:35]&lt;/p&gt;
&lt;p&gt;They put out a, a post talking about ES 26 solves JavaScript headaches with dates, math and modules. [01:33:48]&lt;/p&gt;
&lt;p&gt;So love that. I have problems with dates, math and modules all the time. I need to, well, I don&#39;t, I&#39;m not finding an actual list of things that will be coming out. I guess they&#39;ve got like a, a better precision for summing values and math tools. [01:33:55]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Temporal is the big one. [01:34:12]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I am excited for temporal. I&#39;m currently running into a problem where locally when I do &lt;code&gt;Date.now()&lt;/code&gt; I get something in my local EST time zone. But all of the database things are in UTC. So it is, there&#39;s, it thinks things are happening at a five hour offset from when they are, which won&#39;t happen in production. And that&#39;s an example of how JavaScript sucks at dates. [01:34:14]&lt;/p&gt;
&lt;p&gt;So I am excited for temporal because date.now should not always rely on your systems time zone. We need a way to encode time zones and date objects and JavaScript. We need it. It&#39;s so painful. So yeah. Exciting. Hopefully we&#39;ll get that. [01:34:36]&lt;/p&gt;
&lt;h2 id=&quot;react-reconciler-for-blender-3d&quot;&gt;&lt;a href=&quot;https://romanliutikov.com/blog/driving-3d-scenes-in-blender-with-react&quot;&gt;React reconciler for Blender 3D&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Recently mentioned examples of people doing someone did a React reconcile or for the Dear Image gooey tool that&#39;s GUI is for c plus plus that where, where everything gets redrawn, every frame. Meanwhile, someone did a React renderer for controlling blender with react. I think this is als. [01:34:53]&lt;/p&gt;
&lt;p&gt;Looking at the examples appear to be written in closure or closure script instead of JSX. And I think I&#39;ve seen some posts from this author where they&#39;ve previously talked about using react from closure script as well. So more examples of things you did not know you could do with react. [01:35:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Love it. [01:35:30]&lt;/p&gt;
&lt;h2 id=&quot;the-why-of-react-fiber&quot;&gt;&lt;a href=&quot;https://x.com/infinterenders/status/1997359890021634509&quot;&gt;The “why” of React Fiber&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I forgot we had this in the document, and I love that I basically said some of the things from it earlier. But somebody tweeted about react fiber and it&#39;s just a really good post. , it&#39;s very long. It&#39;s very like, casual and silly [01:35:31]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; and blog, post in tweet form. [01:35:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. But I, I like it. I&#39;m gonna read some passages. [01:35:49]&lt;/p&gt;
&lt;p&gt;&quot;React Fiber is honestly one of those things that people think they get until they actually look under the hood. And then suddenly the whole thing feels like some alien technology living inside JavaScript. Everyone parrots those same cell lines, like react, like fiber is the new Diffing engine, or fiber is concurrent rendering. And it&#39;s just so much more deeper and more deranged than that.&quot; [01:35:52]&lt;/p&gt;
&lt;p&gt;Like yes it is. It&#39;s a fucking scheduler! Like who re implements a scheduler? It&#39;s, you should never do that. There&#39;s always better. There&#39;s always more robust battle test and schedulers. That&#39;s like some core compiler interpreter, computer science degree kind of stuff. Like don&#39;t re-implement those. Those are the foundations. [01:36:09]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; The other way to look is they basically reimplemented a JavaScript execution stack. [01:36:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, they literally did that. Like I, I&#39;ve seen people complain about how like sometimes when you&#39;re debugging React stuff, you can&#39;t use certain developer tools because React manages its own stack. Like [01:36:32]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Boy, can I tell you about that one, thank you very much. It&#39;s what I&#39;ve done at Replay for the last few years. [01:36:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; right. Like it&#39;s literally duplicating logic that like V eight or, I don&#39;t, I don&#39;t remember any of the other runtimes off the top of my head. [01:36:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Monkey, JSC. [01:36:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Thank you. So like it&#39;s re-implementing things that every other JavaScript app gets for free from the runtime environment that it&#39;s executing in. But because React transcends individual runtimes, they need to re-implement that themselves anyway. It&#39;s fascinating. This is a good little reminder that like there be dragons in this tool that we use constantly. [01:37:00]&lt;/p&gt;
&lt;h2 id=&quot;async-react-articles-from-aurora-scharff-and-jack-herrington&quot;&gt;Async React articles from &lt;a href=&quot;https://blog.logrocket.com/the-next-era-of-react/&quot;&gt;Aurora Scharff&lt;/a&gt; and &lt;a href=&quot;https://blog.logrocket.com/react-19-2-the-async-shift/&quot;&gt;Jack Herrington&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And finally at the two hour mark in this podcast. Thank you for those of you who have stuck with us. Ricky Hanlon&#39;s talk on Async React from React Con, I think was one of the biggest pieces of messaging from the React team and showing us where React has arrived at and where it&#39;s going to go in the next couple years. [01:37:21]&lt;/p&gt;
&lt;p&gt;And Aurora Scharf and Jack Harrington have both done a lot great work in learning and teaching a lot of React concepts, right? Aurora has done a lot of conference talks and blog posts on Modern React features, suspense, async behavior, et cetera. And so they, they both put up blog posts on Blog Rocket within the last month or two talking about modern async React and what does it look like? What are the primitives, how do they fit together? How does this actually improve your code base? And what, why should you be using these things in your apps? [01:37:42]&lt;/p&gt;
&lt;p&gt;And with that, I think we may finally, finally be done [01:38:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; we&#39;re done. We&#39;re done. We did it. We did two hours of talking about React and by God we got it. [01:38:20]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Was, was this ever in doubt?? [01:38:26]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I mean, no, it&#39;s, yeah. This was good. I, I&#39;m, I&#39;m happy with this one. was good. Felt like a good chat. [01:38:28]&lt;/p&gt;
&lt;p&gt;Thank you everyone for joining us. Even I, I can&#39;t believe we still have what, 10 people here listening to us do appreciate you, like genuinely. [01:38:34]&lt;/p&gt;
&lt;p&gt;We will be back next month, I guess, in like six weeks at time of recording. But yeah, we&#39;ll be back here on the stage, back in your podcast feed just as soon as we can. And happy holidays. Merry Christmas. If you celebrate. Happy Hanukkah. If you, that&#39;s what you celebrate. [01:38:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Happy holidays folks. Thanks for listening to us. Thanks for being part of React Flux and part of the React community, and we continue to hope that hearing the three of us up here ramble is informative and provides value to you as a professional developer or non-professional developer as the case may be. [01:38:58]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Hopefully it&#39;s, I don&#39;t know, entertaining. We&#39;re, we&#39;re some fun personalities. We can be, we can be fun and useful. [01:39:14]&lt;/p&gt;
&lt;p&gt;Thank you so much. If you see anything that is newsworthy that you think we should discuss let us know in the #tech-reads-and-news channel here in Reactiflux. [01:39:20]&lt;/p&gt;
&lt;p&gt;Or you can send me an email at &lt;a href=&quot;mailto:hello@reactiveflux.com&quot;&gt;hello@reactiveflux.com&lt;/a&gt;. I read everything that comes in, so if you send it, I&#39;ll read it. This is a show that you get value from and wanna support. Best way to do so is by submitting a review on whatever platform you&#39;re listening to us on, and tell your friends and coworkers about us. [01:39:27]&lt;/p&gt;
&lt;p&gt;Go to a meetup, say, &quot;Hey, I like this podcast.&quot; Awesome. Thanks so much. See you next month. [01:39:42]&lt;/p&gt;
&lt;p&gt;See you year. [01:39:47]&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2025-12</link><guid isPermaLink="false">reactiflux-tmir-2025-12</guid><pubDate>Wed, 17 Dec 2025 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>TMiR 2025-11: Cloudflare outage, ongoing npm hacks, React Router is getting RSCs</title><description>&lt;iframe width=&quot;100%&quot; height=&quot;180&quot; frameborder=&quot;no&quot; scrolling=&quot;no&quot; seamless=&quot;&quot; src=&quot;https://share.transistor.fm/e/8aea071c&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#intro&quot;&gt;00:13&lt;/a&gt;]&lt;/code&gt; Intro&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#new-releases&quot;&gt;01:00&lt;/a&gt;]&lt;/code&gt; New releases
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#betterauth-14&quot;&gt;01:04&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.better-auth.com/blog/1-4&quot;&gt;BetterAuth 1.4&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#immer-11-rtk-211&quot;&gt;02:47&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/immerjs/immer/releases/tag/v11.0.0&quot;&gt;Immer 11&lt;/a&gt;, &lt;a href=&quot;https://github.com/reduxjs/redux-toolkit/releases/tag/v2.11.0&quot;&gt;RTK 2.11&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#storybook-10&quot;&gt;06:00&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://storybook.js.org/blog/storybook-10/&quot;&gt;Storybook 10&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#01-version-of-remix-teams-event-interaction-package&quot;&gt;06:22&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/remix-run/remix/tree/main/packages/interaction&quot;&gt;0.1 version of Remix team’s “event interaction” package&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#main-content&quot;&gt;08:04&lt;/a&gt;]&lt;/code&gt; Main content
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#ecosystem-panel-discussion-of-react-foundation-at-react-summit-ny&quot;&gt;08:08&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://gitnation.com/contents/panel-discussion-the-future-of-react-and-its-ecosystem&quot;&gt;Ecosystem panel&lt;/a&gt; discussion of React Foundation at React Summit NY&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#react-concurrent-stores-polyfill-react-redux-poc&quot;&gt;14:46&lt;/a&gt;]&lt;/code&gt; React Concurrent Stores: &lt;a href=&quot;https://github.com/thejustinwalsh/react-concurrent-store&quot;&gt;Polyfill&lt;/a&gt;, &lt;a href=&quot;https://github.com/reduxjs/react-redux/pull/2263&quot;&gt;React-Redux POC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#react-router-and-transition-usage&quot;&gt;17:52&lt;/a&gt;]&lt;/code&gt; React Router and transition usage
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#matt-brophy-and-ricky-discussing-nuances-of-behavior-use-with-react-router&quot;&gt;18:08&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/reactwg/async-react/discussions/5&quot;&gt;Matt Brophy and Ricky discussing nuances of behavior, use with React Router&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#the-state-of-tanstack-two-years-of-full-time-oss&quot;&gt;22:53&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://tanstack.com/blog/tanstack-2-years&quot;&gt;The State of TanStack, Two Years of Full-Time OSS&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#tanstack-db-05&quot;&gt;25:57&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://tanstack.com/blog/tanstack-db-0.5-query-driven-sync&quot;&gt;TanStack DB 0.5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#tanner-teasing-a-wip-tanstack-start-rsc-implementation&quot;&gt;31:01&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/tannerlinsley/status/1983999424486633931&quot;&gt;Tanner teasing a WIP TanStack Start RSC implementation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#state-of-the-web-ecosystem&quot;&gt;32:25&lt;/a&gt;]&lt;/code&gt; State of the web ecosystem
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#cloudflare-november-outage-postmortem&quot;&gt;33:13&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://blog.cloudflare.com/18-november-2025-outage/&quot;&gt;Cloudflare November outage postmortem&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#what-if-people-dont-want-to-create-things&quot;&gt;36:10&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://macwright.com/2025/10/21/what-if-they-dont-want-to.html&quot;&gt;&quot;What if people don&#39;t want to create things&quot;&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#when-everyones-a-developer-how-do-we-promote-the-web-platform-over-react&quot;&gt;39:39&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://webtechnology.news/when-everyones-a-developer-how-do-we-promote-the-web-platform-over-react/&quot;&gt;“When Everyone’s a Developer, How Do We Promote the Web Platform Over React?”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#related-dead-framework-theory-from-last-month&quot;&gt;45:53&lt;/a&gt;]&lt;/code&gt; Related, &lt;a href=&quot;https://aifoc.us/dead-framework-theory/&quot;&gt;“Dead Framework Theory”&lt;/a&gt; from last month&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#alex-russells-latest-stats-on-web-devices-and-network-budgets&quot;&gt;48:12&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://infrequently.org/2025/11/performance-inequality-gap-2026/&quot;&gt;Alex Russell’s latest stats on web devices and network budgets&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#npm-attack-shai-hulud-round-2&quot;&gt;51:48&lt;/a&gt;]&lt;/code&gt; Npm attack, &lt;a href=&quot;https://www.aikido.dev/blog/shai-hulud-strikes-again-hitting-zapier-ensdomains&quot;&gt;Shai-Hulud round 2&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#analysis-of-its-evolution-in-code-from-sept&quot;&gt;52:06&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.aikido.dev/blog/bugs-in-shai-hulud-debugging-the-desert&quot;&gt;Analysis of its evolution in code&lt;/a&gt; from Sept&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#our-plan-for-a-more-secure-npm-supply-chain-from-september&quot;&gt;55:23&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.blog/security/supply-chain-security/our-plan-for-a-more-secure-npm-supply-chain/&quot;&gt;Our plan for a more secure npm supply chain&lt;/a&gt; from September&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#npm-update-on-token-management-changes&quot;&gt;55:29&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.blog/changelog/2025-11-05-npm-security-update-classic-token-creation-disabled-and-granular-token-changes/&quot;&gt;NPM update on token management changes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#-lightning-round-&quot;&gt;55:34&lt;/a&gt;]&lt;/code&gt; ⚡ Lightning round ⚡
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#ts-60-hopefully-feb-2026-70-native-soon-after-more-details-in-the-typescriptfm-podcast&quot;&gt;55:38&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/danr.bsky.social/post/3m5fz3vw2z22s&quot;&gt;TS 6.0 hopefully Feb 2026, 7.0 (native) soon after&lt;/a&gt; (more details in the &lt;a href=&quot;https://share.transistor.fm/s/ad05eae6&quot;&gt;TypeScript.fm&lt;/a&gt; podcast)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#latest-tc39-proposal-updates&quot;&gt;56:03&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/robpalmer.bsky.social/post/3m62djhwj3k2i&quot;&gt;Latest TC39 proposal updates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#chrome-and-other-browsers-wants-to-remove-xslt-from-the-web-platform&quot;&gt;56:32&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://groups.google.com/a/chromium.org/g/blink-dev/c/CxL4gYZeSJA/m/yNs4EsD5AQAJ?pli=1&quot;&gt;Chrome (and other browsers) wants to remove XSLT from the web platform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#your-url-is-your-state-and-david-ks-goodbye-usestate-talk&quot;&gt;57:14&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://alfy.blog/2025/10/31/your-url-is-your-state.html&quot;&gt;“Your URL is Your State”&lt;/a&gt;, and &lt;a href=&quot;https://gitnation.com/contents/goodbye-usestate&quot;&gt;David K’s “Goodbye, useState” talk&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#aiden-bais-react-grab-util&quot;&gt;57:46&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.react-grab.com/&quot;&gt;Aiden Bai’s “React Grab” util&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#creating-a-custom-node-module-loader-to-import-from-bittorrent&quot;&gt;58:39&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://evanhahn.com/node-torrent-import/&quot;&gt;Creating a custom Node module loader to import from Bittorrent&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#ryan-carniatos-stream-on-researching-async-signals&quot;&gt;59:22&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=ori9xZhvNlc&quot;&gt;Ryan Carniato’s stream on researching “async signals”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#details-of-building-nodes-ts-type-stripping-support&quot;&gt;59:33&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://satanacchio.hashnode.dev/the-summer-i-shipped-type-stripping&quot;&gt;Details of building Node’s TS type stripping support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#the-web-animation-performance-tier-list&quot;&gt;59:58&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://motion.dev/blog/web-animation-performance-tier-list&quot;&gt;The Web Animation Performance Tier List&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#conferences-react-javascript&quot;&gt;01:00:14&lt;/a&gt;]&lt;/code&gt; Conferences (&lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://confs.tech/javascript&quot;&gt;Javascript&lt;/a&gt;)
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#cfps&quot;&gt;01:00:22&lt;/a&gt;]&lt;/code&gt; CFPs
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#react-paris-also-a-community-survey&quot;&gt;01:01:01&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://docs.google.com/forms/d/e/1FAIpQLSfLICWs7vpK5fuMkZyJk4GyDtZBs08NMKJ0eIOOZBUxo98beQ/viewform&quot;&gt;React Paris&lt;/a&gt; (&lt;a href=&quot;https://docs.google.com/forms/d/e/1FAIpQLSd0pjOsMo0z3fvhv9EhgvUBWA4CdIcsivOCQi8wBmiNc_yXPQ/viewform&quot;&gt;Also a community survey&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#jsworld-cfp-closes-dec-31-notifies-by-feb-1&quot;&gt;01:01:12&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://docs.google.com/forms/d/e/1FAIpQLSfv3GuXwsDyR42XsvJwfFsN4SKjy8WvKtqYp_nEK0yhzVNP1g/viewform&quot;&gt;JSWorld&lt;/a&gt; CFP closes Dec 31, notifies by Feb 1&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-11#ending&quot;&gt;01:01:18&lt;/a&gt;]&lt;/code&gt; Ending&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;2-vcarl: Hello! Thank you for joining us for the November edition of this month in React. As we recap what&#39;s going on in the React, React native and web ecosystems, we&#39;re coming to you live from Reactiflux, the place for professional developers using React. [00:00:00]&lt;/p&gt;
&lt;h2 id=&quot;intro&quot;&gt;Intro&lt;/h2&gt;
&lt;p&gt;2-vcarl: And I am Carl. I&#39;m a staff product developer and freelance community leader here at Reactiflux where I do community programs like these events and build tools to help keep the community operating. [00:00:13]&lt;/p&gt;
&lt;p&gt;1-acemarke: Hi, I&#39;m Mark. My day job is working at Replay.io and doing various time travel debugging and information architecture things outside of that I, I work on Red Ducks. I complain about the React docs and I collect links and I go rewrite libraries, Limmer. [00:00:22]&lt;/p&gt;
&lt;p&gt;2-vcarl: Mo unfortunately could not join. He had a fire drill happen, a metaphorical fire drill, happen at work like an hour before we started. But generally we have Mo, who is head of mobile at Theodo and is very active in the React native community. Kind of sad that he had to skip out this month because he just did React Native London, and I was hoping to hear how that went. [00:00:39]&lt;/p&gt;
&lt;h2 id=&quot;new-releases&quot;&gt;New releases&lt;/h2&gt;
&lt;p&gt;2-vcarl: But yeah, let&#39;s get straight into it with some new releases. [00:01:00]&lt;/p&gt;
&lt;h2 id=&quot;betterauth-14&quot;&gt;&lt;a href=&quot;https://www.better-auth.com/blog/1-4&quot;&gt;BetterAuth 1.4&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;2-vcarl: First off, we&#39;ve got better off 1.4. I actually use Better Off now. Woo. I had been excited about it for a while because I don&#39;t like authentication. Libraries generally like stuff like Passport or what, you know, even clerk or the SaaS businesses, just like none of them. [00:01:04]&lt;/p&gt;
&lt;p&gt;I didn&#39;t like them very much, so was very pleased to see an open source library that looked to cover many of the bases that I want and can confirm after using it that it does. So I&#39;m excited to see Better Off 1.4, which is the first release since I believe July when it did 1.3. A couple of quick highlights from it. [00:01:20]&lt;/p&gt;
&lt;p&gt;It&#39;s got stateless off. So you can do sessions without a database just by not giving it one, which is nice. It&#39;s also got SCIM provisioning for identities in multi-domain scenarios, which is cool. Also, some other little details like database joins and custom state for OAuth flows. But yeah, just auth is a shockingly deep subject when you actually start dealing with the nitty gritty weirdnesses of it. [00:01:40]&lt;/p&gt;
&lt;p&gt;And I have generally found most open source projects trying to support authentication to be, to leave something to be desired and better off leaves the least to be desired of the projects. I&#39;ve tried, so Love it. New version. [00:02:06]&lt;/p&gt;
&lt;p&gt;1-acemarke: I have thus far managed to stay away from dealing with auth at all in my career, and I would like to keep it that way. [00:02:20]&lt;/p&gt;
&lt;p&gt;2-vcarl: Yeah, that&#39;s not a bad call since I haven&#39;t been able to avoid it. I went a little bit deep on it and I don&#39;t hate that either. It&#39;s interesting. It&#39;s fascinating. Actually. I don&#39;t know, one of the vague. Startup ideas in the back of my brain is related to authentication and identity management, which could be cool. [00:02:28]&lt;/p&gt;
&lt;p&gt;I don&#39;t know, maybe I&#39;ll do something with that eventually. [00:02:44]&lt;/p&gt;
&lt;h2 id=&quot;immer-11-rtk-211&quot;&gt;&lt;a href=&quot;https://github.com/immerjs/immer/releases/tag/v11.0.0&quot;&gt;Immer 11&lt;/a&gt;, &lt;a href=&quot;https://github.com/reduxjs/redux-toolkit/releases/tag/v2.11.0&quot;&gt;RTK 2.11&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;2-vcarl: Mark, I want you to unveil your magnum opus. [00:02:47]&lt;/p&gt;
&lt;p&gt;1-acemarke: Happily. So I talked about this a bit last time, but Redux Toolkit relies on Immer for immutable state updates. It always has since day one. We&#39;ve gotten various complaints over the years that, you know, Immer is kind of slow, but we&#39;ve always said that we prefer the fact that it eliminates accidental mutations, makes reducers easier to write. [00:02:50]&lt;/p&gt;
&lt;p&gt;Of course, we want Redux toolkit to be fast, but we also want things to be correct and users to not have bugs. So I&#39;d done a little bit of perf investigation into Immer like a year ago. Saw that it had gotten slower, filed an issue. You know, it was kind of left there. And at the start of September, I myself dug in and started trying to see if I could optimize ER&#39;s performance. [00:03:11]&lt;/p&gt;
&lt;p&gt;And I spent well over a hundred hours collectively across September and October, deep diving into ems, codebase, comparing it to other libraries, understanding how it worked, and trained to do a bunch of performance optimizations. And so ended up filing a few different prs, Immer 10.2, shipped last month with some small tweaks, and Michelle West Rate just merged a big architectural change and released it as Immer version 11 just a couple days ago. [00:03:34]&lt;/p&gt;
&lt;p&gt;And then I was able to put out RTK two point 11, which picks that up. So free performance wins for Redux Toolkit and Nier. [00:04:04]&lt;/p&gt;
&lt;p&gt;2-vcarl: Heck yeah. That was what was the average speed up? [00:04:13]&lt;/p&gt;
&lt;p&gt;1-acemarke: The current builds average about 20 to 25% across all the different benchmarks, varying by scenario. And then there&#39;s another outstanding pr, which adds an optional array methods override plugin, which drastically speeds up array methods. [00:04:16]&lt;/p&gt;
&lt;p&gt;2-vcarl: Heck yeah. That&#39;s awesome. We love a core performance improvement and I, I wanna shout out the ecosystem performance. You know, I don&#39;t know, [00:04:34]&lt;/p&gt;
&lt;p&gt;1-acemarke: E 18 E folks are awesome. They have been doing a ton of work to clean up large dependency trees and slim down packages and remove dependencies across a wide variety of tools. [00:04:43]&lt;/p&gt;
&lt;p&gt;Yep. [00:04:56]&lt;/p&gt;
&lt;p&gt;2-vcarl: A stat that I believe we&#39;ll talk about later, I saw in general ecosystem commentary. Yeah. I guess in the NPM supply chain fact that we&#39;ll talk about later, a a a stat that came out of a blog post from that was that the average JavaScript project pulls in 683, I believe in, was it transitive dependencies? Just like, yeah. It&#39;s a lot. So when you&#39;ve got that many dependencies, performance of the ecosystem is challenging. Yeah. [00:04:56]&lt;/p&gt;
&lt;p&gt;1-acemarke: That doesn&#39;t surprise me. I know that. React app. The last I saw it defaulted to about 1500 dependencies, largely because of Webpack, et cetera. Vite&#39;s obviously a lot fewer, but still that&#39;s, that&#39;s not great, just for a whole variety of reasons. [00:05:21]&lt;/p&gt;
&lt;p&gt;2-vcarl: I guess teaser for y&#39;all. Later, towards the end of the episode, we&#39;re gonna talk about web ecosystem and there&#39;s been some blog posts talking about like. AI and how it defaults to building React instead of using the web platform and how do we promote the web overreact, things like that, which I don&#39;t know, it just feels that we just started bleeding into that topic, and so we will get much more deeply into that later in the episode. [00:05:37]&lt;/p&gt;
&lt;h2 id=&quot;storybook-10&quot;&gt;&lt;a href=&quot;https://storybook.js.org/blog/storybook-10/&quot;&gt;Storybook 10&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;1-acemarke: Next release. So Storybook 10 came out a few different big points there. One of the biggest is that it&#39;s now ESM only. They&#39;ve removed all the, the common JS artifacts, so they&#39;ve shrunk the install size and they&#39;ve also drastically shrunk the dependency chains as well, as well as some improvements to things like the mocking and some of the storybook formats. [00:06:00]&lt;/p&gt;
&lt;h2 id=&quot;01-version-of-remix-teams-event-interaction-package&quot;&gt;&lt;a href=&quot;https://github.com/remix-run/remix/tree/main/packages/interaction&quot;&gt;0.1 version of Remix team’s “event interaction” package&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;1-acemarke: And then one other release of note, the Remix folks are continuing to work on Remix V three after the initial demo and announcements, and they&#39;re trying to build it, as I understand it, with a lot of smaller reusable packages. And they just put out the first 0.1 alpha of their. Event interaction package, which is providing an abstraction for being able to compose events and listeners and behaviors together looks interesting. [00:06:22]&lt;/p&gt;
&lt;p&gt;I&#39;m not gonna claim I understand like exactly the benefits this comes, but nice to see the progress there and I suspect that a lot of folks are gonna get some use outta this. [00:06:49]&lt;/p&gt;
&lt;p&gt;2-vcarl: Yeah, I&#39;m reading the syntax here and it looks like a different way of adding event listeners to DOM nodes, which, sure. I don&#39;t know, there&#39;s weird quirks and certainly the Remix team and you know, Michael Jackson and Ryan Florence specifically have shown, have demonstrated a great willingness to jump into what many people consider solved problems to reexamine from first principles. [00:07:00]&lt;/p&gt;
&lt;p&gt;So, I dunno, they&#39;ve, they&#39;ve done that, they&#39;ve done that repeatedly with their own solved problems of data loading in routing. The interaction between data loading and routing. I feel like that&#39;s one of the bigger complaints about React router is that they keep reexamining that same question. So I don&#39;t know. [00:07:25]&lt;/p&gt;
&lt;p&gt;It&#39;s interesting that they do have interesting things to say when I&#39;ve seen them reexamine, quote unquote solved problems. So I&#39;ll, I&#39;m curious. This looks a little strange. It looks pretty divorced from the DOM structure, so if you just like on input element and then add a bunch of listeners for it, that&#39;s curious. [00:07:41]&lt;/p&gt;
&lt;p&gt;Anyway. Yeah. 0.1 release, we&#39;ll see what they come out with. [00:08:00]&lt;/p&gt;
&lt;h2 id=&quot;main-content&quot;&gt;Main content&lt;/h2&gt;
&lt;p&gt;2-vcarl: Okay. That&#39;s all the new releases we got so far. Let&#39;s go into some main content. [00:08:04]&lt;/p&gt;
&lt;h2 id=&quot;ecosystem-panel-discussion-of-react-foundation-at-react-summit-ny&quot;&gt;&lt;a href=&quot;https://gitnation.com/contents/panel-discussion-the-future-of-react-and-its-ecosystem&quot;&gt;Ecosystem panel&lt;/a&gt; discussion of React Foundation at React Summit NY&lt;/h2&gt;
&lt;p&gt;2-vcarl: First off, we want to talk a bit about, yeah, mark, you are on an ecosystem panel at React Summit this month. [00:08:08]&lt;/p&gt;
&lt;p&gt;1-acemarke: So let&#39;s see. Addie has money was moderating. We had Seth Webster from the React team, React Foundation, Shaundai Person, Amy Ner, Nicholas Gallagher, and myself. [00:08:15]&lt;/p&gt;
&lt;p&gt;A lot of the discussion was us asking Seth Webster questions about, so this React Foundation thing, like how is this actually gonna work? What does this actually mean for the React team and the project and the ecosystem? There is a video for the panel. It&#39;s not unlocked yet. I have access to it because I speak at GI Nation events, but the video should unlock within a couple weeks, I think a a few different points that Seth made during the panel itself. [00:08:25]&lt;/p&gt;
&lt;p&gt;And then I had a chance to have a follow-up discussion with him afterwards and. There&#39;s a few different very interesting p pieces of news about how the foundation&#39;s going to work and what their plans are. He talked a bit about some of the, the funding process. So, you know, large companies pay, you know, a good chunk of money to be members. [00:08:55]&lt;/p&gt;
&lt;p&gt;The, the existing. Board member companies have already paid up for like three to five years, and it sounds like he&#39;d actually been working on putting the foundation together for over four years. Like this was a very long term kind of a process. [00:09:16]&lt;/p&gt;
&lt;p&gt;And they&#39;re hoping to do a number of different things with the money. They want to hire some additional engineers. And he even said some of that would be spent on having engineers triage the issues. And if you&#39;ve ever looked at the React repo, you know, that&#39;s a thing that they do not do very often. So even something like that sounds good. They want to hire some more people to work on the actual docs and they&#39;re hoping to give money out to communities in some way. [00:09:31]&lt;/p&gt;
&lt;p&gt;Don&#39;t know details on that, but [00:10:00]&lt;/p&gt;
&lt;p&gt;2-vcarl: Tell me more! [00:10:02]&lt;/p&gt;
&lt;p&gt;1-acemarke: Exactly. Another data point. So a lot of the plans have to do with the development process of the React project itself and transparency around that. Apparently they were even hoping to launch the foundation like a year and a half ago. And then they realized that like, &quot;our own in day-to-day development processes aren&#39;t ready for that. We need to dog food the processes ourselves first so that we&#39;re more ready when the foundation goes live.&quot; [00:10:03]&lt;/p&gt;
&lt;p&gt;And so some of that was actually having docs and plans as new features are being developed or treating things in kind of like a, you know, TC 39 staged process. Approach, but one of the biggest things that Seth told me directly was that up until now, the React team has had, you know, their, like their weekly status meetings and those are purely internal. [00:10:36]&lt;/p&gt;
&lt;p&gt;First off, it was just all the React team working at Meta and then it was, you know, meta plus versal. But those meetings have always been internal, private, and non-visible. And Seth said that they eventually want to literally open up the weekly React team planning meetings to the public even as like a, like a Zoom call with no password. [00:11:00]&lt;/p&gt;
&lt;p&gt;And that eventually, like designated community reps would even be able to actively participate. In those discussions. So that&#39;s a radical change in the development of React itself. He also said that they&#39;re planning to resurrect or like completely redo the RFC process, which frankly was kind of dead from the beginning. [00:11:24]&lt;/p&gt;
&lt;p&gt;It was where random people from the community posted ideas that got ignored and the React team posted, finished things that they planned to ship and then people argued over the naming and the React team ignored that. So like historically, the RFC process was pretty much irrelevant to actual React development. [00:11:46]&lt;/p&gt;
&lt;p&gt;Now they&#39;re talking about making it like a real meaningful discussion and part of the planning process. Now again, like do I know how this is gonna work out in practice? No. But I can see the amount of effort and the intent. Behind the foundation and the plans that they&#39;re talking about. And even if it doesn&#39;t end up going exactly as they, or we would hope, I see good faith and good intentions behind all the work that they&#39;re trying to do around the process here. [00:12:04]&lt;/p&gt;
&lt;p&gt;So I&#39;m actually very, very excited about this. [00:12:36]&lt;/p&gt;
&lt;p&gt;2-vcarl: Yeah, that&#39;s interesting. Oh, I got a lot of thoughts rattling around my head. &#39;cause that&#39;s a lot of stuff that I&#39;ve looked at trying to contribute towards the solution of, yeah, I don&#39;t know. It&#39;s, I fundamentally, I feel like the problem they&#39;re dealing with is that a lot of people care about the outcome, the output, what they make and what React is. And not a lot of people actually have like the context and the background to like meaningfully contribute to the advancement of that goal. [00:12:39]&lt;/p&gt;
&lt;p&gt;You know, to respond to what you just said about like their motivations and their what they want to do. I don&#39;t think that&#39;s ever really been the problem, they&#39;ve always had good intent and I even think a pretty clear eye picture of what the problems are. But I think the problems are really thorny and complex and the solutions to them are non-obvious. And even when you have a good solution idea, executing it in a way that is effective and that operates on the kind of like timescales that React is around for is just really challenging. [00:13:08]&lt;/p&gt;
&lt;p&gt;Like it&#39;s, you know, anyone can spin up a process and run it twice and you know, maybe that, like you do, you call for comments and you run a community discussion and round tables and whatever, but like that plays out over the timescale of like weeks and months and React seems to plan on the order of years and is, now has existed for a decade. [00:13:42]&lt;/p&gt;
&lt;p&gt;So, you know, with like there&#39;s possibility for its scope to expand from thinking in terms of years to thinking in terms of, I don&#39;t wanna say decades, but that&#39;s the next unit of time. That&#39;s the next order of magnitude. I hope they can achieve their goals. I am looking forward to seeing some more roadmap, transparency of some sort. [00:14:05]&lt;/p&gt;
&lt;p&gt;Actually that&#39;ll be really great for us, for you and I. That&#39;ll be great. Yep. That&#39;ll be a great source of signal that we can then pick apart and analyze to surely, to much to their chagrin by way of drawing attention to things that are high context [00:14:23]&lt;/p&gt;
&lt;p&gt;1-acemarke: as opposed to like stalking the open PRs list. [00:14:40]&lt;/p&gt;
&lt;p&gt;2-vcarl: Yeah. Right. Cool. Nice. Love that. [00:14:43]&lt;/p&gt;
&lt;h2 id=&quot;react-concurrent-stores-polyfill-react-redux-poc&quot;&gt;React Concurrent Stores: &lt;a href=&quot;https://github.com/thejustinwalsh/react-concurrent-store&quot;&gt;Polyfill&lt;/a&gt;, &lt;a href=&quot;https://github.com/reduxjs/react-redux/pull/2263&quot;&gt;React-Redux POC&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;1-acemarke: So on that note, another item that I&#39;ve personally been involved in is the work on the upcoming React Concurrent Stores API. So when React 18 came out, the React team included the Uyc external store hook as the official built-in way for third party libraries like Redux, Zein, Jo Tai, whatever else to integrate into React, take an external state update, turn it into a React re-render, and it worked. [00:14:46]&lt;/p&gt;
&lt;p&gt;But it also had a very intentional design limitation that if you do an update in the middle of a paused React render, you know, something transition like then it bails out of that and just does a complete top to bottom render. So you&#39;re kind of throwing away some of the benefits of React, being able to pause itself. [00:15:13]&lt;/p&gt;
&lt;p&gt;And that was because they, they really didn&#39;t have a better idea for how to do that kind of interop. So this concurrent store&#39;s API is supposed to be essentially a new equivalent to use sync external store, but concurrent transition compatible. And Jordan Eldridge, who&#39;s on the relay team, has been working on the design and initial prototype IMP implementation for this. [00:15:32]&lt;/p&gt;
&lt;p&gt;And so he put out a polyfill package that roughly implements the prototype as a standalone library. And then I&#39;ve been talking with him about, you know, here&#39;s what Redux would probably need to make this work. Here&#39;s our, our requirements for this. And so I was able to then take his proof of concept package and put up a draft PR for React Redux that just swapped out our used selector implementation to use that instead. [00:15:57]&lt;/p&gt;
&lt;p&gt;And it basically worked, I mean, just the one test file found a couple edge cases, but like most of our tests passed, we&#39;re not doing anything transition related in our tests. But it&#39;s good to know that like your baseline standard behavior works. [00:16:25]&lt;/p&gt;
&lt;p&gt;And this also turned up several more things we&#39;ll have to figure out, like, quality checks and how do you handle selectors throwing errors, and we&#39;re talking about when can React safely, call selectors, can it delay it due to batching and things like that. So also very excited to see the progress being made on this API. A lot of people have asked for external state transition compatibility, and so this is going to be a big deal for the ecosystem. [00:16:39]&lt;/p&gt;
&lt;p&gt;2-vcarl: Interesting. Cool. I&#39;m just trying to put this in a little bit of context for myself. So this is a, an exploration of an API for a concurrent store that they&#39;ve indicated intent to ship eventually. Is that right? Mm-hmm. [00:17:08]&lt;/p&gt;
&lt;p&gt;1-acemarke: Yeah. So basically a, a new equivalent of &lt;code&gt;useSyncExternalStore&lt;/code&gt;, but minus the sync restriction. [00:17:22]&lt;/p&gt;
&lt;p&gt;2-vcarl: Got it. Okay, cool. Interesting. You called it a poly fill, and I see in the blog post it&#39;s labeled a pony fill, which I had to refresh my memory on the distinction; a poly fill fills in a gap in the platform transparently, and a pony fill offers the same functionality, but as a standalone module that you have to import. [00:17:30]&lt;/p&gt;
&lt;p&gt;There you go. Now you know. [00:17:50]&lt;/p&gt;
&lt;h2 id=&quot;react-router-and-transition-usage&quot;&gt;React Router and transition usage&lt;/h2&gt;
&lt;p&gt;1-acemarke: So one more item kind of related to that. At React Conf, Ricky Hanlon announced a new Async React Working Group to provide support to the, you know, the community and the ecosystem on, you know, improving the React docs around async behavior, helping libraries get set up to use these methods. [00:17:52]&lt;/p&gt;
&lt;h2 id=&quot;matt-brophy-and-ricky-discussing-nuances-of-behavior-use-with-react-router&quot;&gt;&lt;a href=&quot;https://github.com/reactwg/async-react/discussions/5&quot;&gt;Matt Brophy and Ricky discussing nuances of behavior, use with React Router&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;1-acemarke: And so Matt Brophy from the React router team had a good discussion with Ricky about how they&#39;re trying to handle using transitions in React router. So there was a, a good technical discussion about the nuances of behavior. And then the React router team also put out a pre-release version or unstable option to enable some of the transition behavior as well. [00:18:08]&lt;/p&gt;
&lt;p&gt;So starting to see some adoption and this ties into the React team wanting to see libraries pick up these behaviors like transitions and action props and, and build them in. I will say that I had a couple discussions at JS Nation React Summit where some people were questioning whether making the entire ecosystem change semantics and behaviors and add props to make the React team happy was gonna be a good idea or feasible, but we&#39;ll see. [00:18:33]&lt;/p&gt;
&lt;p&gt;2-vcarl: Yeah, interesting. I see a bit of why they, why the core team desires that. Transitions are definitely like. My understanding of the core team&#39;s incentives and what they care about is ability to use the platform and things like that. So given that like transitions are a part of the platform and they are interested in allowing people to take advantage of platform improvements, I understand why they would message, &quot;in order to use this, the entire ecosystem must make this change to the patterns they use for compatibility reasons.&quot; [00:19:03]&lt;/p&gt;
&lt;p&gt;But that is very, I don&#39;t know. That&#39;s a big challenge. It&#39;s herding a lot of cats who don&#39;t necessarily, aren&#39;t even necessarily aware that there&#39;s an attempt to herd being made. [00:19:38]&lt;/p&gt;
&lt;p&gt;1-acemarke: If you watch Ricky&#39;s talk from React conf, you know, he, he demoed switching from like a bunch of manual use effects and loading states to suspense and transitions and then he pointed out, and so now you have a much better experience, but you also had to do, you know, call start transition and all your click handlers and so on. [00:19:49]&lt;/p&gt;
&lt;p&gt;There&#39;s even some painful nuances there because start transition is based on setting a flag internally for the current event loop tick. If you have a callback that has an await, you leave the event loop tick. And if you then want to do another state update after the await, you have to call start transition a second nested time. [00:20:05]&lt;/p&gt;
&lt;p&gt;And Ryan Carniato actually pointed out to me that like Ricky has repeatedly messed this up in his own demos, it&#39;s a very foot gun prone behavior pattern. And so the combination of, like, you currently have to call, start transition yourself, plus trying to get the patterns right, is a good argument for let&#39;s just build this into all the libraries. [00:20:29]&lt;/p&gt;
&lt;p&gt;But that takes time and effort and coordination. [00:20:53]&lt;/p&gt;
&lt;p&gt;2-vcarl: Yeah. Right. Like that was one of my big takeaways from Ricky&#39;s talk was, oh, this looks hard. Which is not the best takeaway if you&#39;re trying to convince the whole ecosystem to move on to something. [00:20:56]&lt;/p&gt;
&lt;p&gt;1-acemarke: There is a lot of complexity in mental model of React and the kinds of apps we&#39;re trying to build. [00:21:08]&lt;/p&gt;
&lt;p&gt;And both the fact that you now need to keep track of additional API methods that you have to call and the semantics and when you&#39;re supposed to use them. And the fact that your, your state is now kind of in multiple Schrodinger&#39;s box, multiple versions at once. It&#39;s, it&#39;s definitely a lot of additional mental overhead. [00:21:15]&lt;/p&gt;
&lt;p&gt;2-vcarl: Yeah, right. I&#39;m just looking at, in this GitHub thread that you linked, Ricky says, you know, oh, I think there might have been some confusion. Here&#39;s how you do it for navigations and it&#39;s, you know, function, navigate to A URL that has start transition, which, you know, wraps set router state, which then wrap, you know, it&#39;s argument is a function that I guess returns A URL. It&#39;s a thunk for set router state in start transition, in navigate. I don&#39;t know, they&#39;re like, that&#39;s just complicated. Like what? Why are we wrapping this with so many different functions just to navigate? That&#39;s uncomfortable. It feels like the wrong API in some way. You know, like it an API should obscure complexity and this does not obscure the complexity. [00:21:35]&lt;/p&gt;
&lt;p&gt;So, interesting. I want to be able to take advantage of transitions in apps. &#39;cause that&#39;s super great if you can just like easily convey that you are here and you&#39;re about to go here. Instead of just going there, like you get a lot of really powerful things that you can do for user experience and, you know, whatever, all sorts of stuff, if you communicate the transition instead of just updating the current state of your app. [00:22:17]&lt;/p&gt;
&lt;p&gt;But yeah, I don&#39;t, I, I&#39;m not sold on this. I&#39;m not sold on one I&#39;m seeing so far. [00:22:43]&lt;/p&gt;
&lt;p&gt;1-acemarke: Okay. Moving on to the next related chunk of topic. [00:22:48]&lt;/p&gt;
&lt;h2 id=&quot;the-state-of-tanstack-two-years-of-full-time-oss&quot;&gt;&lt;a href=&quot;https://tanstack.com/blog/tanstack-2-years&quot;&gt;The State of TanStack, Two Years of Full-Time OSS&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;1-acemarke: The Tan Stack folks have a bunch of updates that they&#39;ve put out both blog posts and versions. So Tanner put out an article on the state of Tan Stack as an organization and his own work as a full-time open source maintainer for the last couple years. [00:22:53]&lt;/p&gt;
&lt;p&gt;Also, again heard, you know, heard some of this from, from him directly at a React summit loosely. He himself has been full-time supported open source for the last couple years, sponsorships to the TN stack org. Tan Stack Libraries are, you know, as we all know, very, very widely adopted and certainly query is the standard Fritz thing at this point. [00:23:13]&lt;/p&gt;
&lt;p&gt;Router and is picking up a lot, A lot of popularity start is almost 1.0 and he&#39;s hoping to be able to start to bring in some part-time or even full-time. Uh. People to hand stack the company in the near future, essentially other. Current maintainers for various stand sand stack libraries who would then be able to potentially switch to doing that as their actual job. [00:23:34]&lt;/p&gt;
&lt;p&gt;So essentially he&#39;s been fortunate enough to have this work out for him and he&#39;s hoping to share that ability with other people working on the projects. [00:24:00]&lt;/p&gt;
&lt;p&gt;2-vcarl: Yeah, I see. He says monthly sponsorships for 12 core contributors and short term contracts for another three to five people. I guess that&#39;s not clear what monthly sponsorships means. [00:24:09]&lt;/p&gt;
&lt;p&gt;I, my assu, my assumption there would be like their, maybe not full time, but getting like sign, you know, significant compensation. But that may not necessarily be true. [00:24:20]&lt;/p&gt;
&lt;p&gt;1-acemarke: I don&#39;t know numbers, but I think at the moment the others are doing open source and they&#39;re full-time and getting some, some stipends and in the next couple years he&#39;s looking at actually hiring some of them. [00:24:30]&lt;/p&gt;
&lt;p&gt;2-vcarl: Cool. Love that. That&#39;s super hard. Building revenue so that you can actually support other humans is actually really challenging. I really like this blog post about, you know, Tan Stack for two years. I like this line. You know, building a full stack framework is hard. I knew that from watching other teams do it. [00:24:42]&lt;/p&gt;
&lt;p&gt;Most of them had something I didn&#39;t. Capital Next Gatsby Redwood Remix all had funding companies or acquisition paths and that that definitely is something that feels very different about Tans stack. It feels very much like he couldn&#39;t not do this. Like he just had spent several years working in this problem space and solving his own problems with the freedom to publish them so that other people can take advantage of his work. [00:24:56]&lt;/p&gt;
&lt;p&gt;And then got to a point where it just made sense to invest more effort and take those a little bit further than they could go. Absent that. Level of dedication I, which i, I love. That&#39;s just like, that&#39;s, I don&#39;t know, finding that kind of work to do for yourself is what I&#39;ve been looking for. And it&#39;s really hard to find, and I love that Tanner Winsley has apparently found it. [00:25:20]&lt;/p&gt;
&lt;p&gt;Yeah. And also having 16 partners doing sponsorships is also great. Like that, that, that may not be capital, but that&#39;s, that&#39;s great. That&#39;s nice. Having tried to find sponsors myself, like getting 16, it&#39;s like, oh shit. Good job. That&#39;s awesome. [00:25:43]&lt;/p&gt;
&lt;h2 id=&quot;tanstack-db-05&quot;&gt;&lt;a href=&quot;https://tanstack.com/blog/tanstack-db-0.5-query-driven-sync&quot;&gt;TanStack DB 0.5&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;1-acemarke: Tan Stack DB is a new work in progress package largely being worked on by Kyle Matthews, formerly of Gatsby, currently of electric SQL, that is meant to be kind of like a half a sync engine layer on top of another data source. And so like one of the common usage patterns for that would be you wrap it on top of your 10 stack query, you know, API definitions. And so maybe you&#39;ve got some endpoints for fetching. Post comments, users, et cetera. [00:25:57]&lt;/p&gt;
&lt;p&gt;But then it presents like a sync engine like interface on top of that, and it&#39;s got a bunch of data flow analysis baked in so that it can do things like partial fetches or only re fetching, you know, certain pieces of data, joining, essentially presenting like a normalized facade layer over the individual endpoints so that they act like they&#39;re unified almost as a like a replacement for a GraphQL style API. [00:26:27]&lt;/p&gt;
&lt;p&gt;And so they&#39;ve been working on this and it has integrations with Tan Stack Query and then Electric SQL and a few other data packages. And Tanner pointed out to me at React Summit that it really just needs an adapter layer to be able to connect to another library. And I could totally build one for RTK query. [00:26:54]&lt;/p&gt;
&lt;p&gt;And so I was actually briefly playing with that on the flight home. I haven&#39;t had a chance to push it further, but I&#39;m actually, I&#39;m actually very excited to play with that more myself because like Tan Stack query, we made the decision to make RTK query non normalized. It just caches the response from the server. [00:27:12]&lt;/p&gt;
&lt;p&gt;And so if this essentially let us make a normalized layer on top of our own library without us having to make any further API changes. That&#39;s very interesting to me. [00:27:29]&lt;/p&gt;
&lt;p&gt;2-vcarl: I&#39;m also thinking about, you know, this is from Kyle Matthews who did Gatsby, which, you know, notoriously exposed a GraphQL, you know, layer on top of whatever data sources you wanted to give it. [00:27:41]&lt;/p&gt;
&lt;p&gt;So just, I&#39;m thinking about how, how much of Kyle Matthews work could be described as providing query abstractions over arbitrary data layers with data connectors. [00:27:54]&lt;/p&gt;
&lt;p&gt;1-acemarke: That&#39;s a good point. I, I had, I hadn&#39;t even drawn that connection that this is actually very related to his prior work. [00:28:05]&lt;/p&gt;
&lt;p&gt;2-vcarl: If you described this at a certain level of abstraction, this sounds just like GraphQL, Relay, Gatsby, a bunch of other stuff. But I do see the niche that it occupies and how it&#39;s distinct from those projects. It&#39;s kind of like GraphQL, except instead of the network boundary, it&#39;s like the component to data store boundary on your client app, which it, that&#39;s useful . [00:28:11]&lt;/p&gt;
&lt;p&gt;Like what you just said about how you don&#39;t normalize in RTK query, I&#39;ve landed on that as being generally a good architectural decision to make in applications because like if you start doing data transformations, you know, bespoke data transformations per endpoint, then it becomes really hard to change those endpoints. [00:28:33]&lt;/p&gt;
&lt;p&gt;If you&#39;re changing the underlying data, then you&#39;ve gotta change all the code at the same time. Whereas if you just take whatever the API gives you and then write like a transformer on top of that, then it&#39;s just you, you add a layer of abstraction for yourself that gives you a little bit more flexibility around timing of some types of changes. [00:28:53]&lt;/p&gt;
&lt;p&gt;So, yeah, I don&#39;t know. That&#39;s, it&#39;s interesting. This is an interesting project. I dunno, something about it feels like I don&#39;t quite know where I would take advantage of it for myself, but I could see the right app with the right kind of team operating it, finding this and being like, this is exactly what we need. This solves multiple challenging thorny problems that we have or, so yeah, I don&#39;t know. It&#39;s interesting. [00:29:17]&lt;/p&gt;
&lt;p&gt;1-acemarke: My own personal to-do list is massive at this point. Both like Redux and even just like personal life stuff. But I, I absolutely want to go back and, and play with my own RTK query integration prototype for that in the near future. [00:29:40]&lt;/p&gt;
&lt;p&gt;2-vcarl: Yeah, I generally love the idea of sync engines. One of my core beliefs about writing code is that many more applications that we use have no technical necessity to be online only. [00:29:52]&lt;/p&gt;
&lt;p&gt;Like, there are a lot of things, like, for example, my favorite canonical example of this is like Gmail. If you&#39;re using the Gmail app. It doesn&#39;t actually care if you&#39;re online because it is doing synchronization of your emails in the background. And so you can just interact with it normally while you&#39;re fully offline and later it will do all the things like synchronize the read states or like, you know, which emails you&#39;ve archived and deleted and yada, yada yada. Completely transparently. Like I have never thought about, oh, I should wait to do this later when I&#39;m online so I don&#39;t cause weird problems for myself. And I do think about that all the fucking time in various other apps that I use. So like there, that&#39;s something that we used to do that we no longer do because it&#39;s hard. [00:30:06]&lt;/p&gt;
&lt;p&gt;I love seeing more effort and energy being expended into making it easier to do offline things. And sync engines are a big part of that. And so abstractions, over sync engines are also a part of that. Great. [00:30:45]&lt;/p&gt;
&lt;h2 id=&quot;tanner-teasing-a-wip-tanstack-start-rsc-implementation&quot;&gt;&lt;a href=&quot;https://x.com/tannerlinsley/status/1983999424486633931&quot;&gt;Tanner teasing a WIP TanStack Start RSC implementation&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;1-acemarke: The Tan Stack router folks also put out a really good blog post talking about how they did some massive optimization on route matching, including using a somewhat lesser known data structure called, I think it&#39;s pronounced a try, T R I E. [00:31:01]&lt;/p&gt;
&lt;p&gt;I love I I love seeing optimization breakdowns. So good article there. And then since we&#39;ve done plenty of, you know, stuff being teased on Twitter discussion in the past with Remix and everything else, Tanner has been teasing that they are working on RSC support for Tan Techstar. And I can say that he showed me a demo and it&#39;s unconventional. [00:31:13]&lt;/p&gt;
&lt;p&gt;It is not what you would expect after having used Next, and yet it totally makes sense in its own way once you see it. So as I understand it, they&#39;ve made real progress on implementing it. They&#39;ve figured out the design and now it&#39;s push it forward and make it actually a thing. I have no idea how soon this will be revealed, but I think once this comes out, it will be a very interesting, challenging take on our understanding of server components and how they, how to use them. [00:31:36]&lt;/p&gt;
&lt;p&gt;2-vcarl: I would certainly say that the way Next has done it does not seem to be like the end all, be all of great implementation. So if they have found a new way to approach it, hell yeah here for it. That&#39;s awesome. [00:32:10]&lt;/p&gt;
&lt;p&gt;1-acemarke: So there, there&#39;s your vague tweet for the month. [00:32:21]&lt;/p&gt;
&lt;p&gt;2-vcarl: Yeah. Right. [00:32:24]&lt;/p&gt;
&lt;h2 id=&quot;state-of-the-web-ecosystem&quot;&gt;State of the web ecosystem&lt;/h2&gt;
&lt;p&gt;2-vcarl: Let&#39;s talk a little more broadly. Let&#39;s talk about the state of the web ecosystem, I guess like to intro our subtopics under state of the web ecosystem. I wanna talk a bit about like the CloudFlare outage, the NPM ongoing attacks. Like this is not a new attack, this is a continuation of the previous attacks, plural, that we&#39;ve discussed, as well as Alex Russell had a decent blog post. I say decent because I don&#39;t know, it&#39;s it qualified, decent it, it&#39;s well written, it&#39;s well argued, but I don&#39;t necessarily agree with his conclusions. And also there, there&#39;s some conversation about reacts place in the ecosystem and AI and things like that. So that&#39;s the shape of this state of the web ecosystem chat that I want to start or that I want to have, I guess. [00:32:25]&lt;/p&gt;
&lt;h2 id=&quot;cloudflare-november-outage-postmortem&quot;&gt;&lt;a href=&quot;https://blog.cloudflare.com/18-november-2025-outage/&quot;&gt;Cloudflare November outage postmortem&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;2-vcarl: Yeah let&#39;s start at CloudFlare. They had an outage on the, earlier this month, about a week ago, 18th of November. They say in their outage postmortem that it was triggered by a change to the permission system of one of the databases, which caused it to output entries ba- basically, it produced too large of a file that then got distributed out and the size of that larger file getting distributed caused performance load that took down the network. [00:33:13]&lt;/p&gt;
&lt;p&gt;1-acemarke: Check me this. Another factor on it was they, one of the services was written in rust and it had an expectation that the file would only be so big and there was, I think there was a rust line of code that basically said if it doesn&#39;t fit, panic. Yeah. That a bad file with like they had 60 features, a limit of 200 and a line of code that basically said if it gets over 200, throw, throw an error or kill the service. [00:33:40]&lt;/p&gt;
&lt;p&gt;2-vcarl: Yeah, that&#39;ll do it. Yeah. &quot;Each module ran on the proxy service has a number of limits to avoid unbounded memory consumption.&quot; Somewhat questioned the wisdom of that because the reason you would have limits on memory consumption in place would be to avoid outage and downtime. And so if your resolution to, the outcome of your limit, if memory usage gets too high is to crash, that is functionally very similar to an out of memory error. [00:34:08]&lt;/p&gt;
&lt;p&gt;Maybe it&#39;s, I guess it&#39;s easier to debug, I guess you can, out of memory errors cause crazy, unpredictable failures, I guess. So at least this is a predictable failure that strongly indicates where the, the excessive memory use is coming from. [00:34:36]&lt;/p&gt;
&lt;p&gt;But yeah, it, it was pretty serious. I actually didn&#39;t notice, which I&#39;m glad about. It&#39;s nice to not be so online that you don&#39;t immediately notice every, I don&#39;t know, every outage, but yeah. This kind of, I think this was a, a, a good demonstration of the place in the ecosystem that CloudFlare occupies and how many different services truly rely on its stable operations. Yeah. [00:34:49]&lt;/p&gt;
&lt;p&gt;1-acemarke: Trying to make the trade-offs between the web is decentralized. Anyone can run their own thing versus, Hey, look, there&#39;s benefits to having centralization. Let&#39;s all put our GitHub, or let&#39;s, let&#39;s all put our git repositories on the same service so we can, you know, log in and share them and comment back and forth. [00:35:11]&lt;/p&gt;
&lt;p&gt;Let&#39;s put all our social media comments on the same service. We can have commentary back and forth. Let&#39;s all use this widely spread CDN and DDoS protection service that also has a bunch of really cool backend services. And then when one of those big services goes down, it ends up having, or everybody put everything in AW, AWS East one. [00:35:29]&lt;/p&gt;
&lt;p&gt;2-vcarl: Yeah. Right, right. Yeah. Right. Or, [00:35:50]&lt;/p&gt;
&lt;p&gt;1-acemarke: or even like we, we put it in AWS East two, but AWS themselves relied on AWS East one, and then it goes down. We keep burning into these big dependencies that end up having massive effects on the internet when they go down. [00:35:52]&lt;/p&gt;
&lt;p&gt;2-vcarl: This feels like a good transition point to a link that we had slightly later down. [00:36:06]&lt;/p&gt;
&lt;h2 id=&quot;what-if-people-dont-want-to-create-things&quot;&gt;&lt;a href=&quot;https://macwright.com/2025/10/21/what-if-they-dont-want-to.html&quot;&gt;&quot;What if people don&#39;t want to create things&quot;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;2-vcarl: Tom McRight, who is not a name I recognize, put out a blog post called What If People Don&#39;t Want to Create Things? And that feels like what you&#39;re talking about, like the ideals of the web is decentralized, you know, their own domain, right? Sharing knowledge, sharing skills, sharing tools, and I love that. I agree with that. I aspire to those ideals. [00:36:10]&lt;/p&gt;
&lt;p&gt;But it&#39;s also true that like we kind of just want stuff to work. We want it to just kind of be stable and you know, what&#39;s not stable, decentralized things that have a smattering of volunteers maintaining it. That&#39;s kind of the distinction. Like that&#39;s kind of the trade off is like over time decentralized things with enthusiastic maintainers and open source, over time that stabilizes and grows and becomes great in a way that proprietary code can&#39;t, because you know, you can&#39;t inspect it, you can&#39;t say like, I&#39;m encountering this bug. Let me go look at the code. Oh, here&#39;s where it&#39;s coming from. Let me tell them about it and give them a reproduction. And contribute to a fix. Like if I encounter a problem like that in any of these many proprietary tools that I use, then there&#39;s just no path for me to do that, so. [00:36:33]&lt;/p&gt;
&lt;p&gt;But on the other hand, they have the capital and the employees to have people proactively looking for that, where it&#39;s their job. That&#39;s the tension. I tend to believe over a long enough time scale that distributed, decentralized things like the web will be better than anything that&#39;s like proprietarily developed. [00:37:25]&lt;/p&gt;
&lt;p&gt;But it has to work well enough to get the attention. And you know, in this attention economy we&#39;re in, it&#39;s very hard to get people who have enough bandwidth of their attention to say, &quot;I have found this problem, let me chase it down to its logical conclusion and contribute to a fix being actually shipped for me and people like me.&quot; [00:37:47]&lt;/p&gt;
&lt;p&gt;1-acemarke: We aren&#39;t gonna go off on this, but I can even see some tangential connections with things like open source as a concept, open source maintainer, burnout. Like most people like using an app or a library or even even developers using a library, like in the end, do they actually care that it&#39;s open source? [00:38:05]&lt;/p&gt;
&lt;p&gt;No, they just want to download the thing and have it work, whether it&#39;s Libre office or you know, a paint, you know, paint program or Better Auth or whatever. And the fact that the code&#39;s open doesn&#39;t matter. It&#39;s like I, as the consumer of this thing at this level, just want it to work. And if it doesn&#39;t, I ask the person who builds it, just make it work. [00:38:23]&lt;/p&gt;
&lt;p&gt;2-vcarl: Right. I&#39;ll call out a couple of quotes from here. &quot;Beautiful data visualizations are free to make, but the supply of people who really love and know D3 is a lot lower than I expected it would be. I love home-cooked apps and malleable software, but I have a gnawing feeling that I&#39;m in a bubble when I think about them. Most people&#39;s lives are split into the things that they affect and create and the things that already exist and wanna tune out and automate.&quot; [00:38:46]&lt;/p&gt;
&lt;p&gt;I think that&#39;s a, I think that&#39;s insightful. I think that speaks to a deep, I don&#39;t know, tension in this. Like, yes, AI lets you do a much larger range in a much shorter time span than used to be feasible. But do people want to do that? I don&#39;t know. [00:39:07]&lt;/p&gt;
&lt;p&gt;Given the, given a range of infinite possibilities, how do you pick which one that you are going to do and then give it the attention so that it actually produces something that other people can benefit from. How do you find the things that you want to build on top of, you know? [00:39:24]&lt;/p&gt;
&lt;h2 id=&quot;when-everyones-a-developer-how-do-we-promote-the-web-platform-over-react&quot;&gt;&lt;a href=&quot;https://webtechnology.news/when-everyones-a-developer-how-do-we-promote-the-web-platform-over-react/&quot;&gt;“When Everyone’s a Developer, How Do We Promote the Web Platform Over React?”&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;2-vcarl: Well, I guess I&#39;ll transition from that, from that comment to this other post. &quot;When everyone&#39;s a developer, how do we promote the web platform over react?&quot; It&#39;s in reference to this Alex Russell Post that I&#39;ll, I&#39;ll, I&#39;ll share after. But I guess it&#39;s talking about, it&#39;s talking about that like when people can make their own software, when they can just use plain English to ask AI to generate code that in one form or another, solves the problem. [00:39:39]&lt;/p&gt;
&lt;p&gt;They stated, you know, maybe not the way they intended, maybe not the way they wanted, but it. It&#39;s doing its best, just like all of us. It&#39;s talking about how if you just ask it to make something, it&#39;s probably gonna use React, because that&#39;s what, by volume of text, by volume of code that it&#39;s trained on. That&#39;s what, that&#39;s the mode. That&#39;s the most common example. [00:40:03]&lt;/p&gt;
&lt;p&gt;I guess, like this is framed as a, an AI problem, like why does AI do this? But this is actually the same problem that I&#39;ve observed well before AI came out, you know, 2022 or when everyone chat GPT really started, I have observed all of these problems that it&#39;s talking about over the life of my career. [00:40:20]&lt;/p&gt;
&lt;p&gt;Like, you know, especially I feel like, you know, there&#39;s a certain golden age of tech between 2018 and, I dunno, 2021 or so, and that was absolutely the case. Like I would, you know, join a new workplace, because I did that a lot, I worked at a lot of different companies and I&#39;d look at the practices people were using. It&#39;s like, why did you use React for this? Like there&#39;s, here&#39;s a platform feature that solves this more easily. And with less code. And a lot of the time people just didn&#39;t know it existed. Like it&#39;s that attention problem. How do you know what you should build on top of? [00:40:38]&lt;/p&gt;
&lt;p&gt;I don&#39;t know. It&#39;s the solutions here that people are talking about is like, what can we, the web community do to promote web platform features over react code and it proposes teach vibe coders to explicitly prompt for web native solutions, get the LLMs to ingest more web platform code, spotlight teams and projects that ship modern web experiences without heavy frameworks. [00:41:11]&lt;/p&gt;
&lt;p&gt;I mean, like that&#39;s, to me, all of those essentially just like how do you make the web platform more popular? To me, ai, it fundamentally spits out an average. It spits out like, you ask it to do something and it will give you a deeply profoundly average result for, you know, if you asked a thousand people, that question here is approximately what the mass of those people would say. And it&#39;s true that if you asked a thousand developers to do something on the web, the most common output would probably be a kind of shitty implementation with React that overused things like use state news effect because that&#39;s what developers did and do. So I don&#39;t know, it&#39;s like a lot of these questions that we ask ourselves about AI and code, I feel like distill down to the same kinds of questions we were asking before. [00:41:33]&lt;/p&gt;
&lt;p&gt;But like now there&#39;s a boogeyman of ai, like this is ai, this is this, this is code, this is a product people have built. And so it is now a very convenient boogeyman, but it, it&#39;s a distillation of the thoughts of a vast number of people as codified by what they published and what was ingested for the training set. [00:42:26]&lt;/p&gt;
&lt;p&gt;1-acemarke: I just tossed in a link to the obligatory XKCD from like a decade ago, which is the, the one of the points out that sometimes your, your map or your heat map of users is actually just a heat map of the population. It&#39;s a one-to-one correspondence. And so I think that that is partly what we see with like React usage. [00:42:46]&lt;/p&gt;
&lt;p&gt;You know, there, there&#39;s a lot of people. Who use React. There&#39;s a lot of people who use React badly and therefore, like the spread of types of usage of React, the quality of usage of React kind of maps to the quality of programmer skills and backgrounds, like not necessarily an excuse. And that&#39;s not to say that like everything about using React is is good by itself, but just that when you have a full cross spectrum of the population using a thing, you&#39;re going to have the full cross spectrum of the population using it in good and bad ways. [00:43:07]&lt;/p&gt;
&lt;p&gt;And so in the same way when it like, when it comes to, you know, people building apps, re React got popular, when LLMs came out and saw that was re React was popular. So LLMs repeat what they were trained to do, and plus it&#39;s also, you know, like not just popular, but it&#39;s especially popular within Silicon Valley, within all the companies making the AI builder tools, et cetera. So in a lot of cases, they&#39;re prompting them to just use React because they assume it&#39;s the default that you would use anyway. [00:43:45]&lt;/p&gt;
&lt;p&gt;2-vcarl: I, I wanna shout out a term that I love, &quot;path dependence,&quot; which is like, where you&#39;re at right now is the outcome of a series of choices that were made in the past, and those past choices constrain what paths are available moving forward. That&#39;s path dependence. Where you came from affects where you can go. [00:44:13]&lt;/p&gt;
&lt;p&gt;And so I guess like to me that this is a complaint about the path dependence of React. Like because React got popular now React is, we&#39;ve worn that rut and so now it&#39;s hard to get out of that rut even if there is a better alternative. [00:44:35]&lt;/p&gt;
&lt;p&gt;And so I would say like the solution there isn&#39;t like, I don&#39;t know, tell people they&#39;re bad at things. The solution is to like make better resources so that a different path becomes the easiest one to take. En masse, you know, writ large, when, you know, it&#39;s one thing to convince 15 people that this is the best solution and it&#39;s correct. [00:44:51]&lt;/p&gt;
&lt;p&gt;And it&#39;s another to make the argument clearly enough, strongly enough, and consistently enough over a long enough span of time that it affects the behavior of millions of people. So, you know, how do we promote the web platform over react, like do a better job promoting the web platform, &#39;cause there are thousands of people who are writing resources for React because that&#39;s where money and attention and time is. [00:45:14]&lt;/p&gt;
&lt;p&gt;So if you want to do better than that, you have to make a resource that is better. I don&#39;t know that. There you go. [00:45:45]&lt;/p&gt;
&lt;h2 id=&quot;related-dead-framework-theory-from-last-month&quot;&gt;Related, &lt;a href=&quot;https://aifoc.us/dead-framework-theory/&quot;&gt;“Dead Framework Theory”&lt;/a&gt; from last month&lt;/h2&gt;
&lt;p&gt;1-acemarke: Yeah, so the, the, the other, there was a related article from last month entitled Dead Framework Theory, which was specifically addressing like the the LLM training data aspect of this and how it, how it becomes a, sort of a self perpetuating cycle. [00:45:53]&lt;/p&gt;
&lt;p&gt;And also pointing out that like if you have a, a new library or a new tool or a new web platform feature that is just now baseline, newly available, there&#39;s a lag in common LLMs knowing about that. So it&#39;s sort of like that defaults win kind of an issue. [00:46:07]&lt;/p&gt;
&lt;p&gt;2-vcarl: Yeah, and I&#39;ll say, yes, defaults win, but that doesn&#39;t mean that it&#39;s impossible for an, you know, to approach the problem in a way to mitigate that kind of, you know, home field advantage that tools like React have. [00:46:25]&lt;/p&gt;
&lt;p&gt;I&#39;ve shout it out a number of times, in a bunch of different contexts, because they do a good job! But I love effect. One of the things they do really well is documentation, and one of the things they do really well in their documentation is making it legible for ai. I recently, over the summer, built a greenfield project with effect, and I did it extensively with ai, a mixture of having it write and then having it educate me and then rewriting it, and then having AI rewrite what I did, you know, just get there over time. [00:46:38]&lt;/p&gt;
&lt;p&gt;But I was able to do that despite it being a new library that&#39;s even at odds with the kind of patterns that AI wants to write, it&#39;s a functional type, it&#39;s a functional programming typed standard library essentially, which is not at all what AI wants to write. AI wants to write object oriented classes. And despite that, I was able to make it, figure it out and learn it and do a good job, good enough job that I got something I was proud of. You know, not just vibe coded. I was proud of it. I told people in my life, this is the best code base I&#39;ve ever worked on. [00:47:07]&lt;/p&gt;
&lt;p&gt;And it&#39;s a large part of that was because of how the effect as a, you know, organization and library approach, their style of documentation. They made it legible for these automated tools. So I guess like if you wanna promote the web platform over. Incumbents like React then like figure out how people are writing code, figure out how people are consuming documentation, consuming new knowledge and do a good job. [00:47:36]&lt;/p&gt;
&lt;p&gt;1-acemarke: I&#39;ll note though, that you, you are the one who decided you were going to use effect and told the LLM, this is what I&#39;m going to build. [00:48:03]&lt;/p&gt;
&lt;p&gt;2-vcarl: It&#39;s true. Yeah. [00:48:11]&lt;/p&gt;
&lt;h2 id=&quot;alex-russells-latest-stats-on-web-devices-and-network-budgets&quot;&gt;&lt;a href=&quot;https://infrequently.org/2025/11/performance-inequality-gap-2026/&quot;&gt;Alex Russell’s latest stats on web devices and network budgets&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;1-acemarke: The last wink on this particular topic, Alex Russell, who used to be at Google now has been, Microsoft has been very vocally beating the drum that most client side JS is bad, that JS bundles keep growing, that most people are using. You know, older Android devices on mobile with very weak CPUs and therefore JS load times are worse versus, you know, developers using an iPhone or, or a Power or a Fast Mac or something. [00:48:12]&lt;/p&gt;
&lt;p&gt;And he just put up the latest article in his ongoing series. You know, documenting, stan-, like average bundle sizes, average network speeds, average CPU uses. I have a lot of respect for him. Technically, his stats are correct. His points are right. I have questions about his delivery and tone in how he accuses people of doing the wrong thing. But it&#39;s also very true that a lot of the people should be paying more attention to him and actually trying to shrink down bundles instead. [00:48:41]&lt;/p&gt;
&lt;p&gt;2-vcarl: That&#39;s interesting. I, a thought I&#39;ve had, I haven&#39;t validated this thought against, you know, ground truth, but I&#39;ve been hearing about bundle size as a problem. Essentially what he&#39;s talking about here, like we ship too much JavaScript for the compute capabilities of commonly used devices, like that as a thesis has been something I&#39;ve been hearing about for a very long time, much of my career even, and I&#39;m not sure that the bundle size problem has gotten that much worse over the last, I&#39;ll say eight years, you know, call it since 2017. [00:49:14]&lt;/p&gt;
&lt;p&gt;And he shows a chart of compute speeds and basically shows like, yes, top of the line devices have gotten five times faster, low end devices that 75% of the world uses have not gotten measurably faster. And that&#39;s true. Can&#39;t argue it. His stats are correct, like he said, but also like I&#39;m not sure the problem is getting measurably worse. [00:49:52]&lt;/p&gt;
&lt;p&gt;The optimizations of how we can split code and you know, what the JIT and the execution environment is doing to make it work more quickly. Those have gotten better over time. And it&#39;s also true that like, so if he&#39;s looking at the, basically like every processor, anyone with a device is using and that is the correct stat to consult if you are building something that everyone in the world will access. [00:50:14]&lt;/p&gt;
&lt;p&gt;But that&#39;s not true for most startups. Like if you&#39;re building a startup that targets like some industry, that American businesses, is, targets a problem that American businesses need solved, then like it doesn&#39;t really matter what the mo-, mobile performance in, you know, different outside of that target industry, I guess are then it&#39;s like, like what you said about his like tone and delivery. [00:50:45]&lt;/p&gt;
&lt;p&gt;I think a, to me when I read this, a core part of what, that I think he&#39;s overlooking is that not everyone is trying to ship something that 100% of the people in the world can access smoothly and quickly. Like, and that&#39;s fine. Like, you know, not everything needs to target everybody in the world. So, I don&#39;t know, I, I guess that that&#39;s one of my takeaways. [00:51:09]&lt;/p&gt;
&lt;p&gt;That&#39;s one thing that I think is missing from this, otherwise very technically complete blog post. [00:51:30]&lt;/p&gt;
&lt;p&gt;1-acemarke: I think it&#39;s also true that an awful lot of app teams out there ought to be spending time thinking about like even just basic bundle sized stuff and they aren&#39;t. [00:51:37]&lt;/p&gt;
&lt;h2 id=&quot;npm-attack-shai-hulud-round-2&quot;&gt;Npm attack, &lt;a href=&quot;https://www.aikido.dev/blog/shai-hulud-strikes-again-hitting-zapier-ensdomains&quot;&gt;Shai-Hulud round 2&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;2-vcarl: I do wanna talk about the NPM hack that is ongoing Shai-Hulud, the sand worm. [00:51:48]&lt;/p&gt;
&lt;p&gt;I want to call out. As far as I know, aikido.dev has been like the security researchers who have announced this, like uncovered it and then analyzed it and shared it. [00:51:55]&lt;/p&gt;
&lt;h2 id=&quot;analysis-of-its-evolution-in-code-from-sept&quot;&gt;&lt;a href=&quot;https://www.aikido.dev/blog/bugs-in-shai-hulud-debugging-the-desert&quot;&gt;Analysis of its evolution in code&lt;/a&gt; from Sept&lt;/h2&gt;
&lt;p&gt;2-vcarl: They had a really good analysis of the evolution of the code, of the attack of this worm from September, and I noted in that when I was rereading it after this, you know, new, new attack, they had shouted out that it appeared that they still had more credentials in reserve. Like they had cracked more credentials than they had actually used. [00:52:06]&lt;/p&gt;
&lt;p&gt;And sure enough, this, you know, round two attack in their analysis of of it this time around, they note that it was timed just before NPM&#39;s deadline for revoking old tokens. So like very clearly they had a lot of tokens that they had compromised previously that they were now taking advantage of before they, before they lost access to it, before those tokens were no longer valid. [00:52:29]&lt;/p&gt;
&lt;p&gt;And I guess to reiterate, we&#39;ve talked about, we talked about this attack before, I would say this is, this represents the current cutting edge of malware. It is using all sorts of fascinating root execution, like privilege escalation. I saw discussion of it, starting a docker container, mounting your file system to that privileged environment and now suddenly it has privileged access to all sorts of files that it couldn&#39;t have if it was just running in your shell. [00:52:48]&lt;/p&gt;
&lt;p&gt;There&#39;s stuff like that that&#39;s pretty fascinating and other things like if you have a Claude installed, it will prompt Claude to say, &quot;Hey, look around this file system for secrets.&quot; like that is very cutting edge malware. To me, it&#39;s, it&#39;s not just writing its own code. It&#39;s not just a worm that is trolling your file system. [00:53:14]&lt;/p&gt;
&lt;p&gt;It is taking advantage of other tools that you take advantage of to attack you. So it&#39;s, yeah. That&#39;s not great. [00:53:32]&lt;/p&gt;
&lt;p&gt;1-acemarke: I mean, like, big picture, it&#39;s almost, it&#39;s almost surprising how many widespread pieces of malware have been very dumb and weren&#39;t as nearly destructive or smart as they could have been. And like think of how much damage we&#39;ve had collectively as an industry over years with only a lot of those dumb malware. [00:53:39]&lt;/p&gt;
&lt;p&gt;And now we&#39;re starting to see some people write more intelligent malware. [00:54:01]&lt;/p&gt;
&lt;p&gt;2-vcarl: Yep. Yeah. &#39;cause a month ago, or two months ago, whenever it was, there was a different NPM hack that managed to get into the debug package, which is massively widely used. And I assumed that it was the same attackers as this attack because it&#39;s, it, it resembled it in a couple of ways, except that it was dumb. It was so poorly executed. [00:54:05]&lt;/p&gt;
&lt;p&gt;Like they got close to unprecedented access to the NPM ecosystem like. This is one of the first times that that previous attack, the debug attack, was one of the first times that I saw, &quot;here&#39;s this compromised version. Let me check my file system. Oh, yep, there it is. I&#39;ve got this.&quot; [00:54:26]&lt;/p&gt;
&lt;p&gt;So yeah, they just straight up fumbled the bag there. My theory here, having paid attention to this, it seems like there&#39;s some hacker group that may have compromised, set up a phishing tool set, you know, set up tools for other malicious actors to run phishing attacks. And it feels like two different hacker groups took advantage of those tools to target NPM maintainers. [00:54:45]&lt;/p&gt;
&lt;p&gt;And only one of them is actually technically competent enough to take full advantage of the access that they got. So yeah, I believe we&#39;ve shared these resources before. [00:55:13]&lt;/p&gt;
&lt;h2 id=&quot;our-plan-for-a-more-secure-npm-supply-chain-from-september&quot;&gt;&lt;a href=&quot;https://github.blog/security/supply-chain-security/our-plan-for-a-more-secure-npm-supply-chain/&quot;&gt;Our plan for a more secure npm supply chain&lt;/a&gt; from September&lt;/h2&gt;
&lt;p&gt;2-vcarl: And GitHub put out our plan for a more secure NPM supply chain, so they&#39;re still working on that clearly. [00:55:23]&lt;/p&gt;
&lt;h2 id=&quot;npm-update-on-token-management-changes&quot;&gt;&lt;a href=&quot;https://github.blog/changelog/2025-11-05-npm-security-update-classic-token-creation-disabled-and-granular-token-changes/&quot;&gt;NPM update on token management changes&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;2-vcarl: They also just released an NPM security update earlier this month in November, November 5th. [00:55:29]&lt;/p&gt;
&lt;h2 id=&quot;-lightning-round-&quot;&gt;⚡ Lightning round ⚡&lt;/h2&gt;
&lt;p&gt;2-vcarl: Mark, you want to just read through any of these lightning rounds that you wanna call attention to? Okay. [00:55:34]&lt;/p&gt;
&lt;h2 id=&quot;ts-60-hopefully-feb-2026-70-native-soon-after-more-details-in-the-typescriptfm-podcast&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/danr.bsky.social/post/3m5fz3vw2z22s&quot;&gt;TS 6.0 hopefully Feb 2026, 7.0 (native) soon after&lt;/a&gt; (more details in the &lt;a href=&quot;https://share.transistor.fm/s/ad05eae6&quot;&gt;TypeScript.fm&lt;/a&gt; podcast)&lt;/h2&gt;
&lt;p&gt;1-acemarke: TS six and TS seven are hopefully gonna be coming out early next year. TS six is still the current TypeScript code base, but with some changes to defaults and deprecation. And then TS seven would be the native implementation in go that they&#39;re working on. [00:55:38]&lt;/p&gt;
&lt;p&gt;So a couple different updates on the release plans there. That&#39;s going to be very, very exciting. I am excited to have TypeScript compiler 10 times faster. [00:55:54]&lt;/p&gt;
&lt;h2 id=&quot;latest-tc39-proposal-updates&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/robpalmer.bsky.social/post/3m62djhwj3k2i&quot;&gt;Latest TC39 proposal updates&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;1-acemarke: Also there were some more. The latest TC 39 proposals meeting as usual, advanced a number of different proposals to different stages. A couple of things that look interesting. [00:56:03]&lt;/p&gt;
&lt;p&gt;There&#39;s a promise do all keyed, which is essentially promise dot all but for an object. And then I am excited, un irrationally excited about object keys length, which is literally just to get the size of the number of keys in an object instead of object keys, parentheses, length. [00:56:13]&lt;/p&gt;
&lt;h2 id=&quot;chrome-and-other-browsers-wants-to-remove-xslt-from-the-web-platform&quot;&gt;&lt;a href=&quot;https://groups.google.com/a/chromium.org/g/blink-dev/c/CxL4gYZeSJA/m/yNs4EsD5AQAJ?pli=1&quot;&gt;Chrome (and other browsers) wants to remove XSLT from the web platform&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;2-vcarl: Chrome, and a couple of other browsers want to remove XSLT from the web platform. XSLT is a, what, domain specific library for transforming XML? [00:56:32]&lt;/p&gt;
&lt;p&gt;1-acemarke: XML transformations within a browser. So you, you send out an XML document from the server, and then you have a purely client side declarative transformation that like converts it into HTML. [00:56:42]&lt;/p&gt;
&lt;p&gt;2-vcarl: It exists. I had no idea that it was a browser feature. I&#39;ve known of it as a tool that exists, but I had no idea it was baked into the browser and they&#39;re looking to remove it and I&#39;m okay with that. But certain people who I guess use it for one thing or another have been running a campaign to say, &quot;no, please don&#39;t. What about RSS feeds?&quot; But yeah. [00:56:54]&lt;/p&gt;
&lt;h2 id=&quot;your-url-is-your-state-and-david-ks-goodbye-usestate-talk&quot;&gt;&lt;a href=&quot;https://alfy.blog/2025/10/31/your-url-is-your-state.html&quot;&gt;“Your URL is Your State”&lt;/a&gt;, and &lt;a href=&quot;https://gitnation.com/contents/goodbye-usestate&quot;&gt;David K’s “Goodbye, useState” talk&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;1-acemarke: Going along a bit with the whole use the platform thing, more people should be putting some of their state in the URL and there was a very good article on using the URL as state. And then along with that, another video from recent React Summit that&#39;s probably paywall at the moment, but I think he&#39;s done a couple previous versions of this at different conferences. [00:57:14]&lt;/p&gt;
&lt;p&gt;David Kourshid has a talk on goodbye used state, similar to his goodbye use effect. It&#39;s hilarious, it&#39;s funny, and it also points out why you shouldn&#39;t be using actual used state all that much. [00:57:33]&lt;/p&gt;
&lt;h2 id=&quot;aiden-bais-react-grab-util&quot;&gt;&lt;a href=&quot;https://www.react-grab.com/&quot;&gt;Aiden Bai’s “React Grab” util&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;2-vcarl: Aiden Bai, who did millions js put out an interesting new tool called React Grab, basically letting you, you know, you, is trying to solve the problem of when you tell AI like, &quot;Hey, make this thing different.&quot; And then it goes, &quot;I don&#39;t know where that is. Here&#39;s your browser, but I don&#39;t know where that is in the code base.&quot; [00:57:46]&lt;/p&gt;
&lt;p&gt;And so this is a tool that helps map similar to how you can use dev tools to highlight an element. This is taking that kind of behavior where you highlight an element in your browser and it connects back to the actual source code that produced that element as a means of giving AI a head start on finding what code to use, which seems super cool. [00:58:03]&lt;/p&gt;
&lt;p&gt;I questioned the wisdom of the recommended get started thing, which is just to add a script tag to unpkg. I don&#39;t know. Seems, seems slightly sketch, but also for also seems really easy to, to get started. [00:58:25]&lt;/p&gt;
&lt;h2 id=&quot;creating-a-custom-node-module-loader-to-import-from-bittorrent&quot;&gt;&lt;a href=&quot;https://evanhahn.com/node-torrent-import/&quot;&gt;Creating a custom Node module loader to import from Bittorrent&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;1-acemarke: One thing that caught my eye in terms of like, this is awesome and you should never, ever do this, was implementing a node module loader that imports from BitTorrent. [00:58:39]&lt;/p&gt;
&lt;p&gt;Okay, great. That&#39;s possible apparently. [00:58:48]&lt;/p&gt;
&lt;p&gt;2-vcarl: Love that. I do love BitTorrent. You know, as we were talking about decentralized technology a little bit earlier, like, man, what a highly resilient, decentralized technology. But yeah, well, hey, you know, maybe if we&#39;re gonna tell you, if we&#39;re gonna encourage people to do decentralized technology building on the shoulders of giants, like it, man, if you want it to like never stop working, ever, sure, import your code from BitTorrent, probably it&#39;s not gonna work very quickly, but given the right underlying seeders that would, that may never go down. Pretty interesting. [00:58:52]&lt;/p&gt;
&lt;h2 id=&quot;ryan-carniatos-stream-on-researching-async-signals&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=ori9xZhvNlc&quot;&gt;Ryan Carniato’s stream on researching “async signals”&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;1-acemarke: Earlier I mentioned Ryan Carniato streaming and talking about async signals. Here&#39;s the six hour livestream video if you want to watch that and or throw it into a summarizer somewhere. [00:59:22]&lt;/p&gt;
&lt;h2 id=&quot;details-of-building-nodes-ts-type-stripping-support&quot;&gt;&lt;a href=&quot;https://satanacchio.hashnode.dev/the-summer-i-shipped-type-stripping&quot;&gt;Details of building Node’s TS type stripping support&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;2-vcarl: I&#39;ll shout out the details of building nodes, the node type, script type stripping support, just &#39;cause I, man, I do love a technical writeup and that is, that was a massive feature release, just like the ability to use node to run TypeScript code without doing a compilation step. Was pretty cool. And so here to here to signal boost a post from the author of it. [00:59:33]&lt;/p&gt;
&lt;h2 id=&quot;the-web-animation-performance-tier-list&quot;&gt;&lt;a href=&quot;https://motion.dev/blog/web-animation-performance-tier-list&quot;&gt;The Web Animation Performance Tier List&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;1-acemarke: And one more, since we spent much time talking about the, the web platform, the author of the motion animation framework put up a really good post comparing all the different ways you can do animations on the web and talking about some of the performance trade offs. [00:59:58]&lt;/p&gt;
&lt;p&gt;2-vcarl: Super good. Cool. [01:00:12]&lt;/p&gt;
&lt;h2 id=&quot;conferences-react-javascript&quot;&gt;Conferences (&lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://confs.tech/javascript&quot;&gt;Javascript&lt;/a&gt;)&lt;/h2&gt;
&lt;p&gt;2-vcarl: Into some conference news. [01:00:14]&lt;/p&gt;
&lt;p&gt;We don&#39;t really have much &#39;cause it&#39;s the end of the year and all of the upcoming conference things don&#39;t show anything for like January or February. [01:00:15]&lt;/p&gt;
&lt;h2 id=&quot;cfps&quot;&gt;CFPs&lt;/h2&gt;
&lt;p&gt;1-acemarke: Well, we don&#39;t have much of a list here, but I can say that I&#39;ve actually been doing my own, trying to prepare CFPs for next year and it ended up making a database of conferences and like my own personal list is like dozens of them. [01:00:22]&lt;/p&gt;
&lt;p&gt;And I can tell you there several conferences have submission deadlines like by November 30th s Why? I&#39;d say there&#39;s a lot more conferences out there that knew existed until I spent several evenings spent researching them and trying to put this database together. [01:00:35]&lt;/p&gt;
&lt;p&gt;2-vcarl: I&#39;ve tried to do that consistently over the past three years for this podcast and holy shit, there are so many conferences. It is absolutely bananas. Some of them are even fraudulent, so it&#39;s like you, you actually gotta them. So yeah, it&#39;s a lot. But okay. [01:00:47]&lt;/p&gt;
&lt;h2 id=&quot;react-paris-also-a-community-survey&quot;&gt;&lt;a href=&quot;https://docs.google.com/forms/d/e/1FAIpQLSfLICWs7vpK5fuMkZyJk4GyDtZBs08NMKJ0eIOOZBUxo98beQ/viewform&quot;&gt;React Paris&lt;/a&gt; (&lt;a href=&quot;https://docs.google.com/forms/d/e/1FAIpQLSd0pjOsMo0z3fvhv9EhgvUBWA4CdIcsivOCQi8wBmiNc_yXPQ/viewform&quot;&gt;Also a community survey&lt;/a&gt;)&lt;/h2&gt;
&lt;p&gt;2-vcarl: All that to say, I am aware of, React paris has a CFP currently open, but that&#39;s gonna be in March. So if you&#39;re looking to talk, then they&#39;ve got a CFP open, you can do that. [01:01:01]&lt;/p&gt;
&lt;h2 id=&quot;jsworld-cfp-closes-dec-31-notifies-by-feb-1&quot;&gt;&lt;a href=&quot;https://docs.google.com/forms/d/e/1FAIpQLSfv3GuXwsDyR42XsvJwfFsN4SKjy8WvKtqYp_nEK0yhzVNP1g/viewform&quot;&gt;JSWorld&lt;/a&gt; CFP closes Dec 31, notifies by Feb 1&lt;/h2&gt;
&lt;p&gt;2-vcarl: JS World also likewise has a CFP that closes at the end of December. [01:01:12]&lt;/p&gt;
&lt;h2 id=&quot;ending&quot;&gt;Ending&lt;/h2&gt;
&lt;p&gt;2-vcarl: Thank you everyone who has managed to stick around for this, you know, hour and 15 minute recording session. [01:01:18]&lt;/p&gt;
&lt;p&gt;1-acemarke: Funny we said we didn&#39;t have a lot of main content for today and go figure. We had a lot to say about stuff. [01:01:24]&lt;/p&gt;
&lt;p&gt;2-vcarl: Yeah, right. I give us a, give us a blank slate and we will fill it. Boy howdy. [01:01:29]&lt;/p&gt;
&lt;p&gt;1-acemarke: Hopefully the discussion has been useful. [01:01:34]&lt;/p&gt;
&lt;p&gt;2-vcarl: That is my hope. I, if not useful at least. Interesting. Cool. Thank you for joining us. We normally, I say we&#39;ll be back on the last Wednesday of the month, but the last Wednesday of next month I think is [01:01:36]&lt;/p&gt;
&lt;p&gt;1-acemarke: December 31st, [01:01:48]&lt;/p&gt;
&lt;p&gt;2-vcarl: so I don&#39;t know, we&#39;re probably not gonna do it on the last Wednesday of next month, but we&#39;ll be back [01:01:49]&lt;/p&gt;
&lt;p&gt;1-acemarke: somewhere about that timeframe approximately ish. [01:01:54]&lt;/p&gt;
&lt;p&gt;2-vcarl: Before the end of this year. [01:01:57]&lt;/p&gt;
&lt;p&gt;Yeah. Generally, I say we gather sources from all sorts of news feeds and whatever, but Mark, you&#39;ve done a good job of being my source lately. So mostly we get news from #tech-news-and-reads, or at least that&#39;s where I get it. [01:01:59]&lt;/p&gt;
&lt;p&gt;I don&#39;t know where Mark gets it. [01:02:11]&lt;/p&gt;
&lt;p&gt;1-acemarke: All of the above newsletters plus like Hacker News and Twitter and all the other social media feeds I obsess over. [01:02:13]&lt;/p&gt;
&lt;p&gt;2-vcarl: But yeah, we do subscribe to this week in React by Dev React status next year. It&#39;s weekly. Mark and I are both subreddit mods of React js. But yeah, if you see anything that seems useful that you might want us to discuss, drop it in the #tech-news-and-reads channel. [01:02:20]&lt;/p&gt;
&lt;p&gt;I&#39;ll at least read it. I may not bring it in, but yeah, if this is a show that you get value from and wanna support, the best way to do so is by telling people about it and submitting a review that&#39;ll help us get discovered and whatever. [01:02:36]&lt;/p&gt;
&lt;p&gt;Cheers. Thanks so much. [01:02:48]&lt;/p&gt;
&lt;p&gt;1-acemarke: Happy Thanksgiving. [01:02:50]&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2025-11</link><guid isPermaLink="false">reactiflux-tmir-2025-11</guid><pubDate>Tue, 25 Nov 2025 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>TMiR 2025-10: Post-conf; React 19.2, React Foundation, React Native removing old architecture. Next.js has too many directives</title><description>&lt;iframe width=&quot;100%&quot; height=&quot;180&quot; frameborder=&quot;no&quot; scrolling=&quot;no&quot; seamless=&quot;&quot; src=&quot;https://share.transistor.fm/e/ad1a1c53&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#intro&quot;&gt;00:00&lt;/a&gt;]&lt;/code&gt; Intro&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#new-releases&quot;&gt;00:46&lt;/a&gt;]&lt;/code&gt; New releases
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#immer-102&quot;&gt;00:49&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/immerjs/immer/releases/tag/v10.2.0&quot;&gt;Immer 10.2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#arktype-arkregex-typed-regex&quot;&gt;01:55&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://arktype.io/docs/blog/arkregex&quot;&gt;ArkType ArkRegex&lt;/a&gt; (typed regex)&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#main-content&quot;&gt;02:41&lt;/a&gt;]&lt;/code&gt; Main Content
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#react-conf&quot;&gt;02:45&lt;/a&gt;]&lt;/code&gt; React Conf
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#official-reactconf-2025-recap&quot;&gt;02:50&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react.dev/blog/2025/10/16/react-conf-2025-recap&quot;&gt;Official ReactConf 2025 Recap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#introducing-the-react-foundation-also-from-linux-foundation-meta-engineering-and-seth-webster&quot;&gt;02:57&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react.dev/blog/2025/10/07/introducing-the-react-foundation&quot;&gt;Introducing the React Foundation&lt;/a&gt; (also from &lt;a href=&quot;https://www.linuxfoundation.org/press/linux-foundation-announces-intent-to-launch-the-react-foundation&quot;&gt;Linux Foundation&lt;/a&gt;, &lt;a href=&quot;https://engineering.fb.com/2025/10/07/open-source/introducing-the-react-foundation-the-new-home-for-react-react-native/&quot;&gt;Meta engineering&lt;/a&gt;, and &lt;a href=&quot;https://thenewstack.io/react-foundation-leader-on-whats-next-for-the-framework/&quot;&gt;Seth Webster&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#192-activity-useeffectevent&quot;&gt;17:03&lt;/a&gt;]&lt;/code&gt; 19.2 (Activity, useEffectEvent)&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#react-native-news&quot;&gt;17:27&lt;/a&gt;]&lt;/code&gt; React Native news
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#new-architecture-only-from-v082&quot;&gt;17:32&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactnative.dev/blog/2025/10/08/react-native-0.82#new-architecture-only&quot;&gt;New architecture only from v0.82&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#vega-os-announcement&quot;&gt;18:52&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://developer.amazon.com/apps-and-games/blogs/2025/09/announcing-vega-os&quot;&gt;Vega OS announcement&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#vega-introduction-at-react-conf&quot;&gt;19:04&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=p9OcztRyDl0&amp;amp;t=5737s&quot;&gt;Vega introduction at React Conf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#joe-savonas-exploring-react-performance-talk&quot;&gt;22:36&lt;/a&gt;]&lt;/code&gt; Joe Savona’s “&lt;a href=&quot;https://www.youtube.com/watch?v=zyVRg2QR6LA&amp;amp;t=20274s&quot;&gt;Exploring React Performance&lt;/a&gt;” talk&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#rickys-async-react-part-i-and-part-ii-repo&quot;&gt;23:26&lt;/a&gt;]&lt;/code&gt; Ricky’s “&lt;a href=&quot;https://www.youtube.com/watch?v=zyVRg2QR6LA&amp;amp;t=10907s&quot;&gt;Async React Part I&lt;/a&gt;” and “&lt;a href=&quot;https://www.youtube.com/watch?v=p9OcztRyDl0&amp;amp;t=29073s&quot;&gt;Part II&lt;/a&gt;” (&lt;a href=&quot;https://github.com/rickhanlonii/async-react&quot;&gt;repo&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#async-react-working-group&quot;&gt;27:12&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/reactwg/async-react&quot;&gt;Async React Working Group&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#first-discussion-of-more-docs-ideas&quot;&gt;27:35&lt;/a&gt;]&lt;/code&gt; First &lt;a href=&quot;https://github.com/reactwg/async-react/discussions/2&quot;&gt;discussion of more docs ideas&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#remix-v3-announcement&quot;&gt;28:27&lt;/a&gt;]&lt;/code&gt; Remix v3 announcement
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#announcement-demo-timestamped-breakdown&quot;&gt;29:03&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/markdalgleish/remix3-resources&quot;&gt;Announcement demo timestamped breakdown&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#updates-syntax-can-be-customized&quot;&gt;31:28&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/sergiodxa/status/1976878377509568871&quot;&gt;Updates syntax can be customized?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#i-built-the-same-app-10-times-code&quot;&gt;34:44&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.lorenstew.art/blog/10-kanban-boards&quot;&gt;I built the same app 10 times&lt;/a&gt; (&lt;a href=&quot;https://github.com/lorenseanstewart/kanban-comparison&quot;&gt;code&lt;/a&gt;)
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#same-author-as-react-won-by-default-and-its-killing-innovation&quot;&gt;37:57&lt;/a&gt;]&lt;/code&gt; Same author as &lt;a href=&quot;https://www.lorenstew.art/blog/react-won-by-default/&quot;&gt;React Won by Default and It’s Killing Innovation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#solito-5&quot;&gt;43:33&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://solito.dev/v5&quot;&gt;Solito 5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#next-16-and-directives-debate&quot;&gt;46:49&lt;/a&gt;]&lt;/code&gt; Next 16 and Directives debate
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#next-16-released&quot;&gt;46:56&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://nextjs.org/blog/next-16&quot;&gt;Next 16 released&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#directives-and-the-platform-boundary&quot;&gt;49:41&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://tanstack.com/blog/directives-and-the-platform-boundary&quot;&gt;Directives and the Platform Boundary&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#technical-critique-of-next-app-router-everyone-hates-nextjs&quot;&gt;50:34&lt;/a&gt;]&lt;/code&gt; Technical critique of Next App Router: &lt;a href=&quot;https://paperclover.net/blog/webdev/everyone-hates-nextjs&quot;&gt;Everyone Hates Next.js&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#-lightning-round-&quot;&gt;54:56&lt;/a&gt;]&lt;/code&gt; ⚡ Lightning round ⚡
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#viteconf-roundup&quot;&gt;54:58&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://voidzero.dev/posts/whats-new-viteconf-2025&quot;&gt;ViteConf roundup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#aws-outage-postmortem&quot;&gt;55:49&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://aws.amazon.com/message/101925/&quot;&gt;AWS Outage Postmortem&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#voltra&quot;&gt;57:10&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/saul_sharma/status/1972161677165473980&quot;&gt;Voltra&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#building-fully-native-apps-with-eas&quot;&gt;58:10&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://blog.swmansion.com/building-fully-native-ios-apps-with-expo-eas-760b5480d7c5&quot;&gt;Building fully native apps with EAS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#react-native-imgui&quot;&gt;58:52&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/tmikov/status/1979771014340047088&quot;&gt;React Native \&amp;lt;\&amp;gt; Imgui&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#lodash-maintenance-foundation&quot;&gt;59:53&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://blog.ulisesgascon.com/the-future-of-lodash&quot;&gt;Lodash maintenance foundation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#build-your-own-key-value-database&quot;&gt;01:00:45&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.nan.fyi/database&quot;&gt;Build Your Own Key-Value Database&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#jared-palmer-asking-for-gh-pr-suggestions-and-giving-some-technical-details&quot;&gt;01:02:24&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/jaredpalmer/status/1979204222420664405&quot;&gt;Jared Palmer asking for GH PR suggestions&lt;/a&gt; and giving &lt;a href=&quot;https://x.com/jaredpalmer/status/1980619222918262842&quot;&gt;some technical details&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#node-25-with-jsonstringify-improvements&quot;&gt;01:03:54&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://nodejs.org/en/blog/release/v25.0.0&quot;&gt;Node 25 with JSON.stringify improvements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#cloudflare-vs-vercel-cpu-benchmarks-and-perf-optimizations&quot;&gt;01:04:15&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://blog.cloudflare.com/unpacking-cloudflare-workers-cpu-performance-benchmarks/&quot;&gt;Cloudflare vs Vercel CPU benchmarks and perf optimizations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#ff-interop-feature-request-rankings&quot;&gt;01:05:07&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://interop-rank.jakearchibald.com/&quot;&gt;FF Interop Feature Request Rankings&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#vjeuxs-history-of-prettier&quot;&gt;01:05:53&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://blog.vjeux.com/2025/javascript/birth-of-prettier.html&quot;&gt;Vjeux’s History of Prettier&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#conferences-react-javascript&quot;&gt;01:10:41&lt;/a&gt;]&lt;/code&gt; Conferences (&lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://confs.tech/javascript&quot;&gt;Javascript&lt;/a&gt;)
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#react-native-london-nov-13-14-london-uk&quot;&gt;01:10:43&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;http://reactnativelondon.co.uk/&quot;&gt;React Native London&lt;/a&gt; Nov 13-14 London, UK&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#use-code-tmir10-to-get-10-off&quot;&gt;01:11:26&lt;/a&gt;]&lt;/code&gt; Use code `TMIR10` to get 10% off&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#wey-wey-web-nov-17-18-malaga-spain&quot;&gt;01:11:42&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.weyweyweb.com/&quot;&gt;Wey Wey Web&lt;/a&gt; Nov 17-18 Malaga, Spain&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#react-summit-nov-18-21-new-york-ny-usa&quot;&gt;01:11:49&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactsummit.us/&quot;&gt;React Summit&lt;/a&gt; Nov 18, 21 New York, NY, USA&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#react-advanced-nov-28-london-england&quot;&gt;01:12:10&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactadvanced.com/&quot;&gt;React Advanced&lt;/a&gt; Nov 28, London, England&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#react-paris-cfp-is-open&quot;&gt;01:12:33&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react.paris/&quot;&gt;React Paris&lt;/a&gt; CFP is open&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-10#ending&quot;&gt;01:12:49&lt;/a&gt;]&lt;/code&gt; Ending&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;this-month-in-react---october-2025-sm&quot;&gt;This Month in React - October 2025 (SM)&lt;/h1&gt;
&lt;h2 id=&quot;intro&quot;&gt;Intro&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Hello everyone. Thank you for joining us for the October edition of This Month in React. As we recap what&#39;s going on with React, React native in the web, we&#39;re coming to you live from React Flux, the place for professional developers using React. [00:00]&lt;/p&gt;
&lt;p&gt;I&#39;m Carl. I&#39;m a staff staff product developer and freelance community leader here at React Flux, where I run community programs like these events and build tools to help keep the community operating. [00:12]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Hi, I&#39;m Mark. My day job is at Replay.io and in my copious amounts of spare time, I maintain Redux and rewrite Immer. [00:23]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I am Mo, I head the mobile team at Theo. I&#39;m an active part of the React native ecosystem and community, and I organize the React Native London Meetups and conference, which is coming up in two weeks. [00:30]&lt;/p&gt;
&lt;p&gt;Terrifyingly so. [00:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Coming right up. Yeah. And you got a shout out that we&#39;re gonna talk about. [00:43]&lt;/p&gt;
&lt;h2 id=&quot;new-releases&quot;&gt;New releases&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Let&#39;s start with some new releases. Mark, tell us about Immer. [00:46]&lt;/p&gt;
&lt;h2 id=&quot;immer-102&quot;&gt;&lt;a href=&quot;https://github.com/immerjs/immer/releases/tag/v10.2.0&quot;&gt;Immer 10.2&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Okay, I can, I can do both these things. So I actually take very full credit for this one. So to be clear, I do not maintain the Immer immutable update library that is Michelle West Rate, who created it and has maintained it all the easier years. [00:49]&lt;/p&gt;
&lt;p&gt;However, since the start of September, I have sunk a stupid amount of time, something like 120 plus hours into trying to rewrite the internals of Immer for faster performance after some re users filed complaints to the Redux repos, that it was kind of slow. So I filed a few different prs, one to make some relatively small tweaks, and then a couple larger architectural changes. [01:01]&lt;/p&gt;
&lt;p&gt;And Michelle just merged and released Immer 10.2 with the small options. And we are hoping to land the larger architectural changes in the near future. And those will probably come out as Immer version 11, hopefully in the next few weeks or something. So I&#39;m excited faster for performance free upgrades. [01:26]&lt;/p&gt;
&lt;p&gt;Yeah, should be. [01:45]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, love some big core performance improvements of deep packages. That&#39;s awesome. [01:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And I will also hopefully turn this into a conference talk. Nice. [01:51]&lt;/p&gt;
&lt;h2 id=&quot;arktype-arkregex-typed-regex&quot;&gt;&lt;a href=&quot;https://arktype.io/docs/blog/arkregex&quot;&gt;ArkType ArkRegex&lt;/a&gt; (typed regex)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Along with that, I, I just saw the announcement, I think like yesterday, that the author of the ARC type validation Library, which is a, a competitor to Zod that takes a, a rather different API approach, just released a, a similar tool called ARC RegX. [01:55]&lt;/p&gt;
&lt;p&gt;It&#39;s a function that is supposed to be a replacement for defining regular expressions in JavaScript, but it actually parses the RegX string into TypeScript types so that it can both. Interpret at the type level, what the regular expression is doing, and also even provide syntax errors if the reg itself is invalid. [02:12]&lt;/p&gt;
&lt;p&gt;Just looking at the docs, my mind is blown. [02:38]&lt;/p&gt;
&lt;h2 id=&quot;main-content&quot;&gt;Main Content&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Well, yeah, other than new releases, we have a bunch of main content this month. [02:41]&lt;/p&gt;
&lt;h2 id=&quot;react-conf&quot;&gt;React Conf&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; The React conf happened, what, three weeks ago, and a bunch of new stuff came out of there. [02:45]&lt;/p&gt;
&lt;h2 id=&quot;official-reactconf-2025-recap&quot;&gt;&lt;a href=&quot;https://react.dev/blog/2025/10/16/react-conf-2025-recap&quot;&gt;Official ReactConf 2025 Recap&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; They did put up an official recap blog post from it on the 16th, about a week after the event happened. [02:50]&lt;/p&gt;
&lt;h2 id=&quot;introducing-the-react-foundation-also-from-linux-foundation-meta-engineering-and-seth-webster&quot;&gt;&lt;a href=&quot;https://react.dev/blog/2025/10/07/introducing-the-react-foundation&quot;&gt;Introducing the React Foundation&lt;/a&gt; (also from &lt;a href=&quot;https://www.linuxfoundation.org/press/linux-foundation-announces-intent-to-launch-the-react-foundation&quot;&gt;Linux Foundation&lt;/a&gt;, &lt;a href=&quot;https://engineering.fb.com/2025/10/07/open-source/introducing-the-react-foundation-the-new-home-for-react-react-native/&quot;&gt;Meta engineering&lt;/a&gt;, and &lt;a href=&quot;https://thenewstack.io/react-foundation-leader-on-whats-next-for-the-framework/&quot;&gt;Seth Webster&lt;/a&gt;)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; The big takeaway here, I think, well, I don&#39;t know, we got a couple of big takeaways, but one of the headlines is definitely the React Foundation. This is a pretty big change to, or this sounds like it will be a moderately large change to the governance of React. They&#39;re pretty light on details of the actual governance, so far. They have talked about like a new technical steering committee. But they also say that the governance of that is not finalized. The members are not finalized, but they do have the founding members of the founding sponsors basically of this foundation, which are Amazon Call Stack, Expo, Meta, Microsoft Software Mansion, and Vercel with Seth Webster. [02:57]&lt;/p&gt;
&lt;p&gt;Seth Webster is executive director and he&#39;s the what manager of the React core team, [03:39]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Basically. Yes. [03:44]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, so that makes sense. He is basically already doing that role and expanding what the core team means to an intercompany organization. But yeah, it&#39;s a lot of the details that I was most curious about, like what does, what does this mean for governance? Like how will decisions be made are not yet answered right now from the, from the various posts on this. A quote is, the React team is actively working on this new technical governance structure, and we&#39;ll share more details in a future post. So this is an announcement of a future announcement in some ways, but it&#39;s pretty real. [03:46]&lt;/p&gt;
&lt;p&gt;So this is in collaboration with the Open JS Foundation, which is a partner to the Linux Foundation. So like th these are very large, pretty well-founded organizations that the React team is glomming onto in support of like a neutral home for React, as they call it. [04:19]&lt;/p&gt;
&lt;p&gt;It&#39;s sounds like they&#39;re in incorporating React Native into this as well, which I think is not necessarily a given. You know, if you&#39;re talking about the governance of React, what that means for React Native is not necessarily implied. But just looking at the founding members like Amazon, Call Stack, Software Mansion, and Expo, and I guess Microsoft too, like those are all heavy React native investors. [04:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I think it&#39;s quite surprising in that sense because it&#39;s more heavy on the React native side. Like Vercel is really the key sort of non-react native player. The rest are really heavy on React Native and there&#39;s like noticeably missing membership from like Shopify on the Remix side as an example. I, I actually find it&#39;s very skewed towards React Native, almost shockingly. [05:01]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, I&#39;d agree with that. It&#39;s, it is almost shockingly skewed towards React. React Native, given that it was not really pitched as the React Native foundation. That&#39;s true. I guess Software Mansion does do a fair amount of web React work. But I, I believe Call Stack is predominantly a React native shop as well. [05:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So I&#39;ll do my usual thing where I, I step back and provide historical context and what matter at all. So React was invented at Facebook. It has always been a project owned by Facebook and Meta. The code has been open source, but. You know, for years the entire development team was Facebook meta employees paid by Meta to work on React. And I&#39;ve said even in my conference talks this year about Meta, Vercel, React ownership, that the React team has had the freedom to work on what they want. And that&#39;s true, but I&#39;ve, I was reminded in some conversations with React team members at React Con, how much their work is constrained by, like the fact that their performance reviews are, &quot;what have you done to further meta&#39;s goals this year?&quot; [05:42]&lt;/p&gt;
&lt;p&gt;And so in some ways their ability to push React in the technical directions that they think are right, are limited by how much they can make the case for that. Inside Meta, even something like the Concurrent Stores work is essentially being pitched as, how can we make Facebook&#39;s Ads Manager app faster in a lot of ways? [06:38]&lt;/p&gt;
&lt;p&gt;So we saw multiple React team members move over to Vercel. Like people used to complain that this is all a Facebook app, all the meetings are inside Meta. There&#39;s no public roadmap, it&#39;s only meta. And then we had team members move to Vercel, and then it became, well, now Vercel is applying too much ownership to React and all the stuff we&#39;ve talked about with Next and server components and Vercel and how that&#39;s supposedly driving the roadmap, et cetera. [07:02]&lt;/p&gt;
&lt;p&gt;And so the team itself has been split across two companies, and they&#39;re working together. It&#39;s one team, but it&#39;s kind of within these two companies. And so because of Reacts widespread usage, there&#39;s been calls for many, many years that there ought to be some kind of an independent foundation that would own the trademarks, the rights, the development process. [07:30]&lt;/p&gt;
&lt;p&gt;To React itself. And it always seemed kinda like one of those pipe dreams. The calls on Twitter to build, React into the browser. And obviously there&#39;s no way that&#39;s going to happen. And, and this felt like much of the same kind of idea. And so they, they did the initial React and the initial keynote at React Con, and they were mostly focusing on technical things. [07:56]&lt;/p&gt;
&lt;p&gt;Like last year we, we fixed the, the sibling preloading bug. That was the suspense gate problem that everyone was talking about last year. And 19.2 came out and the compiler is 1.0. And then Seth came out and he did the one more thing routine and as soon as he put the React Foundation slide up, my jaw dropped. [08:17]&lt;/p&gt;
&lt;p&gt;And I think I even said out loud, oh my word, they actually did it. And my first reaction was, even without knowing. Any actual details about what the foundation is or how it&#39;s going to work or whether this is even going to work out in practice. The fact that they have taken the time to do the legal preparation work to try to make this happen and are actually attempting to execute on that is a huge deal for React and the ecosystem. [08:40]&lt;/p&gt;
&lt;p&gt;It, it is a statement of good faith and intent for how they want React to proceed in the future. Like without any details, my immediate reaction is, yes, finally, this is a good step forward. We&#39;ll see what it means in practice, but this is a really big deal. [09:12]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, I would agree with that. It&#39;s a really big deal that they&#39;re moving in this direction. [09:32]&lt;/p&gt;
&lt;p&gt;I&#39;m really curious about the details because I think there&#39;s a lot of, I don&#39;t know, like in the past they&#39;ve done working groups and et cetera. And my understanding of the takeaway is generally, has generally been that they found it really difficult to manage participation in those like open access kind of arenas. [09:37]&lt;/p&gt;
&lt;p&gt;So maybe the, this is kind of like adding a new layer of abstraction perhaps with administrative support from currently thriving independent foundations. Mm-hmm. So that, that definitely makes me think that this has a real chance of being something real and valuable that goes on for a long time. I&#39;m curious what it means for things like, like in practice, it&#39;s not like anyone&#39;s employer is changing. [09:56]&lt;/p&gt;
&lt;p&gt;No details have been shared yet. At least that anyone is being paid from this new foundation. I, I don&#39;t know whether to call it meta or Facebook &#39;cause it&#39;s on the fb.com domain. Mm-hmm. But in the Facebook engineering announcement here, they do say that Meta has committed to a five year partnership with over $3 million in funding. [10:23]&lt;/p&gt;
&lt;p&gt;I don&#39;t know what other funding they might have. I don&#39;t know what other sources of funding they might have in the future, but like just looking at five years, $3 million, like that&#39;s 600,000 per year, which is like, you know, for meta engineers, that&#39;s like free engineers. So I don&#39;t know. I don&#39;t know what that means for people&#39;s incentives and where they will work and how their focus and performance will be evaluated. [10:42]&lt;/p&gt;
&lt;p&gt;Yeah. [11:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; What that rules out is that effectively the React Native or React and React Native Core teams will definitely not be unemployed by the React Foundation. Right. &#39;cause that would basically cover three salaries, which is far smaller than what the React teams are. [11:05]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I think the React core team has like 10 engineers. [11:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; And RN is about the same. So you&#39;re talking 20 engineers. It&#39;s definitely not going to cover those employees to move them over, which is in some capacity. And then details are to be fleshed out. But in some capacity it is a bit disappointing because it would be great if they had more freedom as the React Native Core team to play around without the restrictions, like you mentioned, of the reviews that Meta has internally. [11:22]&lt;/p&gt;
&lt;p&gt;And so it&#39;s gonna be interesting to see how that Dyna dynamic plays out effectively because there is still gonna be that same team. At Meta [11:44]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I, I have three sources of information that I&#39;m piecing together for some of how the foundation is supposed to work. Seth Webster answered a few questions about this during the q and a session that was broadcast at React Conf. [11:51]&lt;/p&gt;
&lt;p&gt;I had a conversation with a couple React team members and the topic came up about how things would be governed. And then there was an article on the new stack where Seth Perry was interviewed and was giving some further details about some of the governance. [12:05]&lt;/p&gt;
&lt;p&gt;So as best I understand it, so you&#39;ve got kind of the corporate level stuff that&#39;s Meta, Amazon, Callstack, Vercel, et cetera. They will then elect a technical steering committee. Which is, I guess sort of similar to how Node and other projects work, Seth said in the q and a, that meta will start with five votes on that corporate board, and then it will go down to one over the next five years. So you kind of a decreasing amount of influence in that sense. [12:21]&lt;/p&gt;
&lt;p&gt;The technical steering committee, I assume, would be able to make decisions themselves, but obviously the fact that they are employees of the companies elected by those companies, et cetera, they would be taking their company&#39;s interests into account in the process. The article says that the technical governance will be in the open more than it once was. [12:53]&lt;/p&gt;
&lt;p&gt;Request for comments, sets of stages, et cetera. But a lot of the process is still to be figured out. The article also talks about the foundation doing things like investing in React hubs, helping boot camps teach React better, possibly some things with conferences and alignment and such. So it sounds like the foundation is going to be doing more outreachy things. [13:17]&lt;/p&gt;
&lt;p&gt;So there, there&#39;s a lot of this that is not clear what it means in practice yet, but certainly. React is not solely a meta owned thing at this point. There are multiple companies that are invested in it. There is a, a future for React independent of META&#39;S ownership and goals. And this all feels like the people who care are trained to do the right thing. [13:43]&lt;/p&gt;
&lt;p&gt;And [14:11]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; on the conference side, I mean, I hope that&#39;s the case because one of the, as a conference organizer, one of the things that&#39;s perhaps challenging is that Meta doesn&#39;t necessarily sponsor any conferences beyond just React conf, right? And so, look, it&#39;s well known that that&#39;s sort of the case. And so maybe the React Foundations that is going to be able to sponsor those conferences, even if it&#39;s not a meta badge to speak, which would be very, very interesting if some of that is used for that. [14:11]&lt;/p&gt;
&lt;p&gt;So I&#39;m sure it&#39;s not just Meta who&#39;s investing, right? Like I, I suspect that there&#39;s funding coming in from. Amazon and Microsoft, at least from the bigger, bigger sort of established enterprises [14:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; hopefully. And that&#39;s interesting. And the new Stack article interviewed Seth and has a bunch of poll quotes from him and they do talk about that, that like the foundation will look at expanding the annual React conf. [14:49]&lt;/p&gt;
&lt;p&gt;I guess that&#39;s not sponsoring other conferences, but they&#39;re talking about conferences at least. But also something that caught my attention. They say while React Comp is one of the few conferences that actually makes a profit, it basically only paid for itself. And also it&#39;s a thousand dollars a ticket conference. [15:00]&lt;/p&gt;
&lt;p&gt;So like hopefully the mode of making conferences self-sustaining is not making them cost a thousand dollars. [15:14]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Yeah. I mean conferences are from experience a very, very expensive endeavor. And if you don&#39;t have companies backing them, they will make a loss. [15:22]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I do wanna shout out, as we mentioned at the start, Seth says &quot;We have lots of boot camps out there that are doing their best, but they&#39;re also sending people out into the world misinformed about how React works.&quot; [15:31]&lt;/p&gt;
&lt;p&gt;This is interesting there. It&#39;s a, it&#39;s funny, they&#39;re actually hitting on a couple of points that I&#39;ve investigated myself about how to do businesses in like a community since like I had previously connected with a bootcamp. Somebody was working there as the curriculum lead and they were doing a curriculum overhaul. [15:40]&lt;/p&gt;
&lt;p&gt;&#39;cause they hadn&#39;t changed what they were teaching in three or four years. And they were like, is this still relevant? Is this what the industry&#39;s using? And I was like, cool. I help run a community. I know lots of experts. I would be happy to facilitate some kind of professional review. And then the bootcamp curriculum lead got laid off because that was 2022 and lots of things were not happening. So it&#39;s interesting to see them talk about things that I&#39;ve thought a lot about. [15:59]&lt;/p&gt;
&lt;p&gt;And also a lovely shout out, Seth says there are also cohorts such as meetups and local groups that could be assisted. One meetup actually led to the creation of the conference React Native London. So that&#39;s super cool. Love that for you, Mo. [16:22]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Yeah, I didn&#39;t, I, I did not have that on my Bingo card to get a shout out from Seth Webster on an interview, which is awesome. Yeah, it was good to have him last year. [16:36]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Mo is the organizer of React Native London and that one meetup that led to the creation. So that, that&#39;s just fun. [16:44]&lt;/p&gt;
&lt;p&gt;That&#39;s cool. We have actual players in the ecosystem in the podcast right now. [16:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Well, you got Mark. So I&#39;m stepping up to very, very, very high standards. Pretending to. [16:55]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool though. Yeah. So I don&#39;t know. I don&#39;t know if there&#39;s more to say there. [17:00]&lt;/p&gt;
&lt;h2 id=&quot;192-activity-useeffectevent&quot;&gt;19.2 (Activity, useEffectEvent)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Some of the more technical stuff. So they, they talked about React 19.2 coming out, which if you&#39;ve been paying attention to this podcast for the last several months, you would&#39;ve known all the details already. Like the new activity component for being able to hide components while persisting state use effect event for hopefully fewer use effect related bugs, et cetera. React compiler hit 1.0 and then [17:03]&lt;/p&gt;
&lt;h2 id=&quot;react-native-news&quot;&gt;React Native news&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Mo as like as usual, you wanna talk about the React Native-y things? [17:27]&lt;/p&gt;
&lt;h2 id=&quot;new-architecture-only-from-v082&quot;&gt;&lt;a href=&quot;https://reactnative.dev/blog/2025/10/08/react-native-0.82#new-architecture-only&quot;&gt;New architecture only from v0.82&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; So a few updates that they did, one of which was quite surprising was that the next release of React native version 0.82 is going to be new architecture only. [17:32]&lt;/p&gt;
&lt;p&gt;So obviously earlier on a few months ago, we talked about how they deprecated the old architecture than they froze the old architecture. Now they&#39;re dropping the old architecture. And so to me that was a much faster deprecation cycle than I, I would&#39;ve expected. Specifically when it comes to the fact that there are still a fair few libraries that are using the old architecture and only support the old architecture. [17:44]&lt;/p&gt;
&lt;p&gt;So to give you a very concrete example, we had our monthly meetup literally yesterday, and there was a talk about Arrive, which is this animation engine that a lot of people are using to animate websites and make really, really cool stuff. But what we learned surprisingly was that Rive only supports the old architecture. [18:06]&lt;/p&gt;
&lt;p&gt;So what that means is that this company who&#39;s a very popular healthcare company, really don&#39;t have a path to sort of migrate to the new architecture and hence version 0.82 until Rive starts to support the new architecture. So there are still libraries, albeit the majority of major libraries have been ported to the new architecture that are still hanging behind. [18:24]&lt;/p&gt;
&lt;p&gt;So I&#39;m quite surprised by this, but we&#39;ll see how it goes. It probably means that these library maintainers really need to like step up in the next month or two and get ready. [18:44]&lt;/p&gt;
&lt;h2 id=&quot;vega-os-announcement&quot;&gt;&lt;a href=&quot;https://developer.amazon.com/apps-and-games/blogs/2025/09/announcing-vega-os&quot;&gt;Vega OS announcement&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; The second big thing, which I have a little bit about later on, but just a quick one, is that Amazon did the Vega Os announcement earlier. [18:52]&lt;/p&gt;
&lt;p&gt;It was towards the end of September that they actually announced it, but [19:02]&lt;/p&gt;
&lt;h2 id=&quot;vega-introduction-at-react-conf&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=p9OcztRyDl0&amp;amp;t=5737s&quot;&gt;Vega introduction at React Conf&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; they formally talked to the React and React native communities about it during React Conf. This is a completely new operating system that&#39;s fully built from scratch by Amazon folks and React Native is the UI layer. It&#39;s the only way that you can write apps for it, which is quite a big investment from Amazon&#39;s perspective into React Native as a technology. [19:04]&lt;/p&gt;
&lt;p&gt;So Amazon makes a lot of devices. For a little bit of context, you might&#39;ve seen their Fire TV devices, some of the Kindle fire devices that they had, but also like Echo dots and a whole slew of different devices that they manufacture. And previously a lot of these were running on Android or a variety of Android called Fire Os that they had adopted from the Android open source projects. [19:27]&lt;/p&gt;
&lt;p&gt;And so now they&#39;ve kind of completely ditched that and they&#39;re betting long term on React native now at our company at Theo and a bunch of other companies have been sort of working with Amazon behind the scenes on this. And we&#39;re aware of this but weren&#39;t really allowed to speak about it. So it&#39;s now out in the public. [19:47]&lt;/p&gt;
&lt;p&gt;But it has been a good while, which I cannot specify how long that duration is that I have been aware of this, but just not able to talk about it and have been working with the Amazon folks to make sure that things are ready for their launch. So they have an introduction video at React Con, which I think is interesting because TV apps need to run on very, very limited specs. You&#39;re talking like a few gigs of Ram one or two gigs of ram and like very, very, very slow CPUs and some of them are even worse than that. So effectively they really had to optimize the living crap out of their operating system and make sure that React plays nice with it and is like the first class citizen when it comes to it. [20:02]&lt;/p&gt;
&lt;p&gt;So it&#39;s, it&#39;s very interesting how they had to optimize it and it was a big undertaking for them. So. I guess congrats to the Amazon team, but beyond that, it&#39;s quite interesting for people that are interested in performance and React and React native. [20:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, I was just scanning this to see if I could find any details about what they built on top of, because like, I don&#39;t know, nobody builds a whole OS from scratch anymore. And this is on top of Linux? [20:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Yeah, it&#39;s c plus plus on top of Linux. Basically it&#39;s a Linux. Or is a Unix based system. [20:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right, like, and so is Android. Like, I&#39;m curious to what extent this is a locked down, stripped back version of Android that they&#39;re calling Vega. They don&#39;t say that anywhere, but like reading the tea leaves here, I, my assumption is that the, I don&#39;t know, Android was such a massive undertaking that Google then acquired and commercialized. [21:05]&lt;/p&gt;
&lt;p&gt;Curious to hear more technical details about the OS layer here and how it… [21:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I can tell you a little bit about that because I&#39;ve known about it for a while. It&#39;s not on top of Android in any capacity. It is fully, the Android open source project components of it are fully stripped out. It&#39;s built from scratch, which means that compatibility with old apps is. [21:32]&lt;/p&gt;
&lt;p&gt;Limited and there&#39;s other solutions. It&#39;s not that you can run Android apps on it as an example that we&#39;re the old Fire OS apps. [21:47]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; So wait, it sounds a little bit like you&#39;re saying there is a shared lineage with Android, but it&#39;s different enough that its own technically distinct thing. [21:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; They share a technical lineage in the same capacity that like Mac Os and Androids here, which is, they are both unique systems and that&#39;s pretty much it. [22:02]&lt;/p&gt;
&lt;p&gt;Like they serve the same kernel but like so does 90% of devices out there. So it&#39;s as Android, as IOS&#39;s, Android, if that kind of makes sense. [22:11]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; The Tree of Life, kingdom Family order. Like this is not shared genus. This is shared order maybe? Yes. Okay, cool. Good to know. Thank you. [22:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I do wanna highlight a couple talks in particular, and again, you can look at the whole React con recap blog posts to get links to the different talks and the different portions of the live stream. [22:27]&lt;/p&gt;
&lt;h2 id=&quot;joe-savonas-exploring-react-performance-talk&quot;&gt;Joe Savona’s “&lt;a href=&quot;https://www.youtube.com/watch?v=zyVRg2QR6LA&amp;amp;t=20274s&quot;&gt;Exploring React Performance&lt;/a&gt;” talk&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; A lot of good talks that were worth watching, but two that I liked in particular, Joe Savona did a talk on some of the React team&#39;s performance experiments, and there&#39;s a bit of controversy because he showed a bunch of hypothetical, semi hypothetical benchmark numbers without any real details on the actual implementation of the benchmarks. [22:36]&lt;/p&gt;
&lt;p&gt;And then some of them were like, versus we built NAP with signals and compared it with one with React and then ex a highly prototype React and a bunch of other stuff. And then people were saying, well, we tried to mimic this and we think you&#39;re probably using signals the wrong way. But it was still interesting to hear the discussion around, we agree that performance has been a problem and we&#39;ve tried prototyping some different ideas to see what&#39;s possible and where bottlenecks might be. [22:56]&lt;/p&gt;
&lt;h2 id=&quot;rickys-async-react-part-i-and-part-ii-repo&quot;&gt;Ricky’s “&lt;a href=&quot;https://www.youtube.com/watch?v=zyVRg2QR6LA&amp;amp;t=10907s&quot;&gt;Async React Part I&lt;/a&gt;” and “&lt;a href=&quot;https://www.youtube.com/watch?v=p9OcztRyDl0&amp;amp;t=29073s&quot;&gt;Part II&lt;/a&gt;” (&lt;a href=&quot;https://github.com/rickhanlonii/async-react&quot;&gt;repo&lt;/a&gt;)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; The other one I really wanna point to though, Rick Hanlon did a talk called Async React and he had a few major, he had a couple different points out of this. [23:26]&lt;/p&gt;
&lt;p&gt;One was that the React team has been talking about things like suspense and concurrency since 2018, and if it&#39;s been hard to follow where the React team is trained to go with this, it&#39;s &#39;cause the React team itself really didn&#39;t know where they were trained to go with this. He even pulled out meeting notes from a React team weekly meeting in like 2015 or 2016 where they started having the first initial ideas for, we think we want to go in this direction, but they really didn&#39;t know what the final result ought to look like or how they were going to get there. [23:36]&lt;/p&gt;
&lt;p&gt;And so showed a diagram with a whole bunch of back and forth wavy lines like we, we don&#39;t know where we&#39;re going, but now it&#39;s 2025. We&#39;ve gotten through the confusion. We&#39;ve now built all the main concurrent pieces that we were trained to build. We are seeing the results of even like the React 16 fiber rerate. [24:15]&lt;/p&gt;
&lt;p&gt;And now we can actually say, we&#39;ve built these pieces and here&#39;s how they ought to fit together. And so the second half of his talk was a demo where he took a badly written but viable React app, which uses use effect for data fetching and manual setting, state for loading states and things like that. [24:37]&lt;/p&gt;
&lt;p&gt;And he first refactored it to have a bunch of transitions for better loading animations, using suspense for the data fetching, and he showed the visible improvements in user experience. And then his point towards the end was that, yeah, the, so like this is how modern Async React code ought to work. But in fact, you shouldn&#39;t even have to write most of this code in your own app because the transitions and the loading states and everything else really ought to be embedded in your router and your data fetching library. [24:56]&lt;/p&gt;
&lt;p&gt;Now, unfortunately, his actual talk got interrupted for stupid technical reasons. So he came back at the end of day two and picked up with his demo and actually had a chance to do a better version of it. [25:36]&lt;/p&gt;
&lt;p&gt;And so I think the key points are, one, the React team has now built the concurrent async features that they&#39;ve talked about for years. Two, a lot of us, including myself, are still kind of stuck in like a 20 16, 20 18 era mindset of how to use React three. These things make writing React apps better and better user experience. Four, we need to get these things embedded in component libraries and data fetching libraries so that a lot of this stuff just works outta the box. [25:48]&lt;/p&gt;
&lt;p&gt;So I highly, highly recommend watching Ricky&#39;s talk. He also put up the demo code as well. [26:23]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; That was a good talk. It was a good demo. I will say, while watching him write the code. I was like, man, this looks really complicated. [26:29]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yeah. And that, and that&#39;s another point that we&#39;re going to touch on here with a couple of the, the other things as well. [26:37]&lt;/p&gt;
&lt;p&gt;One other thing that really caught my attention, so if you&#39;ve been listening to podcasts for a while, you&#39;ve heard me agitating, saying that we really need is a new React working group where folks from the community can officially communicate to the React team for things like, Hey, we think there should be more docs to cover this topic. [26:41]&lt;/p&gt;
&lt;p&gt;Or, oops, create React app just broke. I think you should fix it, and things like that. And Ricky was actually the person who drove most of the React eight team. Working group. [27:00]&lt;/p&gt;
&lt;h2 id=&quot;async-react-working-group&quot;&gt;&lt;a href=&quot;https://github.com/reactwg/async-react&quot;&gt;Async React Working Group&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And so at the end of his talk, Ricky actually announced that there is now a new Async React working group. And this is sort of a catchall, it&#39;s meant to cover discussions of things like how do we get async React features into major ecosystem libraries and, what kind of docs should we have to cover this stuff? [27:12]&lt;/p&gt;
&lt;h2 id=&quot;first-discussion-of-more-docs-ideas&quot;&gt;First &lt;a href=&quot;https://github.com/reactwg/async-react/discussions/2&quot;&gt;discussion of more docs ideas&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And so the, even the first discussion thread is a lot of discussion between me, Ricky, Dan Aberman of Corbin Crutchley, about a whole bunch of possible docs, pages that we could add that would cover things like transitions and suspense and how to use them correctly. [27:35]&lt;/p&gt;
&lt;p&gt;And getting people from the community to contribute those new docs pages rather than waiting on the React team. To write them. So I am actually genuinely, genuinely excited. Like I&#39;ve done a lot of complaining and this is the answer to my complaints that we have working group and docs plans and an agreement that people outside the team can contribute. [27:53]&lt;/p&gt;
&lt;p&gt;So like I am actually legitimately thrilled by this. [28:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Nice. I do appreciate more, I don&#39;t know, open participation more, more discussion. That&#39;s great. [28:21]&lt;/p&gt;
&lt;h2 id=&quot;remix-v3-announcement&quot;&gt;Remix v3 announcement&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Should we get into Remix V three? [28:27]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yes, we should. Alright, so usual caveat, I still have not had time to actually watch the announcement, but I, I think I can give a fair summary of it from having seen the discussion on Twitter and the articles afterwards. [28:29]&lt;/p&gt;
&lt;p&gt;We have mentioned for the last several months that they were teasing Remix V three is going to be, not pre-ACT, its own component model, something with iframes, whatever. And our last comments on it were just show us some code already. Well, at the Remix Jam conference, they did actually show us the code. [28:43]&lt;/p&gt;
&lt;h2 id=&quot;announcement-demo-timestamped-breakdown&quot;&gt;&lt;a href=&quot;https://github.com/markdalgleish/remix3-resources&quot;&gt;Announcement demo timestamped breakdown&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; There was a, a repo put together that did timestamped links to all the appropriate pieces of the announcement video. So if you&#39;d like to be able to jump in and see the examples of what Remix V three code is supposed to look like, that should make it easier. My first impressions, again, just having seen screenshots of the code in following the discussions, is that Remix v three&#39;s component model is sort of a mixture between React, view and backbone. [29:03]&lt;/p&gt;
&lt;p&gt;So it&#39;s kind of like React in that you have function components and they, and that uses JSX. It&#39;s kind of like view and the composition API, where you&#39;re given a closure as the setup. It&#39;s a little bit like backbone in that the function component you&#39;re rating still sort of is organized like as if it were a class. [29:35]&lt;/p&gt;
&lt;p&gt;It passes in a reference to the instance rather than getting the props as an argument, and you&#39;re supposed to call it this. And part of that is to make use of a TypeScript typing trick that lets you declare the type of this as an argument to a function. But also you manually trigger updates by first mutating a variable in the setup closure, and then you manually call this update. [29:58]&lt;/p&gt;
&lt;p&gt;And so Ryan Florence even said, this is basically old school React class component, this dot force update. Essentially, so I, I can see bits and pieces of parallels and influences between all three of those frameworks. When I look at the Remix code, it&#39;s also supposed to come with a bunch of utilities for being able to compose event handlers together. [30:29]&lt;/p&gt;
&lt;p&gt;And yeah, so we, we have finally seen the code. I believe they also gave some demonstrations of what the server side loading story is supposed to look like. Some kind of an I frame alike component that has its own URL and can automatically re fetch HTML. I haven&#39;t looked into those pieces as much, so very big picture. [30:54]&lt;/p&gt;
&lt;p&gt;I saw a lot of people arguing about having this dot update. A lot of people saying it feels like a step backwards, it&#39;s manual update code. [31:19]&lt;/p&gt;
&lt;h2 id=&quot;updates-syntax-can-be-customized&quot;&gt;&lt;a href=&quot;https://x.com/sergiodxa/status/1976878377509568871&quot;&gt;Updates syntax can be customized?&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; But some people demonstrated that you can very quickly write your own wrappers that just call this DOT update internally. I have seen wrappers that mimic like the used state hook. [31:28]&lt;/p&gt;
&lt;p&gt;I&#39;ve seen wrappers for other state management libraries like Redux. So it&#39;s a primitive that can clearly be abstracted if you really want to. I saw some good posts and articles from James Long and a couple other people with thoughts on the ability to compose interactions together. Carl, to your point that modern React and all the new async features feel very complicated. [31:39]&lt;/p&gt;
&lt;p&gt;Like there&#39;s good reasons why methods like transitions exist to try to give better user experiences, but it&#39;s just all these additional concepts and behaviors you have to keep track of in your head. And Remix is trying to go for a less magic, less abstraction approach. So we&#39;ll see what it means in terms of adoption. [32:06]&lt;/p&gt;
&lt;p&gt;Again, this is non-reactive, so different framework, different ecosystem. Who knows what the actual adoption will look like, but I get the sense of what they&#39;re trying to go for and I, I think it will appeal to some number of users out there that want to have that kind of behavior. [32:31]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, I&#39;ll definitely keep paying attention to it &#39;cause they&#39;re thoughtful about things and historically have just done a lot. [32:49]&lt;/p&gt;
&lt;p&gt;So I&#39;m very curious to see where this goes. But my gut feeling here is that this is going to end up more as an API exploration and that any great ideas that come out of it will be a fresh exploration and then maybe validate some ideas that get brought into React or view or other big tools. But yeah, I, I could be wrong, could be, could be more independently successful than that. [32:58]&lt;/p&gt;
&lt;p&gt;They, they did stress in the video that I watched, that this is all like prototype phase. So they, like right now apparently there&#39;s splitting it all up into a bunch of different packages. They can iterate independently and explore a bunch of different things. But the, the final intended usage would be from one package, not from 20 different packages. Just to throw that out there as a a thing that will change. Yeah, I don&#39;t know. We&#39;ll see. We&#39;ll see. I think the component model is just gonna be really hard to disrupt. [33:25]&lt;/p&gt;
&lt;p&gt;One, one thing I did see in the video of Ryan Florence talking about just talking while he was demoing, he like compared and contrasted with like, here&#39;s how we do state changes and you just call the dispatch function instead of set state. [33:54]&lt;/p&gt;
&lt;p&gt;And I was like, I dunno, you can do that in React. Like they&#39;ve been encouraging people to do that for years, for like six years basically Ever since hooks came out and you could do a state reducer, they were like, please, except for trivial uses of state, all of your state should be in a reducer and you should use dispatch. Not set state. So just like calling that out as a point of comparison, like React has been trying to do that for a long time too. It&#39;s just nobody actually does, I dunno, just caught my attention. [34:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Well least we have an actual code to critique now and argue about instead of the vague teasing. True facts. [34:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I will happily continue reading code and critiquing. [34:41]&lt;/p&gt;
&lt;h2 id=&quot;i-built-the-same-app-10-times-code&quot;&gt;&lt;a href=&quot;https://www.lorenstew.art/blog/10-kanban-boards&quot;&gt;I built the same app 10 times&lt;/a&gt; (&lt;a href=&quot;https://github.com/lorenseanstewart/kanban-comparison&quot;&gt;code&lt;/a&gt;)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Speaking of which , I love this project. I have thought about doing this so many different times and I never have because it&#39;s hard. Somebody built the same app 10 times in a variety of different frameworks and tools and benchmarked them and compared and contrasted their performance in a bunch of different metrics. [34:44]&lt;/p&gt;
&lt;p&gt;It seemed like they focused pretty heavily on like bundle size to me, very wordy. I, I will say I got a little bit lost in the [35:05]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; instruction. Very wordy and very, also, a lot of the article was very clearly AI generated. I saw some comments from the author saying he had written pieces of it in sections and used AI to help with it. [35:12]&lt;/p&gt;
&lt;p&gt;So like there, there was clearly human involvement in it, but the, the AI generation of the article itself was a critique point. [35:22]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Just like as I&#39;m scrolling, it&#39;s got so many paragraphs in a row that are all like identically long. Just a little bit of a wall of text. I definitely skimmed this pretty hard. [35:30]&lt;/p&gt;
&lt;p&gt;All that aside, like I just love the idea of doing the exact same thing with the exact same. Like, well, I don&#39;t know that they use the same test suite, but that, that was always my idea is build. You build an end-to-end test suite and then you get a passing app for that test suite in a bunch of different tools. [35:38]&lt;/p&gt;
&lt;p&gt;I meant to do more of a deep code review on a couple of the different implementations. It&#39;s a CanBan board, it&#39;s, you know, a Trello clone type project where you&#39;re doing task management with cards and drag and drop. I guess it, it&#39;s a great and a parable comparison because drag and drop is really hard to do and so it&#39;s very frequently something people try to lean on libraries for. [35:54]&lt;/p&gt;
&lt;p&gt;So if you are implementing it yourself, that&#39;s kind of cha, that makes it a little bit challenging to use as a point of comparison. But the tools that were used here, he built it analog, which I guess is vanilla js is what I&#39;m assuming, or [36:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; analog is actually a, a next like tool for Angular. [36:31]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Oh great. Okay. Okay. So you built it an analog, which is an angular type thing. [36:36]&lt;/p&gt;
&lt;p&gt;And HTMX, Marco, which I&#39;d never heard of. Next.JS, of course. Next. Sure. Qwik City, which is Qwik. I&#39;ve heard of Qwik City I had not heard of. So this is I guess [36:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; probably another solid versus solid start type thing. [36:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Qwik city to qwik Sure. Solid start spelt Kit Tan Stack with solid and then Tan Stack with React. [36:55]&lt;/p&gt;
&lt;p&gt;Yeah, one of the first tables, one of the first actual like points of comparison of the output tables is just on bundle size and how much JavaScript was served in order to. Get this app running. They used Next.JS version 16 as the baseline and that was about 500 kilobytes gzipped, which is huge. It&#39;s big hand stack. [37:03]&lt;/p&gt;
&lt;p&gt;Start with React. Clocked in at about 300 kilobytes a little bit more with solid was a half of that hand stack. Start with solid was 150 ish kilobytes. The smallest was Marco. 12. At 12 kilobytes followed by quick city at 88. Oh, I just realized there&#39;s parenthesized compressed. I thought I was reading the compressed and I was not. [37:25]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; There&#39;s also the board page versus the homepage sizes. [37:49]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Okay. Alright. This is more confusingly presented than I realized. [37:53]&lt;/p&gt;
&lt;h2 id=&quot;same-author-as-react-won-by-default-and-its-killing-innovation&quot;&gt;Same author as &lt;a href=&quot;https://www.lorenstew.art/blog/react-won-by-default/&quot;&gt;React Won by Default and It’s Killing Innovation&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I think the biggest picture takeaways, number one, it&#39;s worth noting that the author of this article previously put up a post a month or two ago saying that React by is the default choice and it&#39;s killing innovation in the ecosystem. [37:57]&lt;/p&gt;
&lt;p&gt;So that kind of to where they&#39;re coming from. But I do think they did. They were legitimately trying to do a real meaningful comparison, even if the results were sort of what they were hoping they would be. IE reacted big and bad. So yeah, the big takeaways are like React itself is huge and so any React app is going to be very large bundle size wise. [38:08]&lt;/p&gt;
&lt;p&gt;And look, if we do like Tan Stack with Solid instead of Tan Stack with React, it gets smaller. But also if you do these other frameworks, it gets even better smaller and then it kind of ends with a bit of a, another rant about React is a bad choice. [38:32]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, I, I will validate that. To me it also looked like they really tried to give React a fair shake here. [38:49]&lt;/p&gt;
&lt;p&gt;Like, you know, if you wanted to, if you were wanting to complain about bundle size, if React apps, like there are so many easy ways to bloat this up to a couple of megabytes. So like the fact that they didn&#39;t do that is indicative enough to me that they tried to give this a fair shot. It&#39;s cool. I love this. [38:55]&lt;/p&gt;
&lt;p&gt;This is a great project, great effort. I don&#39;t know that, to me, at the end of the day, this is interesting and fascinating and a great point of comparison, and also like not that meaningful because the performance metrics that you measure here that are easily measured by comparing the outputs of identically functional applications, that&#39;s really only like maybe a third of the reason why you would choose to build an app with any particular set of tools. [39:11]&lt;/p&gt;
&lt;p&gt;Like really, if you&#39;re starting a company and hiring engineers and doing a greenfield project. Like some of the most important things are how much will this cost? [39:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; How well is everything? How well is everything documented? How easily can we spin up engineers who know these things? I mean, the, the ecosystem argument is a real thing. [39:52]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And like, you know, if it takes you two months to find a developer, you know, a senior developer who can build your app in Marco, you know, you could do that in a week. I don&#39;t know. The hiring for React is much easier than hiring for some niche tool. And I have seen writeups of people saying like, yeah, we built our startup on this niche framework and we couldn&#39;t hire for it. And that ended up contributing to the death of the company. [39:59]&lt;/p&gt;
&lt;p&gt;So like, you know, these performance metrics are important, they&#39;re really useful, it&#39;s great to have them. So we know where opportunities to improve are like tying this back mark to your Immer work. Like if somebody hadn&#39;t complained about performance, you wouldn&#39;t know that it needed to get better. [40:23]&lt;/p&gt;
&lt;p&gt;Pretty [40:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; much. Yeah. [40:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; So this is great and I love it, but it&#39;s also not the end all, be all of like decision making for, things. Yeah. It&#39;s also, man, this, it&#39;s just so hard to read because of how long it is. I wish they&#39;d stripped this down a bit more. [40:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; And if we take like a step back out of our like web ecosystem bubble for a second, like you go to like the backend world and like enterprise business companies or finance or whatever, and like they employ a lot of developers, right? [40:49]&lt;/p&gt;
&lt;p&gt;Like thousands, thousands and thousands of developers. And like there&#39;s a reason they&#39;re all on Java and .Net is because like they can hire for those and it&#39;s pretty easy to build a team around. That&#39;s the top priority. Even like this stuff is quite minuscule when people are, companies are hiring at a large scale. [41:04]&lt;/p&gt;
&lt;p&gt;And then the second thing, which is like not accounted for, I think in this like approach of looking at like just the bundle size that&#39;s outputted is the fact that like your productivity with the fact that most of the AI tools are really like optimized around React is not something that you should not look at and consider when you&#39;re choosing something. [41:21]&lt;/p&gt;
&lt;p&gt;There&#39;s so much training data and so much like tooling around building React apps quickly and prototyping React features or React apps that with AI that is just a bit, it feels a bit moot some of some of these conversations. It feels. [41:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; To be clear, like React has got itself has gotten much bigger over the years. [41:55]&lt;/p&gt;
&lt;p&gt;In fact, even just 18 to 19 it got notice will be bigger. Bigger bundle sizes are not a good thing. We are not sitting here saying Your bundle size does not matter. Alex Russell, as much as I disagree with his communication style is right to point to the technical receipts saying that big bundle sizes are bad, but also it&#39;s not the only single metric you should care about. [41:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, right. Yep. And also, last thing I&#39;ll shout out here. I think the author of this blog post also mentions that he tried not to pull in too many dependencies. So like did not pull in fetch wrappers or data fetch tools like React Query and. [42:21]&lt;/p&gt;
&lt;p&gt;Axios, the data fetch thing, which many people still use, I don&#39;t know. They still have a fair amount of utility just for things like observability and security and various guarantees like that. Like Axios itself is 36 kilobytes ified like 14 compressed. React Query is 55 kilobytes. I guess to say that the way he did it is actually better quote unquote for React in terms of the bundle size argument, but it&#39;s also not representative of how people actually build apps. [42:40]&lt;/p&gt;
&lt;p&gt;It&#39;s a challenge of these types of articles is that by necessity it has to be the level of scope that a single developer can execute on their own, and that&#39;s just not how most apps are built. Like most apps are not passion projects by one person. So yeah. Super cool. Love this post. It&#39;s interesting more than it is authoritative, I think. [43:11]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Good way to put it. Mo, tell us about Solito. [43:30]&lt;/p&gt;
&lt;h2 id=&quot;solito-5&quot;&gt;&lt;a href=&quot;https://solito.dev/v5&quot;&gt;Solito 5&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Yes, Solito. So go back a few months. You&#39;ll remember that we said Fernando Rojo joined Vercel. And he joined as the head of mobile firm Vercel. This was significant because he&#39;s the author of this library called Solito and a few other libraries like Ziga. So he&#39;s really, for the last few years, has been focused on. [43:33]&lt;/p&gt;
&lt;p&gt;Using React native on the web as well, especially with Next.JS. So he built his own startup in that sort of tech stack. It is from experience and having built with this tech stack quite a lot, it&#39;s a challenging approach because you are always balancing oversharing between your native components and your React native code and the web functionality that you import in. [43:53]&lt;/p&gt;
&lt;p&gt;And oftentimes that comes at a detriment of performance or ux, depending on if you do it right. And the more that you share, the more chance there is that you&#39;re not, you&#39;re sharing something that you probably shouldn&#39;t share. And so there&#39;s a lot of libraries in the secret system, but Solito is probably one of the key ones where it lets you share navigation across Next.JS and React native apps. [44:16]&lt;/p&gt;
&lt;p&gt;Now, we&#39;ve talked a bit about Toledo in the past. One of the big limitations that any library in this space has is that it relies on React Native Web Now, React native web was made several, several years ago. I think it was back in 2015. And it was made by Nicholas Gallagher. Now, he also did a talk at React Conf, which I would recommend you watch about React strict dom. [44:39]&lt;/p&gt;
&lt;p&gt;But the key thing with React Native Web is that it&#39;s not really receiving as much love because Nicholas is working more on React strict dom, which is sort of like the future path for sharing code across the web and mobile. And so React native web is, is a little bit bloated, and what that means is that any library that you really use, especially your, something like your navigation and routing library will import in large portions of React Native Web, even if you&#39;re not using all of the APIs. [45:00]&lt;/p&gt;
&lt;p&gt;And so that means that your bundle size goes through the roof. And what the Vercel team slash Fernando Roho have now been able to do is actually remove React Native Web as a dependency from from Solito, which is pretty massive. It sets us up in a foundation where you can effectively get ready for React strict dom adoption more easily in the long run, but also means that if you pick and choose your libraries well, when you&#39;re building a UniVercel app and you really think about what you&#39;re using on the web platforms, you can really start to tackle that bundle size problem. [45:25]&lt;/p&gt;
&lt;p&gt;It doesn&#39;t help if you&#39;re using libraries like let&#39;s say Reanimated, which has a pretty heavy reliance on React Native web. But if you&#39;re going really vanilla and you&#39;re very careful, it means that you can actually achieve much better performance on the web by using this new version of Solito, which is very exciting. [46:00]&lt;/p&gt;
&lt;p&gt;So yeah, if you&#39;re already using Solito, give it a look and if you&#39;re thinking of building a uniVercel app, it&#39;s a really good candidate if you wanna build a highly performant web variant of your application. [46:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I love that. It definitely makes a lot of sense to start moving away from React Native Web, given that we&#39;ve compared and contrasted React Native Web with like React strict dom. [46:25]&lt;/p&gt;
&lt;p&gt;I guess it makes sense to move away from React native web, &#39;cause the guy who made it is now doing a different thing in the exact same space from a very different angle. So yeah, that&#39;s a pretty strong argument for changing. [46:35]&lt;/p&gt;
&lt;h2 id=&quot;next-16-and-directives-debate&quot;&gt;Next 16 and Directives debate&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Okay, the last major topic for the day next 16 and directives. [46:49]&lt;/p&gt;
&lt;h2 id=&quot;next-16-released&quot;&gt;&lt;a href=&quot;https://nextjs.org/blog/next-16&quot;&gt;Next 16 released&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So next 16 came out. The headline feature is they now have what they&#39;re calling cash components. This is the, I don&#39;t know, second, third, fourth iteration on how to do caching in next, across the last couple major versions. I&#39;m not gonna pretend that I understand what, how this works. [46:56]&lt;/p&gt;
&lt;p&gt;No one does, but thing is that they introduced. Another new directive. Now to recap a directive is these little strings that you just put in your code. Originally we had use strict back in the ES 2015 days and then React server components introduced, use server and use client, and now we have &#39;use cache&#39;. [47:15]&lt;/p&gt;
&lt;p&gt;And the idea is that by slapping this directive on certain components, that tells the next bundler and compiler that, Hey, this is the output of this component is supposed to be cached. I don&#39;t understand the details. From there, go read the documentation long. With that, they also announced a new long-lived workflow product, kind of similar to what the temporal company. [47:40]&lt;/p&gt;
&lt;p&gt;Has built where you can have a function, for example, that implements a billing workflow by sweeping for 30 days and you&#39;ve written what looks like one function, but under the hood it&#39;s actually like saving its status to a database and then a time job wakes it up and continues executing the code, that sort of thing. [48:03]&lt;/p&gt;
&lt;p&gt;And I believe they opted to implement this also with a use workflow directive and like a use step directive. And I think there may have even been one or two others related to variations on caching, like use Cache, remote, something like that. And meanwhile, we&#39;ve also got the React compiler has opted to use directives for a couple things. [48:23]&lt;/p&gt;
&lt;p&gt;So there&#39;s a use no memo directive. If you want to tell the compiler, don&#39;t try to auto optimize this component. And so all of a sudden we&#39;ve gone from the JavaScript language specifying. One directive. There was also the unofficial, oh, was it use a SM directive that was part of a SM js, the precursor to web assembly, but like one official directive in the language. [48:48]&lt;/p&gt;
&lt;p&gt;And now we have a couple for bundlers, and now we have more for workflows and the compiler and all these other things. And so the Twitter discourse over the last couple weeks has been our directives, good or bad. And they&#39;re so confusing and they are changing the language. And you have all this bundler defined behavior that is not part of the language spec. [49:18]&lt;/p&gt;
&lt;h2 id=&quot;directives-and-the-platform-boundary&quot;&gt;&lt;a href=&quot;https://tanstack.com/blog/directives-and-the-platform-boundary&quot;&gt;Directives and the Platform Boundary&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And so Tanner Linsley, again, creator of all the different Tan Stack libraries, put out a blog post where he expressed his opinion that he does not think directives are a good idea. Because they are unofficial, because they&#39;re not standardized, because make it not clear what the actual intended behavior ought to be, as opposed to like explicitly importing a function that says, turn this into a client server function or something like that. [49:41]&lt;/p&gt;
&lt;p&gt;So there there&#39;s been a lot of arguing about directives and are they understandable? Are they good or bad? Are they too much magic? So that&#39;s been happening. [50:11]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I&#39;ll say it. They&#39;re bad. It&#39;s too much magic. I hate it. I&#39;m not a fan. [50:22]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I understand the thought process. I, I can&#39;t say I&#39;m thrilled. And so on that note, two article articles that are related enough to throw them into this section. [50:26]&lt;/p&gt;
&lt;h2 id=&quot;technical-critique-of-next-app-router-everyone-hates-nextjs&quot;&gt;Technical critique of Next App Router: &lt;a href=&quot;https://paperclover.net/blog/webdev/everyone-hates-nextjs&quot;&gt;Everyone Hates Next.js&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I&#39;ve seen lots of different article articles upset at Next or critiquing next. Most of them are frankly very badly written, but I saw one come out last week that I thought was very well written and focused strictly on the technical pros and cons of using the App Router. The title is Clickbait, everyone Hates Next, but the article itself is actually very well written. [50:34]&lt;/p&gt;
&lt;p&gt;It discusses technical aspects of using Next, some of the problems his team went in, ran into, and how and why they ended up migrating from the App Router over to 10 Stack Start. And then Nadia Vic, who has done a bunch of very excellent articles on React rendering behavior, put together a very data-driven look into do server components actually help with things like First Contentual Paint and various other White House style metrics. [50:57]&lt;/p&gt;
&lt;p&gt;So very worth reading. [51:26]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; As I&#39;m trying to think about how you might solve problems of caching and runtime things without directives. And I&#39;m thinking about, you know, my experiences using like CloudFlare workers or other runtimes where it&#39;s not a traditional process scope. And I don&#39;t know, I guess like it is a really challenging question of like, how do you signal to a developer that the file they&#39;re editing runs in a certain type of context? [51:27]&lt;/p&gt;
&lt;p&gt;And I guess I understand why directives are an appealing thing to reach for, but man, just the state we&#39;re in right now is really a lot. I found the Next.JS docs page with directives and it lists &#39;use cache&#39;, &#39;use client&#39;, &#39;use server&#39;, and then two sub variants of &#39;use cache&#39;. And that&#39;s not all of &#39;em that, so there&#39;s missing ones here and. [51:56]&lt;/p&gt;
&lt;p&gt;I don&#39;t know. When you start getting into like many different contexts, just naming them at the top of the file doesn&#39;t really seem like enough for me. I don&#39;t know. And then like the implication for that code can import other code that will not have it flagged what context it&#39;s running in via a directive at the top of the file. [52:20]&lt;/p&gt;
&lt;p&gt;And I don&#39;t know. It&#39;s a tough problem. It&#39;s a weird unanswered question in the industry, like not even the ecosystem, but like the industry. How do you flag code that might run on your browser, a real server, serverless environment, and yeah, I don&#39;t know. It&#39;s a challenge. [52:40]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I think it really does speak to the overhead and mental complexity of trying to juggle all these things. [52:58]&lt;/p&gt;
&lt;p&gt;We said earlier that React 19 has, 18, 19 have introduced a whole lot of things like transitions and other pieces to try to let you write better user experiences. But now you&#39;re having to juggle in your head like, here&#39;s the current version of my app in its display state versus a work in progress rendered version versus a future output rendered version. [53:04]&lt;/p&gt;
&lt;p&gt;On the server side we&#39;re having to deal with, this is server code, this is client code, sometimes they&#39;re mixed together in the same file, sometimes they&#39;re mixed together in the same component. Which code is running? In which context do I have to worry about accidentally leaking security tokens or something like that. [53:28]&lt;/p&gt;
&lt;p&gt;We&#39;re building tools to solve real problems, but there&#39;s more and more to juggle in your head as you go. [53:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Well, I&#39;m gonna plug effect one more time because I saw it come up in the chat. Oh, man. It just like talking about different ways of signaling facts about the code. The code you&#39;re writing has certain dependencies. [53:53]&lt;/p&gt;
&lt;p&gt;Certain dependencies is too loaded. That&#39;s, that carries too much context with it, but the code you write has a certain amount of assumption baked into it about what will be available and what it can rely on. The thing I love about a fact is that it makes that more explicit and brings it into the type system. [54:06]&lt;/p&gt;
&lt;p&gt;So I think the challenge right now is that we are missing a like platform and language level abstraction to express information like this. And yeah, I don&#39;t think we&#39;re gonna get it anytime soon. And I think these explorations will lead to something like that and hopefully converge into something. But I think this is gonna be like a real state-of-the-art problem for a couple of years and still, which I hate, but it&#39;ll get better. [54:26]&lt;/p&gt;
&lt;h2 id=&quot;-lightning-round-&quot;&gt;⚡ Lightning round ⚡&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Alright, moving on to the lightning round. [54:56]&lt;/p&gt;
&lt;h2 id=&quot;viteconf-roundup&quot;&gt;&lt;a href=&quot;https://voidzero.dev/posts/whats-new-viteconf-2025&quot;&gt;ViteConf roundup&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; In addition to React Con and Remix Jam, we also had Vite Conf and the V team gave a bunch of updates on all the different tools they&#39;ve been working on. Some of the highlights to me were that OX LT now supports ES lint and JS plugins via some really awesome tricks for interop between js and rust without the the cost of serial serialization. [54:58]&lt;/p&gt;
&lt;p&gt;They announced a combined tool chain called v plus, which basically pulls all the different tools, VIOX lint, OX format, Vitest, everything else together. That&#39;ll be their enterprise sales targeted tool set. And then Vitest four is out with browser mode support. You basically just put a flag in your Vitest config and suddenly your tests are running in a real browser instead of a node plus js. [55:21]&lt;/p&gt;
&lt;h2 id=&quot;aws-outage-postmortem&quot;&gt;&lt;a href=&quot;https://aws.amazon.com/message/101925/&quot;&gt;AWS Outage Postmortem&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Last week, AWS east went down and the internet died and they put out the postmortem and it was DNS apparently they, their internal DNS system for dynamo DB had like three different instances of the DNS updater running and one of them got stuck and was taking a long time to complete, and the other one came along and updated and then said, well, these, some of these plans look out of date, let&#39;s delete them. [55:49]&lt;/p&gt;
&lt;p&gt;And next thing you know, DNS goes down, dynamo DB goes down and the internet goes down. So, oops. [56:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; It&#39;s funny that the, uh, internet is backed by Dynamo db. [56:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; A lot of people like us East One is the default. A lot of people have tried to get away from US East one, but when a lot of Amazon&#39;s own stuff depends on US. [56:31]&lt;/p&gt;
&lt;p&gt;East one. Yep. You all [56:39]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; of your certificates can only be issued in US East one, so that doesn&#39;t really help much. Side note, if you end up working in a consultancy one day, just hope nothing like this happens because the morning of was fascinating reaching out and getting reached out to by a bunch of clients being like, my site is down. [56:40]&lt;/p&gt;
&lt;p&gt;And then having to figure out what&#39;s going wrong, which is US East one on AWS. So it was a fun Monday, [56:57]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; but at least the uh, at the end of it was a vendor is out. This is not our fault. [57:02]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; At least it was that, which was great. Cool. Moving on. [57:07]&lt;/p&gt;
&lt;h2 id=&quot;voltra&quot;&gt;&lt;a href=&quot;https://x.com/saul_sharma/status/1972161677165473980&quot;&gt;Voltra&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; So a couple of React native lightning route items. Firstly ra, which is really cool because we&#39;ve talked a little bit about live activities on iOS and iOS extensions, all of the little widgets and stuff that you can now use on your iPhone. [57:10]&lt;/p&gt;
&lt;p&gt;And you were able to use iOS extensions within a React native app. But the challenge was you had to write SWIFT code to be able to actually implement those. And so a independent developer named S has been working on building an MPM package that allows you to ship these custom widgets and extensions without needing to use Swift X code or extra js, which is so cool because he&#39;s basically had to like write a translation layer or a render that takes React UI code. [57:24]&lt;/p&gt;
&lt;p&gt;And converted to Swift UI code, which is not trivial because many have tried before him and failed. So this is a really cool project and like it&#39;s one of those things that&#39;s like kind of mind blowing. So kudos to him for making this. [57:55]&lt;/p&gt;
&lt;h2 id=&quot;building-fully-native-apps-with-eas&quot;&gt;&lt;a href=&quot;https://blog.swmansion.com/building-fully-native-ios-apps-with-expo-eas-760b5480d7c5&quot;&gt;Building fully native apps with EAS&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Secondly, and I thought this was an interesting article to link to. On the expo blog, they publish an article about building fully native apps with EAS. So EAS is expo&#39;s application services. Typically, this is being used to build React native apps that are usually running on Expo, but actually a lesser known fact, and one that we&#39;ve actually used on some of our apps is that you don&#39;t need to be on Expo and you don&#39;t even need to be on a React native app. [58:10]&lt;/p&gt;
&lt;p&gt;And so EAS is really great and it&#39;s become super mature and it&#39;s a really just good build tool for building mobile apps. And so people have started to use it in the wider mobile community rather than it just being a React native thing, which is quite cool to see. [58:39]&lt;/p&gt;
&lt;h2 id=&quot;react-native--imgui&quot;&gt;&lt;a href=&quot;https://x.com/tmikov/status/1979771014340047088&quot;&gt;React Native \&amp;lt;\&amp;gt; Imgui&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; And lastly, this was something that Tzveton from the Hermes team in Meta actually, uh, published a week or so ago. [58:52]&lt;/p&gt;
&lt;p&gt;And this was actually something he linked me on a DM because we were chatting about interesting things that could be talked about at a conference by a Hermes team. And this was quite cool to see. So for those who don&#39;t know, Imgui is like a very light UI layer that is powering a lot of sort of debugging for video games. [59:00]&lt;/p&gt;
&lt;p&gt;And it&#39;s used in a bunch of other places, but like the key thing is that it&#39;s just like a very, very lightweight UI layer. And so he made a puck of basically using React and then rendering it on Imgui, which is quite cool. And it runs obviously like fully natively. It&#39;s fully running on c plus plus. And all it really needed was some typed JavaScript and it&#39;s basically just React really, which is quite cool. [59:18]&lt;/p&gt;
&lt;p&gt;So yeah, it&#39;s just a little cool fun POC, but it shows the power of using React and how it can be applied to different contexts, which I thought was quite cool to include. [59:43]&lt;/p&gt;
&lt;h2 id=&quot;lodash-maintenance-foundation&quot;&gt;&lt;a href=&quot;https://blog.ulisesgascon.com/the-future-of-lodash&quot;&gt;Lodash maintenance foundation&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Okay, Lodash has powered much of the JavaScript ecosystem for years. Those of us who have been around for a while, remember its predecessor, but low, has also been relatively unmaintained for a while. [59:53]&lt;/p&gt;
&lt;p&gt;The author John David Dalton, said there was going to be a low dash version five, and then that never really happened, and so some announcements came out in the last week or two. That low dash is being taken over by a new maintenance foundation, and they&#39;re going to be doing work to update the ci, put out some new maintenance releases, and then apparently when low dash V five happens, it&#39;ll be more about stripping out a lot of the internals that tried to polyfill platform behavior and try and make it lighter and make use of platform built-ins at this point. [01:00:05]&lt;/p&gt;
&lt;p&gt;So Lodash is still around, it ain&#39;t going anywhere, and good to see it being maintained. [01:00:40]&lt;/p&gt;
&lt;h2 id=&quot;build-your-own-key-value-database&quot;&gt;&lt;a href=&quot;https://www.nan.fyi/database&quot;&gt;Build Your Own Key-Value Database&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And then there was a really good post unrelated to React, but cool on building your own key value database system that walks through a whole bunch of pieces on what a key value database actually has to track and how the internals would work. [01:00:45]&lt;/p&gt;
&lt;p&gt;And I believe it&#39;s actually pretty interactive, which is cool. [01:01:01]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; This build your own database post, I love, this is so good. I love when people rebuild foundational building blocks. And this is also something I&#39;ve thought about a little bit because he talks about in a file, you know, if you need to store something, put it in a file. [01:01:04]&lt;/p&gt;
&lt;p&gt;And this is something I&#39;ve thought about a little bit because I have been using SQL Light pretty extensively in my own work the last couple of years. And at the end of the day, sequel light is a file. So like when I realized that like most of the time. If I want to store something in a file, like I should just use sql, you put something in a file and then the file gets too big and you need to optimize it, and you need a better way to access it and like, oh, maybe I could use a more descriptive query language to get things out of it. [01:01:18]&lt;/p&gt;
&lt;p&gt;And like the end result is that you will recreate a shittier less performant version of SQLite that doesn&#39;t use sequel. And so, I don&#39;t know. I just like reading this that was very strongly on my mind and everyone should do SQLite if they start putting things in a file. &#39;cause it&#39;s just a file. [01:01:44]&lt;/p&gt;
&lt;p&gt;It&#39;s cool. I like it. [01:02:02]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; The SQL Light website even has a page that says why, why you should consider just using SQL L as your app&#39;s file format rather than inventing another new binary format from scratch. [01:02:03]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; A hundred percent. If you start right, if you start thinking I should put this in a binary format on disc, like no, stop it. Use SQLite. It&#39;s great. [01:02:16]&lt;/p&gt;
&lt;h2 id=&quot;jared-palmer-asking-for-gh-pr-suggestions-and-giving-some-technical-details&quot;&gt;&lt;a href=&quot;https://x.com/jaredpalmer/status/1979204222420664405&quot;&gt;Jared Palmer asking for GH PR suggestions&lt;/a&gt; and giving &lt;a href=&quot;https://x.com/jaredpalmer/status/1980619222918262842&quot;&gt;some technical details&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Alright. Jared Palmer, the creator of the Formik Library, has had been at V at Vercel for years. He worked on turbo repo, v0. And he announced just a month or two ago he was leaving Vercel. He has then announced that he has joined Microsoft as a senior VP at GitHub. And the first thing he did was post on Twitter saying, how can we make the GitHub PR experience better? [01:02:24]&lt;/p&gt;
&lt;p&gt;And he got like eight or 900 replies, and he was pretty actively engaging with a lot of &#39;em. A lot of them were people asking for things like Stacked Diff support, so you could have multiple PR branches that depend on each other and be able to automatically update them. He actually came back even just a couple days later and gave some technical details that he had found after internal discussions on here were some previous prototypes of stacked diffs at GitHub and how, like how far they got and what the blockers were. [01:02:53]&lt;/p&gt;
&lt;p&gt;So I have no idea how long it&#39;ll take to roll out any of this stuff, but like he seems pretty serious about trying to improve the PR experience, whether it&#39;s paper cuts or new functionality and is trying to look into that stuff. So given that we all pretty much depend on the GitHub PR experience, I&#39;m happy to see improvements. [01:03:25]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yep. Love that. Wow. This is very jargon heavy. [01:03:45]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yeah, I, I know, that&#39;s why I was happy to see it. Cool. [01:03:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Sounds like a technical roadmap. [01:03:51]&lt;/p&gt;
&lt;h2 id=&quot;node-25-with-jsonstringify-improvements&quot;&gt;&lt;a href=&quot;https://nodejs.org/en/blog/release/v25.0.0&quot;&gt;Node 25 with JSON.stringify improvements&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Couple other bits, node 25 is out and so another development line branch for node and the biggest thing there is they&#39;ve updated the version of V eight and that includes those faster js ON string of FI improvements that we, we talked about a couple months ago. [01:03:54]&lt;/p&gt;
&lt;p&gt;So given how much everything depends on JSONs string offi, it&#39;s nice to see that being sped up. [01:04:09]&lt;/p&gt;
&lt;h2 id=&quot;cloudflare-vs-vercel-cpu-benchmarks-and-perf-optimizations&quot;&gt;&lt;a href=&quot;https://blog.cloudflare.com/unpacking-cloudflare-workers-cpu-performance-benchmarks/&quot;&gt;Cloudflare vs Vercel CPU benchmarks and perf optimizations&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And speaking of more optimization work, I believe Theo put out a benchmark where he was comparing CloudFlare in Vercel in Building Next versus Vanilla versus a couple other things. And it pointed out places that both Vercel and CloudFlare were slow and CloudFlare jumped on this and they found a bunch of places in their system. [01:04:15]&lt;/p&gt;
&lt;p&gt;Where things could be optimized. They did a excellent blog post detailing some of the improvements. They also went in and they looked at next itself and they found a bunch of places where Next is doing like useless request copying like 1500 or 1700 request streams per request or something like that. [01:04:36]&lt;/p&gt;
&lt;p&gt;So basically everybody is getting faster as a result of this, which is a good thing. [01:04:57]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; CloudFlare folks are just doing some great work recently, especially with the whole like workers rebrand as well is really cool. [01:05:02]&lt;/p&gt;
&lt;h2 id=&quot;ff-interop-feature-request-rankings&quot;&gt;&lt;a href=&quot;https://interop-rank.jakearchibald.com/&quot;&gt;FF Interop Feature Request Rankings&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So Interop is an attempt to get all the different browsers on the same page in terms of what features they&#39;re working on, especially around compatibility with each other each year. [01:05:07]&lt;/p&gt;
&lt;p&gt;And so this year the Firefox folks put up a rather nifty interactive suggestions thing where they list dozens, like 50 or a hundred different potential features or technical areas of emphasis that they could spend time on. And it&#39;s got a neat drag and drop interface where you can basically use that as a way to vote for which features do you want browser manufacturers to work on? [01:05:19]&lt;/p&gt;
&lt;p&gt;This year. [01:05:44]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Love that. Yeah. They say they&#39;re gonna publish the final selection of proposals in February, so I&#39;ll, I&#39;ll keep an eye out on that, I guess. Cool. [01:05:45]&lt;/p&gt;
&lt;h2 id=&quot;vjeuxs-history-of-prettier&quot;&gt;&lt;a href=&quot;https://blog.vjeux.com/2025/javascript/birth-of-prettier.html&quot;&gt;Vjeux’s History of Prettier&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Chris Chedeau, vjeux, he has been really prolific in the React ecosystem for many years. Was really influential in React becoming open source and was the original author of Prettier, which changed my professional experience significantly. He put out a blog post titled The Birth of Prettier earlier this month. I&#39;d spent almost 10 years since Prettier was released. He says, which is wild. I like his introduction of this is the story of how the tabs first spaces Holy War ended, and yeah, it did. [01:05:53]&lt;/p&gt;
&lt;p&gt;I appreciate that. I actually just did a little DX PR for a code base. I maintain to make better use of prettier because somebody created a plugin to sort imports and like, yes, I love that. I hate sorting my imports and I hate when of my imports are not sorted. The introduction of automated formatting into the JavaScript ecosystem was, oh, what a, what a blessing. [01:06:23]&lt;/p&gt;
&lt;p&gt;Like what hours? The years of my life that have been saved from arguing over formatting is just really lovely and this is a great retrospective. Looking into just the whole process of how it came out. [01:06:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; There&#39;s some fascinating details in there. [01:06:58]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, like one of the challenges of this that I remember in the moment a little bit, but like if you&#39;re gonna start formatting things, the format needs to be something relatively unobjectionable to the people who are evaluating whether they want to use it or not. Like, yeah, so, and then figuring out what options should be exposed, what is actually configurable, because if you make it too configurable, then it&#39;s not helpful. If it&#39;s too much manual thing, then it&#39;s not actually consistent enough to be valuable at its intended purpose. [01:07:00]&lt;/p&gt;
&lt;p&gt;So lots of really interesting details throughout here. Definitely recommend it. I always love a great technical white paper, a writeup of implementation, and this is, oh boy, is this that. It&#39;s great. [01:07:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; One of the most interesting bits I saw was he was talking about how they started rolling it out and like Prettier has some options, but they wanted to minimize them and he wanted everyone to basically agree on a single set of options. [01:07:49]&lt;/p&gt;
&lt;p&gt;And so he said the strategy I used to figure out how to make this work was lining up incentives so that it took a ton more work to use a different set of options if you wanted to. It said Prettier is either in this, in CI or in your IDE. So I made it so that they read them from different places with a different rollout schedule to make it harder to choose one or the other. [01:08:02]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Oh, that&#39;s incredible. That&#39;s some good details. Reading this a little bit more is it&#39;s got lots of fun non-technical details that like they&#39;re not the engineering work, but they are absolutely essential for actually making a thing that is successful and sustainable and thriving. Like it also talks about money and like ongoing maintenance is a thing that you have to pay for. [01:08:24]&lt;/p&gt;
&lt;p&gt;You don&#39;t have to, I guess most open source does not, but if you don&#39;t, then it has its own challenges. So like not only is this a great technical writeup, but it&#39;s also a great, I don&#39;t know, like entrepreneurial writeup. [01:08:45]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; How do you do the, the real work to make stuff happen? [01:08:55]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; People talk about the difference between like senior and staff engineering being, the difference between junior and senior is how much English you&#39;re asked to write. And the difference between senior and staff is like how much non-technical things you&#39;re asked to account for. And so this is a phenomenal, I would say, staff engineer writeup. Like, this is how you take an idea and you make it an industry level impact project. Yeah. Great Writeup. [01:08:58]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I can even point to a couple personal examples of how prettier has affected my work just within the last few days. [01:09:23]&lt;/p&gt;
&lt;p&gt;One is that I&#39;m jumping between the Redux repo, which is two spaces, single quotes, no semicolons. The Immer repo, which is four spaces, double quotes, and I can&#39;t, and may, maybe no single semicolons, Replay.io repo, which is four spaces, double quotes, semicolons, and I don&#39;t think about any of that anymore. [01:09:28]&lt;/p&gt;
&lt;p&gt;And then also just yesterday, I was trying to tweak some of ER&#39;s exports and tried to put in an export type keyword, which I was pretty sure was a legit thing except that when I hit save, it didn&#39;t format. And I have learned that if it doesn&#39;t format, I have put in invalid syntax somewhere for a moment. [01:09:52]&lt;/p&gt;
&lt;p&gt;It was like, oh, export type must not be a valid TS keyword. And then I finally realized, oh wait, this is on prettier 1.19. That must predate that syntax being added to TypeScript. And so I had to update prettier, but like that&#39;s how much I have learned to lean on. You hit save and it formats and it&#39;s valid. [01:10:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yep, a hundred percent. I, I recognize that in myself as well. [01:10:37]&lt;/p&gt;
&lt;h2 id=&quot;conferences-react-javascript&quot;&gt;Conferences (&lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://confs.tech/javascript&quot;&gt;Javascript&lt;/a&gt;)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Okay. Let&#39;s wrap it up with some conferences. [01:10:41]&lt;/p&gt;
&lt;h2 id=&quot;react-native-london-nov-13-14-london-uk&quot;&gt;&lt;a href=&quot;http://reactnativelondon.co.uk/&quot;&gt;React Native London&lt;/a&gt; Nov 13-14 London, UK&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Let&#39;s jump into it. So we&#39;ve hinted a few times and I can now say that we&#39;ve got Seth Webster&#39;s endorsement. So the executive director of the React Foundations talks about my conference. I&#39;m very happy today. [01:10:43]&lt;/p&gt;
&lt;p&gt;We&#39;ve been organizing this for the second year, so React Native London for anyone who&#39;s a React native enthusiast in London and beyond. We have people from Brazil and India last year, so that&#39;s like the furthest extent that we have people coming in from around the world. But if you are interested, we&#39;ve got our conference on the 13th and 14th of November. [01:10:55]&lt;/p&gt;
&lt;p&gt;In Central London, we&#39;ve got a beautiful venue, some great talks from Meta, Amazon, Microsoft, and just a bunch of community people from expo and independent app developers who are gonna come and give some really, really phenomenal talks. [01:11:14]&lt;/p&gt;
&lt;h2 id=&quot;use-code-tmir10-to-get-10-off&quot;&gt;Use code `TMIR10` to get 10% off&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Use the code TMIR 10 and you should get a 10% discount on checking out, which will, if I&#39;m doing my mental maths right, make the ticket price 330 ish pounds for a two day conference to be able to attend workshops and the conference day. [01:11:26]&lt;/p&gt;
&lt;h2 id=&quot;wey-wey-web-nov-17-18-malaga-spain&quot;&gt;&lt;a href=&quot;https://www.weyweyweb.com/&quot;&gt;Wey Wey Web&lt;/a&gt; Nov 17-18 Malaga, Spain&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Um, other ones we&#39;ve got coming up are Wey Wey Web November 17th and 18th in Malaga, Spain. [01:11:42]&lt;/p&gt;
&lt;h2 id=&quot;react-summit-nov-18-21-new-york-ny-usa&quot;&gt;&lt;a href=&quot;https://reactsummit.us/&quot;&gt;React Summit&lt;/a&gt; Nov 18, 21 New York, NY, USA&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; We&#39;ve also got React Summit November 18th through 21st in New York. [01:11:49]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; There&#39;s JS Nation on the 17th. There&#39;s in-person React Summit in person on the 18th, and then they have an online day the next week. Okay. [01:11:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Oh, oh, oh yes. [01:12:02]&lt;/p&gt;
&lt;p&gt;I see it&#39;s 18th and 20th, not through. Interesting. One day in person. One day online. Okay. Makes sense. [01:12:03]&lt;/p&gt;
&lt;h2 id=&quot;react-advanced-nov-28-london-england&quot;&gt;&lt;a href=&quot;https://reactadvanced.com/&quot;&gt;React Advanced&lt;/a&gt; Nov 28, London, England&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; There&#39;s also React Advanced November 28th, also [01:12:10]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; in London the day after Thanksgiving. Someone in England didn&#39;t think about that part. He, he, he, [01:12:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; yeah. It&#39;s not for Americans. [01:12:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; It&#39;s not just React Advance, it&#39;s also Tech Lead Conf, which is also organized by the Ation folks on the same day in London as well. So, no, I would doubt that there&#39;s gonna be a lot of people from the states there, unfortunately. [01:12:21]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; For sure. [01:12:32]&lt;/p&gt;
&lt;h2 id=&quot;react-paris-cfp-is-open&quot;&gt;&lt;a href=&quot;https://react.paris/&quot;&gt;React Paris&lt;/a&gt; CFP is open&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Well, I&#39;ll, I&#39;ll also add, I just saw like two days ago, the organizer of React Paris posted in the events channel here that CFP is open, so we gotta React Paris if you want to submit a talk. But that&#39;s gonna be in like March though, so not anytime soon. [01:12:33]&lt;/p&gt;
&lt;h2 id=&quot;ending&quot;&gt;Ending&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; That&#39;s all we got. Thanks so much for sticking around for a whole 90 minutes. [01:12:49]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; It was a very busy month. Okay. [01:12:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. We&#39;ll be back next month, on the last Wednesday here in the live stage or back in your podcast feed just as soon as we can. Yeah. Thanks so much. Well, normally we gather sources from a variety of newsletters. We actually had so many things that Mark shared in the tech reads and news chat this month that I don&#39;t think any of us did. So that&#39;s cool. [01:12:55]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And I pasted a lot more links in the discussion threads too. [01:13:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; That&#39;s something I should be better about. That would be lovely and helpful. But yeah, if you see anything newsworthy, definitely let us know in the Tech News and Reads channel, just like Mark has been doing. [01:13:18]&lt;/p&gt;
&lt;p&gt;You can also email us at &lt;a href=&quot;mailto:hello@reactiveflex.com&quot;&gt;hello@reactiveflex.com&lt;/a&gt;. But you know it&#39;s a community like Join, participate. I do read every email though, so if you send something I, I will read it. If this is a show that you get value from and want to support, best way to do so is by submitting a review wherever you listen and by telling your friends and coworkers about it. [01:13:27]&lt;/p&gt;
&lt;p&gt;And go to a meetup and say, Hey, there&#39;s this great podcast I love. [01:13:44]&lt;/p&gt;
&lt;p&gt;Cheers. See you next month. [01:13:47]&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2025-10</link><guid isPermaLink="false">reactiflux-tmir-2025-10</guid><pubDate>Tue, 28 Oct 2025 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>TMiR 2025-09: React 19.2 on the horizon; npm is still getting compromised</title><description>&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#new-releases&quot;&gt;00:52&lt;/a&gt;]&lt;/code&gt; New releases
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#tanstack-start-10-rc&quot;&gt;00:54&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://tanstack.com/blog/announcing-tanstack-start-v1&quot;&gt;TanStack Start 1.0 RC!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#react-window-20-rewrite&quot;&gt;01:13&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react-window.vercel.app/&quot;&gt;&lt;code&gt;react-window&lt;/code&gt; 2.0 rewrite&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#apollo-client-40&quot;&gt;01:44&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.apollographql.com/blog/announcing-apollo-client-4-0&quot;&gt;Apollo Client 4.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#redux-toolkit-290&quot;&gt;01:59&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/reduxjs/redux-toolkit/releases/tag/v2.9.0&quot;&gt;Redux Toolkit 2.9.0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#main-content&quot;&gt;02:47&lt;/a&gt;]&lt;/code&gt; Main Content
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#react-192-coming-soon&quot;&gt;02:52&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/ricky.fm/post/3lzt6yvs6o22r&quot;&gt;React 19.2 coming soon?&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#activity-in-canary-with-docs&quot;&gt;03:24&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react.dev/reference/react/Activity&quot;&gt;&lt;activity&gt; in canary, with docs&lt;/activity&gt;&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#last-react-labs-post-mention&quot;&gt;07:18&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react.dev/blog/2025/04/23/react-labs-view-transitions-activity-and-more#activity&quot;&gt;last React Labs post mention&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#useeffectevent-in-canary-and-has-docs&quot;&gt;11:43&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react.dev/reference/react/useEffectEvent&quot;&gt;&lt;code&gt;useEffectEvent&lt;/code&gt; in canary and has docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#compiler-inferring-function-names&quot;&gt;15:47&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/facebook/react/pull/34410&quot;&gt;Compiler inferring function names&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#docs-for-eslint-plugin-react-hooks-including-rules-and-compiler-issues&quot;&gt;16:08&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react.dev/reference/eslint-plugin-react-hooks&quot;&gt;Docs for &lt;code&gt;eslint-plugin-react-hooks&lt;/code&gt;&lt;/a&gt;, including rules and compiler issues&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#react-native-10-on-the-horizon&quot;&gt;17:15&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://youtu.be/GPtopk4y2LI?si=JoZVprPW33szn-6D&quot;&gt;React Native 1.0 on the horizon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#react-won-by-default--and-its-killing-frontend-innovation&quot;&gt;22:02&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.lorenstew.art/blog/react-won-by-default/&quot;&gt;“React Won by Default – And It&#39;s Killing Frontend Innovation”&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#inevitable-hn-argument&quot;&gt;22:18&lt;/a&gt;]&lt;/code&gt; Inevitable &lt;a href=&quot;https://news.ycombinator.com/item?shownew&amp;amp;id=45252715&quot;&gt;HN argument&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#ricky-on-ryan-carniatos-stream-talking-about-scheduling-and-demoing-using-modern-react-features&quot;&gt;27:54&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=3vw6EAmruEU&quot;&gt;Ricky on Ryan Carniato’s stream&lt;/a&gt; talking about scheduling and demoing using modern React features&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#server-components&quot;&gt;33:41&lt;/a&gt;]&lt;/code&gt; Server Components
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#react-router-rsc-framework-mode-preview&quot;&gt;33:44&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://remix.run/blog/rsc-framework-mode-preview&quot;&gt;React Router RSC framework mode preview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#also-middleware-is-now-stable&quot;&gt;34:36&lt;/a&gt;]&lt;/code&gt; also &lt;a href=&quot;https://remix.run/blog/middleware&quot;&gt;middleware is now stable&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#krasimir-tsonevs-can-i-use-rsc-today-support-matrix-and-experimental-forket-rsc-without-a-framework-build-tool&quot;&gt;34:44&lt;/a&gt;]&lt;/code&gt; Krasimir Tsonev’s &lt;a href=&quot;https://rsc.krasimirtsonev.com/&quot;&gt;“Can I Use RSC Today?” support matrix&lt;/a&gt; and experimental &lt;a href=&quot;https://krasimirtsonev.com/blog/article/vanilla-react-server-components-with-no-framework&quot;&gt;Forket “RSC without a framework” build tool&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#rsbuild-support-for-rscs&quot;&gt;35:43&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/ebey.bsky.social/post/3lyf6vixick26&quot;&gt;RSBuild support for RSCs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#useful-post-on-parallel-and-recursive-route-rendering&quot;&gt;35:55&lt;/a&gt;]&lt;/code&gt; Useful post on &lt;a href=&quot;https://twofoldframework.com/blog/parallel-and-recursive-route-rendering-with-rsc&quot;&gt;parallel and recursive route rendering&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#all-the-npm-compromises-and-malware-this-month&quot;&gt;36:35&lt;/a&gt;]&lt;/code&gt; All the NPM compromises and malware this month
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#npm-package-maintainer-qix&quot;&gt;39:47&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://socket.dev/blog/npm-author-qix-compromised-in-major-supply-chain-attack&quot;&gt;npm package maintainer Qix&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#crowdstrike-npm-packages&quot;&gt;39:48&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://socket.dev/blog/ongoing-supply-chain-attack-targets-crowdstrike-npm-packages&quot;&gt;CrowdStrike npm Packages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#github-actions-npm-token-theft&quot;&gt;40:16&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://socket.dev/blog/nx-supply-chain-attack-investigation-github-actions-workflow-exploit&quot;&gt;GitHub Actions npm Token Theft&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#github-response&quot;&gt;41:01&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.blog/security/supply-chain-security/our-plan-for-a-more-secure-npm-supply-chain/&quot;&gt;GitHub response&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#-lightning-round-&quot;&gt;42:00&lt;/a&gt;]&lt;/code&gt; ⚡ Lightning round ⚡
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#porting-modern-typescript-to-run-on-dos&quot;&gt;42:03&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://jimb.ly/2025/09/23/qauntumpulse-from-steam-to-floppy/&quot;&gt;Porting Modern TypeScript to Run on DOS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#cloudflare-ddosed-themselves-with-a-bad-useeffect-fetch&quot;&gt;42:35&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://blog.cloudflare.com/deep-dive-into-cloudflares-sept-12-dashboard-and-api-outage/?amp%253But&quot;&gt;Cloudflare DDOSed themselves with a bad &lt;code&gt;useEffect&lt;/code&gt; fetch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#a-very-lovely-writeup-of-the-evolution-of-css-zoom&quot;&gt;43:11&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.bocoup.com/blog/the-webs-most-tolerated-feature&quot;&gt;A very lovely writeup of the evolution of css &lt;code&gt;zoom&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#what-you-need-to-know-about-modern-css&quot;&gt;43:56&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://frontendmasters.com/blog/what-you-need-to-know-about-modern-css-2025-edition/&quot;&gt;What You Need to Know about Modern CSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#fetch-streams-are-great-but-not-for-measuring-uploaddownload-progress&quot;&gt;45:21&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://jakearchibald.com/2025/fetch-streams-not-for-progress/&quot;&gt;Fetch streams are great, but not for measuring upload/download progress&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#why-do-browsers-throttle-js-timers&quot;&gt;45:40&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://nolanlawson.com/2025/08/31/why-do-browsers-throttle-javascript-timers/&quot;&gt;Why do browsers throttle JS timers?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#how-modern-browsers-work-deep-dive-addy-osmani&quot;&gt;46:01&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://addyo.substack.com/p/how-modern-browsers-work&quot;&gt;“How Modern Browsers Work” deep dive, Addy Osmani&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#biome-stress-testing-wip-nofloatingpromises-lint-rule&quot;&gt;46:32&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://vercel.com/blog/stress-testing-biomes-nofloatingpromises-lint-rule&quot;&gt;Biome: Stress-testing WIP &lt;code&gt;noFloatingPromises&lt;/code&gt; lint rule&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#bun-how-bun-install-is-so-fast&quot;&gt;48:37&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bun.com/blog/behind-the-scenes-of-bun-install&quot;&gt;Bun: How &lt;code&gt;bun install&lt;/code&gt; is so fast&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#styled-components-fork-for-perf-and-react-19-compat&quot;&gt;49:23&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.sanity.io/blog/cut-styled-components-into-pieces-this-is-our-last-resort&quot;&gt;Styled-Components fork for perf and React 19 compat&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#vite-ssr-custom-getstaticprops&quot;&gt;50:02&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.patron.com/blog/post/vite-ssr-getstaticprops-replacement/&quot;&gt;Vite SSR: Custom &lt;code&gt;getStaticProps&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#dominic-gannaways-new-framework-ripple&quot;&gt;50:11&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/trueadm/ripple&quot;&gt;Dominic Gannaway’s new framework Ripple&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#remix-v3-mj-hints-iframe-like-async-primitives&quot;&gt;50:35&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/mjackson/status/1971816432427298951&quot;&gt;Remix v3: MJ hints “iframe-like async primitives”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#react-native-rfc-to-remove-old-architecture&quot;&gt;51:57&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/react-native-community/discussions-and-proposals/pull/929&quot;&gt;React Native RFC to remove Old Architecture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#cloudflares-new-capn-web-rpc-graphql-alternative&quot;&gt;52:28&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://blog.cloudflare.com/capnweb-javascript-rpc-library/&quot;&gt;Cloudflare’s new “Cap’n Web” RPC; GraphQL alternative?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#expo-ui-building-swiftui-apps&quot;&gt;55:26&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://docs.expo.dev/guides/expo-ui-swift-ui/&quot;&gt;Expo UI: Building SwiftUI apps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#tanstack-db-an-interactive-guide&quot;&gt;55:57&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://frontendatscale.com/blog/tanstack-db/&quot;&gt;TanStack DB: An interactive guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#ts-60-may-switch-to-strict-options-by-default&quot;&gt;56:21&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/microsoft/TypeScript/issues/62333&quot;&gt;TS 6.0: may switch to &lt;code&gt;strict&lt;/code&gt; options by default&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#shopifys-rn-new-architecture-migration&quot;&gt;57:28&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://shopify.engineering/react-native-new-architecture&quot;&gt;Shopify’s RN New Architecture migration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#the-bloat-of-edge-case-first-libraries&quot;&gt;57:42&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://43081j.com/2025/09/bloat-of-edge-case-libraries&quot;&gt;The Bloat of Edge-Case First Libraries&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#conferences-react-javascript&quot;&gt;58:51&lt;/a&gt;]&lt;/code&gt; Conferences (&lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://confs.tech/javascript&quot;&gt;Javascript&lt;/a&gt;)
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#react-alicante-oct-2-4&quot;&gt;58:53&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactalicante.es/&quot;&gt;React Alicante&lt;/a&gt; Oct 2-4&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#react-conf-is-back-oct-7-8-las-vegas-nv-usa&quot;&gt;59:13&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/react.dev/post/3lmcp4mhmfk2l&quot;&gt;React Conf is back, Oct 7-8&lt;/a&gt; Las Vegas, NV, USA&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#remix-jam-oct-10-toronto-on-ca&quot;&gt;59:29&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://remix.run/jam/2025&quot;&gt;Remix Jam&lt;/a&gt;, Oct 10, Toronto ON, CA&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#viteconf-oct-9-10-amsterdam-netherlands&quot;&gt;59:43&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://viteconf.amsterdam/&quot;&gt;ViteConf&lt;/a&gt; Oct 9-10 Amsterdam, Netherlands&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#jsconf-north-america-oct-14-16-chesapeake-bay-md-usa&quot;&gt;59:52&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://events.linuxfoundation.org/jsconf-north-america/&quot;&gt;JSConf North America&lt;/a&gt; Oct 14-16 Chesapeake Bay, MD, USA&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#jsconf-chile-oct-24-25-santiago-chile&quot;&gt;01:00:03&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://jsconf.cl/&quot;&gt;JSConf Chile&lt;/a&gt; Oct 24-25 Santiago, Chile&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#react-native-london-oct-30-31&quot;&gt;01:00:10&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.reactnativelondon.co.uk/&quot;&gt;React Native London&lt;/a&gt; Oct 30-31&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#react-india-oct-31-nov-1-goa-india&quot;&gt;01:00:22&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.reactindia.io/&quot;&gt;React India&lt;/a&gt; Oct 31 Nov 1 Goa, India&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#wey-wey-web-nov-17-18-malaga-spain&quot;&gt;01:00:26&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.weyweyweb.com/&quot;&gt;Wey Wey Web&lt;/a&gt; Nov 17-18 Malaga, Spain&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#react-summit-nov-18-21-new-york-ny-usa&quot;&gt;01:00:39&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactsummit.us/&quot;&gt;React Summit&lt;/a&gt; Nov 18-21 New York, NY, USA&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#react-advanced-nov-28th-london-uk&quot;&gt;01:00:48&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactadvanced.com/&quot;&gt;React Advanced&lt;/a&gt; Nov 28th, London UK&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-09#outro&quot;&gt;01:01:08&lt;/a&gt;]&lt;/code&gt; Outro&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;this-month-in-react---september-2025-sm&quot;&gt;This Month In React - September 2025 (SM)&lt;/h1&gt;
&lt;p&gt;Carl: Alright. Hello everyone. Thank you for joining us for the September edition of this Month In React. As we, uh, get together and recap what&#39;s going on with React, react Native and the web, we&#39;re coming to you live from Reactiflux, the place for professional developers using React. I am Carl. I&#39;m a staff product developer and freelance community leader here in Reactiflux, where I do community programs like these events and build tools to help keep the community operating. [00:00]&lt;/p&gt;
&lt;p&gt;Mark: Hi, I&#39;m Mark. My day job is working at Replay.io and digging into the guts of React and its internals. And in my copious amounts of spare time, I&#39;m currently rewriting the guts of Immer for faster performance. [00:23]&lt;/p&gt;
&lt;p&gt;Carl: Yeah, you did a live stream on that. That was cool. [00:34]&lt;/p&gt;
&lt;p&gt;Mark: Yeah, that was a lot of fun. [00:36]&lt;/p&gt;
&lt;p&gt;Mo: And my name is Mo. [00:37]&lt;/p&gt;
&lt;p&gt;I am the head of Mobile at Thedo. And yeah, I spent a lot of time in the React and React native communities, speak at conferences here and there, and organize the React Native London Meetup and conference, which is coming up in November. [00:38]&lt;/p&gt;
&lt;p&gt;Carl: Yeah, more on that later. [00:51]&lt;/p&gt;
&lt;h2 id=&quot;new-releases&quot;&gt;New releases&lt;/h2&gt;
&lt;p&gt;Carl: Let&#39;s jump into some new releases. [00:52]&lt;/p&gt;
&lt;h2 id=&quot;tanstack-start-10-rc&quot;&gt;&lt;a href=&quot;https://tanstack.com/blog/announcing-tanstack-start-v1&quot;&gt;TanStack Start 1.0 RC!&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Carl: We&#39;re gonna talk more about this in depth in the main content section, but Tan Stack start has released a 1.0 rc, so that should be coming together. I&#39;ve tried playing with this a little bit and didn&#39;t make it too far. It just ended up being a larger task than I really imagined, but I&#39;m excited about it. [00:54]&lt;/p&gt;
&lt;h2 id=&quot;react-window-20-rewrite&quot;&gt;&lt;a href=&quot;https://react-window.vercel.app/&quot;&gt;&lt;code&gt;react-window&lt;/code&gt; 2.0 rewrite&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: React Window. Just put out a version 2.0. Brian Vaughn did a pretty major rewrite of the library to try to simplify some of the props and add some nice built-in features like automizing of the list items and auto resizing. So you no longer need a resize plugin to handle that. [01:13]&lt;/p&gt;
&lt;p&gt;Carl: Oh, that&#39;s nice. Okay. Yeah, and react window is efficiently rendering large lists. [01:32]&lt;/p&gt;
&lt;p&gt;Mark: It&#39;s virtualizing lists. Yeah, so you got a list of, you know, a million items. You can only show a hundred on screen at once, that sort of thing. [01:36]&lt;/p&gt;
&lt;h2 id=&quot;apollo-client-40&quot;&gt;&lt;a href=&quot;https://www.apollographql.com/blog/announcing-apollo-client-4-0&quot;&gt;Apollo Client 4.0&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: Also, on that note, Apollo client for GraphQL just put out version 4.0. I know this was a, a pretty major effort to try to improve the packaging, consolidate. Remove a bunch of deprecated features, so that should be a significant improvement if you&#39;re using Apollo. [01:44]&lt;/p&gt;
&lt;h2 id=&quot;redux-toolkit-290&quot;&gt;&lt;a href=&quot;https://github.com/reduxjs/redux-toolkit/releases/tag/v2.9.0&quot;&gt;Redux Toolkit 2.9.0&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: And on my side, I actually just shipped a Redux toolkit 2.9 earlier this month. The biggest thing there is I made a bunch of perf optimizations to RTK query, especially for cases where you&#39;ve got a lot of components that are reading from the same cache entry. And we also added a few new options and bug fixes, but the perf improvement and some in-flight requests cleanup was, were some of the biggest pieces there. [01:59]&lt;/p&gt;
&lt;p&gt;Carl: Okay. Yeah. Not too many new releases for open source libraries this month, I guess. [02:25]&lt;/p&gt;
&lt;p&gt;Mark: Well there, there probably were a few more. We just didn&#39;t collect them. [02:30]&lt;/p&gt;
&lt;p&gt;Carl: Yeah, I wish there were a little bit more consistent standards across the ecosystem for how to publish a list of new releases. Like the GitHub release is, it is pretty good, but it&#39;s still only like 60% hit rate, I guess. Something like that. [02:32]&lt;/p&gt;
&lt;p&gt;It feels like. [02:46]&lt;/p&gt;
&lt;h2 id=&quot;main-content&quot;&gt;Main Content&lt;/h2&gt;
&lt;p&gt;Carl: Cool though. Let&#39;s go into our main content. Can you tell us a bit about React updates? [02:47]&lt;/p&gt;
&lt;h2 id=&quot;react-192-coming-soon&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/ricky.fm/post/3lzt6yvs6o22r&quot;&gt;React 19.2 coming soon?&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: I don&#39;t actually have any real details on this, but Rick Hanlon from the React team tweeted out like yesterday, a screenshot of himself apparently working on release notes for React 19.2, so I would assume it&#39;s fair to say that it&#39;s probably coming out in the near future associated with that and potentially coming out in 19.2. Although the timing may be a little too soon, we have two React features that have graduated from the experimental branch to the Canary branches. [02:52]&lt;/p&gt;
&lt;h2 id=&quot;-in-canary-with-docs&quot;&gt;&lt;a href=&quot;https://react.dev/reference/react/Activity&quot;&gt;&lt;activity&gt; in canary, with docs&lt;/activity&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: The first one is the new activity component. This has been around in some form in in the experimental branches for. Probably multiple years at this point. It was originally known as the offscreen component, and then they officially renamed it to the activity component maybe about six or eight months ago. [03:24]&lt;/p&gt;
&lt;p&gt;And this is gonna be a pretty big deal. So one of the issues with React has always been that built-in state is managed at the component level. And if you unmount a component, then it, you know, both cleans up the effects and they go away. But the state that was in that component goes away as well. And so that&#39;s one of the reasons why there&#39;s been, you know, so much use of external state libraries like, you know, Redux and Juice end and Jot and MobX over the years is because in order for state to persist, you either needed. [03:45]&lt;/p&gt;
&lt;p&gt;To have the state live outside UAC component tree, or you needed to hoist it up to the top and pass it down via context or props and if you unmount a section of the tree that DA and that data could go away. So the activity component is going to allow you to essentially disable and hide a section of the component tree, but react will keep around the state for those components. [04:22]&lt;/p&gt;
&lt;p&gt;And in fact this actually kind of goes along with some of the strict mode stuff that people have, you know, complained about for years. The activity component will also unmount the effects for the components that got hidden. People have complained for years, you know, strict mode, double running effects, you know, shows bugs and, and all the other things like that. [04:52]&lt;/p&gt;
&lt;p&gt;But part of the point of that has been to work towards, eventually this feature will come out where you can toggle the activity component on and off. And React will run the UNM mounts because the components aren&#39;t fully mounted, therefore, they shouldn&#39;t have active effects going. But it will keep the state for those components alive. [05:14]&lt;/p&gt;
&lt;p&gt;And so you can imagine this could be useful for a couple of different things. One is like a tabs component. Right now, if you have a tabs component, you either stop rendering the other tabs completely as you switch back and forth, or you use something like CSS display, none, which means the tabs are active and in the page, even though they&#39;re not even being displayed. [05:37]&lt;/p&gt;
&lt;p&gt;And so with the activity component, you can say I want to pre-render the content for the other tabs, but it&#39;s not actually attached to the page until we swap back and forth. But they could still persist the state. So if someone goes back and forth between the different tabs and makes some edits, then. [05:59]&lt;/p&gt;
&lt;p&gt;You know, that still stays alive. There&#39;s a comment in the chat that the naming choice for the component seems very strange to me. I agree. I didn&#39;t like it either. There was some rationale in the PR that actually renamed it to activity. I don&#39;t remember what it, what it was specifically off the top of my head, but they, I think it was that like, it&#39;s more about is the component active rather than is it quote unquote off screen. [06:19]&lt;/p&gt;
&lt;p&gt;Yeah. But I, I don&#39;t entirely buy that myself. [06:46]&lt;/p&gt;
&lt;p&gt;Carl: Yeah, right. Because this is like hitting that midpoint between that decision point of do you render null or do you render the dom with styling to suppress its visibility. And so I guess this is like smack in the middle, like the internal representation of all of that. [06:51]&lt;/p&gt;
&lt;p&gt;Dom remains. But you don&#39;t use styling to hide it, which is great for cross-platform stuff. &#39;cause like there wasn&#39;t a cross-platform way to hide something as far as I know before. [07:07]&lt;/p&gt;
&lt;h2 id=&quot;last-react-labs-post-mention&quot;&gt;&lt;a href=&quot;https://react.dev/blog/2025/04/23/react-labs-view-transitions-activity-and-more#activity&quot;&gt;last React Labs post mention&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: So if I, if I look back at the last React Labs post from April where they talk about, you know, the plans for the activity component, there&#39;s a section there that says, in the future we may add more modes for activity. [07:18]&lt;/p&gt;
&lt;p&gt;One of them could be content visible, but keep it unmounted and pause dom updates. Another is the ability to destroy state for hidden activities if too much memory is being used. So I think part of the mindset is it&#39;s not just like a bullion toggle, it&#39;s we&#39;re shipping with two mode options that are like a bullion toggle for now. [07:31]&lt;/p&gt;
&lt;p&gt;But we envision some possible additional modes for this down the road. [07:57]&lt;/p&gt;
&lt;p&gt;Mo: And, and you know, this is like particularly interesting to me because this has like been a long standing problem in the React native space when you&#39;re dealing with native apps. And I, I doubt this will work out of the box with React Native, but I think it&#39;s gonna be one of those things which will eventually get there. [08:02]&lt;/p&gt;
&lt;p&gt;And hopefully the new architecture makes this easy for the, the core team to adopt and like make sure that those APIs are working correctly. But it&#39;s a classic issue, especially when in Native world you&#39;re dealing with this concept of like stacks of pages on top of each other. You really don&#39;t want the, the stacks that aren&#39;t visible or the pages that aren&#39;t visible in your stack showing or getting all of the DOM updates, or in this case this, the updates to the actual screens whilst they&#39;re inactive because that&#39;s a massive performance bottleneck on native devices. [08:17]&lt;/p&gt;
&lt;p&gt;And so this type of thing, people have massed over it in the most dirty ways possible and hacky ways possible in, in the React native world. It&#39;s been like a longstanding problem because if you, you know, unmount them and then remount them and reestablish the state, there&#39;s sometimes like a flashing white screen before the actual components reload. [08:46]&lt;/p&gt;
&lt;p&gt;Then you need to delay the transition because all of these things are like transition with page transitions and native. So it&#39;s basically to say there&#39;s a lot of complexity and if there&#39;s a native React way to deal with this, that ties into navigation on the native device as well, then I think it&#39;s gonna be a game changer and it&#39;ll simplify and fix a lot of performance issues that people often have with their React native apps. [09:05]&lt;/p&gt;
&lt;p&gt;Mark: Yeah, I, I know we&#39;ve, we&#39;ve had a couple of open issues on the &lt;code&gt;react-redux&lt;/code&gt; repo with people complaining that. Components that are off, quote unquote offscreen in the React native stack are still subscribed to Redux updates and taking up perfects from running all the subscription logic and asking for us to add random options to make that toggle or something. [09:26]&lt;/p&gt;
&lt;p&gt;And so if you know, the activity component ought to be the built-in solution for that. And so that would actually means we don&#39;t have to do anything, which is great. Yeah, exactly. [09:48]&lt;/p&gt;
&lt;p&gt;Mo: And you know, like some state management libraries have adopted some work around components that you can use for that, but it comes with trade-offs, right? [09:57]&lt;/p&gt;
&lt;p&gt;And ideally, your state management library really should not worry about this. This feels like a core react primitive problem rather than a state management library problem. To me, [10:06]&lt;/p&gt;
&lt;p&gt;Carl: back to what you said about like the layering of UI and performance problems and like listening to events and things. Fun fact, I&#39;ve chatted with some people who did React native or like React UI for automotive companies and that was a problem they dealt with like sometimes for certain cars. [10:15]&lt;/p&gt;
&lt;p&gt;The reason the UI sucks sometimes is because of this issue and because it&#39;s rendering multiple UIs on top of each other and doing all sorts of weird, crazy stuff. There&#39;s two [10:35]&lt;/p&gt;
&lt;p&gt;Mo: devices that are particularly bad for that. One is Smart TVs and the other one is cars. And the reason for that is both of them are awful processors and like they really cheap out on the hardware because they&#39;re cutting costs everywhere in the actual like manufacturing bit. [10:45]&lt;/p&gt;
&lt;p&gt;And so something that might run in your web browser with your laptop that like has like several hundred megabytes of RAM per tab. Will, you know, be restricted to 50 megabytes of ram or it&#39;ll get killed by the operating system that lives on the automotive car infotainment system. And this is a big problem for any, like one of those types of devices. [11:01]&lt;/p&gt;
&lt;p&gt;And I think a lot of those, you&#39;ll be surprised, run on React and like web-based platforms or sometimes even rec native, and it&#39;s a big, big issue. So I think something like this. You know, you can fix those issues, but it&#39;s hacky and not everyone will do it. So then you&#39;ll get really crappy infotainment systems, like you said, Carl. [11:23]&lt;/p&gt;
&lt;p&gt;So, [11:40]&lt;/p&gt;
&lt;p&gt;Carl: okay. That&#39;s probably long enough talking about activity though. [11:41]&lt;/p&gt;
&lt;h2 id=&quot;useeffectevent-in-canary-and-has-docs&quot;&gt;&lt;a href=&quot;https://react.dev/reference/react/useEffectEvent&quot;&gt;&lt;code&gt;useEffectEvent&lt;/code&gt; in canary and has docs&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: So one other, one other feature that&#39;s migrated from experimental to Canary, I just saw this one a few minutes ago, is the &lt;code&gt;useEffectEvent&lt;/code&gt; hook. This is something that the React team has also talked about for a while, and I actually didn&#39;t even know that any progress was being made on this until I just saw the PR announcement. [11:43]&lt;/p&gt;
&lt;p&gt;I&#39;m gonna describe this very badly. Someone should correct me on this, but it&#39;s almost like a used memo for callbacks where you&#39;ll get the latest reference to a. Callback inside when you execute it, but you get a consistent function reference back when you use it. And so this avoids the need to do a workaround where you&#39;re like, main, where the, the callback is reading something off of a ref to get the latest value. [12:04]&lt;/p&gt;
&lt;p&gt;I know that this is something that had been proposed a while back and then the initial proposal got killed and they said, we&#39;ll, we&#39;ll come back and we&#39;ll rethink this later. And apparently later is finally now. [12:34]&lt;/p&gt;
&lt;p&gt;Carl: Later is now. That&#39;s great. Yeah. Interesting. I&#39;m, I&#39;m not super up to date on this, so I&#39;m just reading the docs right now to understand it better. [12:48]&lt;/p&gt;
&lt;p&gt;Interesting. The, I definitely know that I have used refs. You know, red values off refs because of weird issues. So I&#39;m not quite groking how this solves this immediately, but that&#39;s interesting. [12:57]&lt;/p&gt;
&lt;p&gt;Mark: So, and okay, so a partial example, and again, this is me going off the top of my head and not even trying to read the post at the moment. [13:09]&lt;/p&gt;
&lt;p&gt;So, if you have like a used callback that needs to access a value, you either let the callback get recreated every time, which in case there&#39;s no point in the use callback at all, or you have the item in the dependency array, which means it&#39;s gonna, the callback is gonna get recreated still when the value changes or you don&#39;t rate it all, and oops, now you have a steel value, which is bad. [13:17]&lt;/p&gt;
&lt;p&gt;Carl: Right. [13:42]&lt;/p&gt;
&lt;p&gt;Mark: So what happens when you want a consistent callback reference that never changes, but it still needs to see the latest value in order to do something useful when it runs. So one workaround for this is you put a use ref a couple lines up in the component that runs first. You assign to it even in like another use effect before the one that you care about. [13:42]&lt;/p&gt;
&lt;p&gt;That means it gets updated. Now you&#39;ve produced this kind of weird sequence of events where I know that the ref has already been updated before the callback ends up getting run. And so part of the point of this hook is to eliminate the need to do that little dance yourself. [14:08]&lt;/p&gt;
&lt;p&gt;Carl: Yeah. Okay. That makes sense. [14:24]&lt;/p&gt;
&lt;p&gt;I&#39;m reading this list of caveats and it seems tricky. The only call inside effects define it just before the effect that uses them. Do not pass them to other components or hooks. Do not use &lt;code&gt;useEffectEvent&lt;/code&gt; to avoid specifying dependencies. This can hide bugs. Sure. Use it only to extract logic that does not depend on changing value. [14:26]&lt;/p&gt;
&lt;p&gt;That&#39;s quite a set of constraints. [14:48]&lt;/p&gt;
&lt;p&gt;Mark: When the new docs came out, and Dan and a couple others wrote the tutorial. There were a couple pages in there that actually referenced this hook as the solution for some of the problems that were being described. Even though the hook didn&#39;t exist yet, some of the docs pages also try to make the terminology very unique, where they talk about lowercase e effects as in like, you know, just the generic concept of a side effect versus a capital E effect, which is like a somehow react specific concept that I don&#39;t think the docs ever fully defined. [14:51]&lt;/p&gt;
&lt;p&gt;And so in, in a way like the use effect event hook, is the React team trained to somehow solidify this. Notional react effect term in a way. [15:30]&lt;/p&gt;
&lt;p&gt;Carl: Interesting. Interesting. [15:46]&lt;/p&gt;
&lt;h2 id=&quot;compiler-inferring-function-names&quot;&gt;&lt;a href=&quot;https://github.com/facebook/react/pull/34410&quot;&gt;Compiler inferring function names&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: Alright, two other little data points and, and updates Worth noting. The React team merged a work in progress PR to the compiler to try to do and to try to automatically infer function names for things like callbacks that you pass to use effect so that you know when they show, like show up like in a stack trace, they are nicer and easier to read. [15:47]&lt;/p&gt;
&lt;h2 id=&quot;docs-for-eslint-plugin-react-hooks-including-rules-and-compiler-issues&quot;&gt;&lt;a href=&quot;https://react.dev/reference/eslint-plugin-react-hooks&quot;&gt;Docs for &lt;code&gt;eslint-plugin-react-hooks&lt;/code&gt;&lt;/a&gt;, including rules and compiler issues&lt;/h2&gt;
&lt;p&gt;Mark: And then the docs now have a page for the Eslint plugin of react hooks, including a bunch of information on all the different rules that it cover and that includes issues that&#39;ll get flagged by the compiler as well. [16:08]&lt;/p&gt;
&lt;p&gt;Carl: Also, yeah, I wanna say on the compiler inferring function names like that is like one of the most quietly mind blowing things I have seen in a long time. [16:19]&lt;/p&gt;
&lt;p&gt;I actually commented on the PR to ask like, what if this became a TC 39 proposal? Because this would have saved me days of effort over the life of my career. If there had been a little bit more data about what the heck is throwing an error instead of just like cannot read property of undefined. Oh thi this is quietly one of the mo going to be one of the most impactful changes in a long time I think. [16:29]&lt;/p&gt;
&lt;p&gt;Mark: I have actually, even just recently in some of the Immer work that I&#39;ve been doing, gone in and replaced anonymous arrow functions with a named function just to try to get a better name and a stack trace. [16:55]&lt;/p&gt;
&lt;p&gt;Carl: Totally. Yeah, a hundred percent. And the annoyance of assigning an arrow function to a variable versus using a named function and how those are not the same thing. [17:06]&lt;/p&gt;
&lt;h2 id=&quot;react-native-10-on-the-horizon&quot;&gt;&lt;a href=&quot;https://youtu.be/GPtopk4y2LI?si=JoZVprPW33szn-6D&quot;&gt;React Native 1.0 on the horizon&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mo: Cool. Let&#39;s move on to some React native news, which has gotten people a, a fair bit excited, which is one of the talks that was at React Universe comps that happened at the beginning of this month called React Native 1.0 is on the horizon. This is pretty exciting stuff because it&#39;s anecdotally, and I&#39;m sure many people have had the same experience as me. [17:15]&lt;/p&gt;
&lt;p&gt;One of the biggest things that people oftentimes use, which is a really, really, you know, straw man argument, but nonetheless is there, is that, oh, react native&#39;s not stable because it&#39;s not 1.0. I kid you not, when I say three weeks ago we were talking about starting a new project here at Theo and someone brought this up as a reason not to use React Native as one of like the prospective clients that we had because another company who was trying to push them to use Flutter had told them, oh, it&#39;s not stable because it&#39;s not 1.0 da da da da da. [17:37]&lt;/p&gt;
&lt;p&gt;And you know, there&#39;s a little bit of fear mongering around this. The reality of it is that React Native has been around for way too long and it&#39;s been used in many, many serious production apps for, you know, several, several years now. And so I think this is something that a lot of people have discussed with the React Native Core team over the years. [18:06]&lt;/p&gt;
&lt;p&gt;And you know, there&#39;s always been a bit of a reluctance on going to 1.0 for various reasons. Um, and so this talk is really interesting &#39;cause they talk a little bit about the history of that and what the reasons are for that. But really what&#39;s happened over the last year is that the release process for React Native has been significantly streamlined. [18:23]&lt;/p&gt;
&lt;p&gt;So there are now six releases. Being targeted for every single year. So every other month there being a release from two releases, which was what we had in 2024 and you know, a lot more sporadic releases in the previous years. So there was no really never a schedule to it before where, whereas now there is one of the things that&#39;s been happening over the years, but really accelerated over the last, I&#39;d say year, is that a lot of the APIs are being really stabilized, reduced, and the surfaces are being completely trimmed down. [18:38]&lt;/p&gt;
&lt;p&gt;And so the whole idea with this is less API surfaces externally means that there&#39;s less likelihood for breaking changes in the long term, which helps them feel confident to say, Hey, this is a 1.0 or reaching out sort of monumental point where they can actively say, Hey, this is a 1.0 release. And the other thing is that the React native. [19:06]&lt;/p&gt;
&lt;p&gt;Pipelines for building React native Core was quite a manual process in the past, and so what they&#39;ve done in sort of recent years is worked on introducing a lot more end-to-end testing, some workflows that would test our C bugs and you know, breaking changes much quicker. And so that&#39;s really been a lot of the efforts behind the scenes, which you won&#39;t see in features and functionalities, but it&#39;s really been to the workflow for building React native. [19:25]&lt;/p&gt;
&lt;p&gt;And so a lot of this is really moving us towards that direction where there can be at 1.0. And so the conversation isn&#39;t. Potentially, hey, there&#39;s gonna be a 1.0 in the next few months. Maybe not even in the next year, but it is somewhere there where they&#39;re feeling like, okay, we can go ahead to, to basically releasing a 1.0 for React native at some point in the near future. [19:48]&lt;/p&gt;
&lt;p&gt;So the React team&#39;s gonna be, the React native team is gonna be working on this quite extensively and trying to reach a point where they&#39;re happy and so they&#39;re gonna be working with a bunch of people to start to potentially put a date on it, which is very exciting. [20:09]&lt;/p&gt;
&lt;p&gt;Carl: That is really exciting. That&#39;s a long time towards 1.0. [20:20]&lt;/p&gt;
&lt;p&gt;But like it would&#39;ve felt premature I think for them to get, to call it a 1.0 before, or at least they would&#39;ve had to do a lot of breaking. [20:22]&lt;/p&gt;
&lt;p&gt;Mark: Even just waiting for the new architecture to be the default, I think was a big thing. Mm-hmm. Yeah, definitely. [20:30]&lt;/p&gt;
&lt;p&gt;Carl: Yeah. And that really seems like it was a meaningful, a meaningful reason to delay, like it was such a large disruption to so many different parts of the ecosystem, but also so essential. [20:36]&lt;/p&gt;
&lt;p&gt;Yeah, it feels more truly native under the new architecture, rather than having to like serialize between two independent systems. It kind of reminds me of like when Docker launched because it was a Linux feature, you know, a Linux kernel feature. I remember for years they had like a, if you wanted to use it on Mac, you had to technically run a vm, which introduced all sorts of weirdness. [20:47]&lt;/p&gt;
&lt;p&gt;And so that feels, I dunno, this feels technically similar to me in how they like figured out how to not have two independent systems communicating with each other in that kind of way. And now that they&#39;ve cleared that hurdle, they can get towards a greater level of stability. Cool. Awesome. [21:09]&lt;/p&gt;
&lt;p&gt;Mark: One other thing that actually kinda reminds me of, so we had squiggle conf a week and a half ago and one of the talks was from Shelley Vohr, who&#39;s part of the Electron core team and she did a talk about automating systems and you know, things like security and repeatability and what happens if the system goes down. [21:25]&lt;/p&gt;
&lt;p&gt;And it sounds like a lot of the effort that&#39;s been involved on the RN side really is about CI pipelines and automation and turning a manual release process into an automated release process. And you know, having that consistency is a pretty big deal here. [21:44]&lt;/p&gt;
&lt;h2 id=&quot;react-won-by-default--and-its-killing-frontend-innovation&quot;&gt;&lt;a href=&quot;https://www.lorenstew.art/blog/react-won-by-default/&quot;&gt;“React Won by Default – And It&#39;s Killing Frontend Innovation”&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Carl: Cool. Drama post? [22:02]&lt;/p&gt;
&lt;p&gt;Mark: Drama post. [22:04]&lt;/p&gt;
&lt;p&gt;Carl: Yeah, so there was a recent post called React Won by default and it&#39;s killing front end innovation. [22:05]&lt;/p&gt;
&lt;p&gt;Mark: To some extent. There&#39;s nothing new in this post. People have been making complaints about this for years. [22:13]&lt;/p&gt;
&lt;h2 id=&quot;inevitable-hn-argument&quot;&gt;Inevitable &lt;a href=&quot;https://news.ycombinator.com/item?shownew&amp;amp;id=45252715&quot;&gt;HN argument&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: It&#39;s a pretty well written post, and it did make all the rounds and spawned massive 800 comment, hacker news thread and responses on Twitter and a bunch of other places. The first argument is that React itself has kind of stagnated that it was a big deal in 2013 when the virtual do solved problems with Angular, but that React really hasn&#39;t innovated since then claim, and that things like the React compiler are a bit more of a bandaid. [22:18]&lt;/p&gt;
&lt;p&gt;Whereas other frameworks like solid and spelt and quick are doing new and innovative things around signals and ruins and resum ability and other approaches to updating the dom. But the rest of the argument is that. The typical discussion these days for a project is, okay, which framework should we use? [22:48]&lt;/p&gt;
&lt;p&gt;Well, let&#39;s use React because it has the biggest ecosystem, because there&#39;s the most developers available because AI are familiar with it, because there&#39;s lots of libraries out there, et cetera. And the phrase that always comes to mind and for me is the old one about no one ever got fired for choosing IBM that back in the day, like IBM was the safe choice for, you know what, whatever tools it is sort of that same principle today. [23:09]&lt;/p&gt;
&lt;p&gt;Like most people are not generally choosing React. Because they&#39;re specifically excited about suspense or transitions or other things like that. It&#39;s the industry standard, so we&#39;ll stick with that. And so the article argues that because of that, because the mindset is used, react by default, that it&#39;s sort of choking out other frameworks that have had more innovation and newer interesting approaches. [23:39]&lt;/p&gt;
&lt;p&gt;And so it ends up offering some suggestions for things to evaluate about scaling and performance and team skills and whatnot. And then tries to counter argue the typical like size of the ecosystem type points. It&#39;s a well-written article, like it&#39;s not flame bait. The title is is well out there, but it makes a pretty good actual point and it spawned a lot of discussion, like I said, hacker News and a bunch of other places. [24:08]&lt;/p&gt;
&lt;p&gt;But I think the really interesting counterpoint to all that. Is Rick Hanlon from the React team put up a very long thread on Blue Sky, which really should be its own blog post at this point where he says that all the frameworks know how to update the do efficiently React has innovated in the past, but it&#39;s also, it was so good in the past. [24:34]&lt;/p&gt;
&lt;p&gt;People are actually kind of ignoring the innovations they&#39;ve done since 2017 and 2018, and that reacts focus for the last seven years has been not about how can we make Dom updates faster per se, but about scheduling. Things like concurrent mode, transitions, suspense, even the new activity component builds off of the foundations that they&#39;ve built for the last several years. [24:59]&lt;/p&gt;
&lt;p&gt;Yeah. And so his argument is that number one, when people say react is an innovating, they&#39;re ignoring all the new features built around concurrency. And number two, that most people are still thinking about using React in a very 20 16, 20 17 ish sort of way. Most people aren&#39;t even thinking about using the new capabilities that React has unlocked. [25:23]&lt;/p&gt;
&lt;p&gt;I think he&#39;s actually got a pretty good point. [25:50]&lt;/p&gt;
&lt;p&gt;Carl: That&#39;s fair. I would generally agree with that and like I am very much in that boat, I&#39;ll be honest, like I haven&#39;t written extensive from scratch, like build an app and react since about that time. The last time I really did that from scratch to like a full production level where I was like exclusively focused on the front end was about that time, like ended around 2021. [25:52]&lt;/p&gt;
&lt;p&gt;So I&#39;ve been following a lot of this, but I haven&#39;t used it at the same level of depth that I used to. I have seen somebody who, you know, one of my internet acquaintances who I have a lot of respect for, as you know, both technically and like entrepreneurial and whatever. He&#39;s been extolling the virtues of server components for the last couple of months, I think, and it&#39;s been on my, you know, it&#39;s been somewhere on my to-do list to talk more with him. [26:15]&lt;/p&gt;
&lt;p&gt;Mark: Daniel Switz. [26:40]&lt;/p&gt;
&lt;p&gt;Carl: Yep, yep. Daniel Switz. Just like I&#39;ve heard him say some things. It&#39;s like, okay, I feel like you get it and I feel like you get it in a way that you could communicate. It&#39;s crossed my mind actually to have him and Ricky and or him and Dan or I don&#39;t know, a group of people on a stage like this and just like talk about it and be like, what the fuck? What are we doing? How do you do this? So yeah, I don&#39;t know. It&#39;s like, it&#39;s definitely there is innovation happening. I think a lot of the innovation, like there&#39;s innovation happening and there&#39;s also just like roadblock clearing. It&#39;s like, you know, there&#39;s the innovative, you build the road, but then you have to deal with the consequences. [26:41]&lt;/p&gt;
&lt;p&gt;Like, great, you have this road. Like what is it like to actually use it? And then a lot of the time you realize there are speed bumps and whatever that you didn&#39;t realize you were building in the first place. And the fix there is not innovate. You don&#39;t just like, well that sucked. Let&#39;s build a new road. [27:16]&lt;/p&gt;
&lt;p&gt;No, you fix it. Figure out different ways to approach the same problem that have a different set of trade-offs. And so I think that&#39;s some of what&#39;s being complained about here is that like people are like, we need a new thing. We need to rewrite from scratch. And No, we don&#39;t. I don&#39;t think we do. So, yeah, I don&#39;t know. [27:33]&lt;/p&gt;
&lt;p&gt;I guess that&#39;s what I, what I have to say there. [27:52]&lt;/p&gt;
&lt;h2 id=&quot;ricky-on-ryan-carniatos-stream-talking-about-scheduling-and-demoing-using-modern-react-features&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=3vw6EAmruEU&quot;&gt;Ricky on Ryan Carniato’s stream&lt;/a&gt; talking about scheduling and demoing using modern React features&lt;/h2&gt;
&lt;p&gt;Mark: So, sort of on on that note, Ryan Carniato from the solid team routinely does streams where he talks about what he&#39;s working on or you, where the ecosystem is going. He and Ricky have had a number of like, actually. Intentional and productive discussions back and forth on Blue Sky and Twitter where Ryan has said, we&#39;ve got our own version of suspense, we&#39;ve got our own version of transitions. [27:54]&lt;/p&gt;
&lt;p&gt;We&#39;re trying to do things this way. And Ricky has put up a demo and said, how does this, here&#39;s the React way to do this. How&#39;s this compare to the way you guys are doing it? And so Ricky was actually just on Ryan Carniatos stream on Friday and I looked, and it&#39;s a six hour long video. No, I most definitely did not watch the video. [28:17]&lt;/p&gt;
&lt;p&gt;I cheated and used a summarizing tool to try to gimme a sense of what they were actually talking about. But it looked like they talked about where React has gone and what has changed with all the different concurrency related features. And then I think they tried to take a sort of a classic react. I think it was like a React 17 to do application, and then they updated it live on stream to use all the modern latest React features. [28:38]&lt;/p&gt;
&lt;p&gt;So if you want to watch them talking about this for six hours, the video&#39;s there. But it&#39;s a good example of people who know how this, how these technologies are implemented, discussing them as well as Ricky demoing how you could actually use these in an application. [29:06]&lt;/p&gt;
&lt;p&gt;Carl: Yeah. I will say, going back to a point a little bit about, you know, you shared the long thread and made an offhand comment about like, this could really be a blog post at this point. [29:23]&lt;/p&gt;
&lt;p&gt;Like the post on Ricky&#39;s feed right before that is the, if you all promise not to ask me for docs or blog posts, maybe I&#39;ll explain a bit about why creating a cache API for suspense is so hard and it&#39;s, oh, I love that you&#39;re doing all of this, like social media outreach and everything, but like part of the problem that, part of the reason why nobody understands all of this and you have to do all the social media outreach is because there aren&#39;t static available resources for people to read. [29:31]&lt;/p&gt;
&lt;p&gt;So it&#39;s like, ah, I love that this is happening and it&#39;s so good and so helpful. And there&#39;s follow up that&#39;s not happening that I think is really crucially important. [29:55]&lt;/p&gt;
&lt;p&gt;Mark: That&#39;s actually been one of my running frustrations and complaints for a while. Ricky and I have actually had some back and forth on this, multiple times on Blue Sky. [30:03]&lt;/p&gt;
&lt;p&gt;Yeah. Admittedly, I&#39;m also not sitting here, honestly. I should probably start watching the docs repos so I have a better sense of what updates do happen. That one&#39;s on me, but to a certain extent, my, my knowledge of what&#39;s in the docs can get a little stale. Right. But Ricky has repeatedly complained that. [30:12]&lt;/p&gt;
&lt;p&gt;People keep making the same wrong assumptions about what React has available, why the React team is doing things, et cetera. I&#39;ve pushed them multiple times this year and said, you know, my answer is go write a docs page. Yeah. That covers exactly the topic you want and to have answered, and it answers it in exactly the way you want This material covered. [30:29]&lt;/p&gt;
&lt;p&gt;A lot of people are still not gonna read that docs page, but some people who are already looking at the docs will see it. And when you run into yet another one of these questions on social media, now you have the pre-written answer and you link to it rather than having to answer it from scratch every time you see the same misconception pop up on social media. [30:55]&lt;/p&gt;
&lt;p&gt;I, I wanna be clear, I, I am genuinely excited that Ricky has done so much outreach over the last year or so. Even just in the last couple weeks he was, he wrote dozens of tweets on both Blue Sky and Twitter around the threads related to the React innovation by default discussion. And I&#39;m genuinely happy he&#39;s doing this much outreach. [31:18]&lt;/p&gt;
&lt;p&gt;It&#39;s sort of taking Dan&#39;s place in that sense. But when your great answers are buried, 15 replies deep in a Twitter thread, no one sees them other than the person you&#39;re responding to. And that is the kind of material that desperately ought to be its own blog post, as well as these couple top level threats as well. [31:40]&lt;/p&gt;
&lt;p&gt;And so I genuinely happy he&#39;s engaging. I would just love to see that material written up longer term. [32:03]&lt;/p&gt;
&lt;p&gt;Carl: This is clearly a bit of a cycle, you know, like social, this has been true for years generally. So like maybe this is an opportunity for someone here listening to go through some of the, to go through these threads. [32:09]&lt;/p&gt;
&lt;p&gt;Like if you&#39;re champing at the bit for an opportunity to have an impact on the ecosystem and on the industry, like this could be a pretty achievable way to do so. Like this content is out there, it exists, but not in a way that&#39;s discoverable. So like taking this knowledge that is being produced in ephemeral social media threads and then just like restructuring it, reformatting it into a markdown document and submitting a PR to react could be really effective. [32:24]&lt;/p&gt;
&lt;p&gt;I, I&#39;ll throw that gauntlet down, like that is an achievable thing that I am probably not gonna do. [32:52]&lt;/p&gt;
&lt;p&gt;Mark: People used to say that the real React docs was Dan Abramov&#39;s Twitter account, which he then deleted and all that info is gone. I don&#39;t expect blue sky to go down, but yeah, like if someone out there wanted to go through some of, you know, Dan and Ricky and whoever else&#39;s Blue Sky threads and pull out info and submit docs, prs like that would genuinely help the entire ecosystem. [32:58]&lt;/p&gt;
&lt;p&gt;Carl: Yep. Right. And it doesn&#39;t need to be perfect first. Drafts are so good. First, the first draft is so hard and going from first draft to published thing is still a lot of work. But man, just getting a first draft out is often the thing that tips it over the edge into actually happening. Yep. I&#39;ll just say that if anyone&#39;s looking for something. [33:20]&lt;/p&gt;
&lt;p&gt;Mark: Love the idea. Alright, moving right along. [33:38]&lt;/p&gt;
&lt;h2 id=&quot;server-components&quot;&gt;Server Components&lt;/h2&gt;
&lt;p&gt;Mark: A few different updates related to server components this month. [33:41]&lt;/p&gt;
&lt;h2 id=&quot;react-router-rsc-framework-mode-preview&quot;&gt;&lt;a href=&quot;https://remix.run/blog/rsc-framework-mode-preview&quot;&gt;React Router RSC framework mode preview&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: The biggest would be that React Router now has RSC support in their framework mode builds. So React Router, as I understand it now, has three different modes. There&#39;s sort of the, the traditional client side only, here&#39;s your list of routes mode, there&#39;s a somewhat more complicated data mode, and then there&#39;s the full blown full build framework mode. [33:44]&lt;/p&gt;
&lt;p&gt;And so I believe they previously announced some RSC primitives available in data mode. And then I believe the framework mode is now taking those and expanding on them somehow to make it available for the full build. So, you know, again, having more RSC options available besides just next is a pretty big deal. [34:09]&lt;/p&gt;
&lt;p&gt;And especially when it&#39;s built into something as widely used as React router. [34:30]&lt;/p&gt;
&lt;p&gt;Carl: Yep. Love that. [34:34]&lt;/p&gt;
&lt;h2 id=&quot;also-middleware-is-now-stable&quot;&gt;also &lt;a href=&quot;https://remix.run/blog/middleware&quot;&gt;middleware is now stable&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: They also announced that React router now has stable middleware support as well. Your routes can now have middleware. [34:36]&lt;/p&gt;
&lt;h2 id=&quot;krasimir-tsonevs-can-i-use-rsc-today-support-matrix-and-experimental-forket-rsc-without-a-framework-build-tool&quot;&gt;Krasimir Tsonev’s &lt;a href=&quot;https://rsc.krasimirtsonev.com/&quot;&gt;“Can I Use RSC Today?” support matrix&lt;/a&gt; and experimental &lt;a href=&quot;https://krasimirtsonev.com/blog/article/vanilla-react-server-components-with-no-framework&quot;&gt;Forket “RSC without a framework” build tool&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: Krasimir Tsonev, who is a React educator and has been around for a while, put up a nifty little support matrix called, can I use RSC today, where he tried to do equivalent bits of RSC usage and features across several different tools from next in, in Remix and Waku and various other tools. [34:44]&lt;/p&gt;
&lt;p&gt;He was also very curious. I, I actually talked to him at React Summit in, in June, and I think this is what. And he was talking to a couple other folks, and I think this is what spawned him doing that deep dive where he was actually kind of bothered by the fact that server components require a framework. [35:07]&lt;/p&gt;
&lt;p&gt;And so he went off and ended up implementing his own tool called for cat. Which is supposed to be somehow a proof of concept for using an RFC without an actual framework per se. So sort of a more primitive, granular client server separation build tool. [35:24]&lt;/p&gt;
&lt;h2 id=&quot;rsbuild-support-for-rscs&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/ebey.bsky.social/post/3lyf6vixick26&quot;&gt;RSBuild support for RSCs&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: Speaking of build tools, I saw mention that there is a set of plugins available that try to add some RSC support to the RS build, rust based bundler as well. [35:43]&lt;/p&gt;
&lt;h2 id=&quot;useful-post-on-parallel-and-recursive-route-rendering&quot;&gt;Useful post on &lt;a href=&quot;https://twofoldframework.com/blog/parallel-and-recursive-route-rendering-with-rsc&quot;&gt;parallel and recursive route rendering&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: Finally, I also saw a good blog post that talked about techniques for doing parallel and recursive route rendering with RSCs. As Carl mentioned earlier, all this stuff is frankly outside of my experience, I&#39;ve never tried to render, you know, RSCs much less do parallel and recursive stuff, but it clearly, people are out there experimenting with these things and that&#39;s good. [35:55]&lt;/p&gt;
&lt;p&gt;Carl: Oh man. I&#39;m looking at the blog post. You mentioned React server components without a framework and it&#39;s got a mention of Flux. Oh, throwback. Yeah. I mean we&#39;re Reactiflux because for about a six or eight months it was React and then you pair it with Flux and that was how you do UI and state management. [36:15]&lt;/p&gt;
&lt;p&gt;So it&#39;s wow, throwback. That&#39;s a long time. [36:33]&lt;/p&gt;
&lt;h2 id=&quot;all-the-npm-compromises-and-malware-this-month&quot;&gt;All the NPM compromises and malware this month&lt;/h2&gt;
&lt;p&gt;Carl: Alright, little bit of a roundup on. Vulnerabilities and security incidents on MPM. There&#39;s been a lot this month. [36:35]&lt;/p&gt;
&lt;p&gt;Mark: I think that the first one happened late last month, and we mentioned it briefly. Yeah. And then there was just like this constant flood of new compromises, new vulnerabilities, all kinds of packages being taken over, ranging from crypto miners to like full-blown credential stealing. [36:44]&lt;/p&gt;
&lt;p&gt;It&#39;s, it&#39;s been pretty bad out there folks. [37:02]&lt;/p&gt;
&lt;p&gt;Carl: Right? So last month. NX was compromised, which is discussed in this set of links that we have here. I&#39;ll send one at a time as we get into it, but yeah, so it, what we&#39;ve seen has been everything from like pretty, there was a targeted attack that would do like intercede, crypto payments and sub out addresses for, you know, an attacker&#39;s wallet actually that had a small innovation in that category of attack where it would generate an address that was visually similar to the one that you had used to try and escape. Notice I heard that attack only got like $50 or like less than $500. I&#39;ve seen some conflicting numbers, but like generally not effective, did not achieve its goals. [37:04]&lt;/p&gt;
&lt;p&gt;But like it hit debug. Like it hit a package that I saw the security alert go out and I was like, oh, that sounds like something that I might use. And I checked. I&#39;m like, yep, a bunch of projects on my computer were using that package. That was the one that got targeted with crypto interception, but previously, I think it was nx, was it last month, that we had the people who were stealing credentials and using AI to generate other code to steal credentials. [37:50]&lt;/p&gt;
&lt;p&gt;Like, ah, that&#39;s the worst attack I&#39;ve ever seen. And the only reason it wasn&#39;t worse was because of the limited scope of compromise. So like I was primed seeing that innovative, highly effective attack when I saw this massively widely distributed compromise of debug. And I have a little bit of egg on my face regarding this because I had pinged in the node Discord that I help operate saying like, oh, you need to look at this. This is awful. And it ended up not being as bad as I thought because that was a crypto miner, not a credential stealer. [38:19]&lt;/p&gt;
&lt;p&gt;Mark: The attack itself seemed like a pretty big deal, and then it was almost sort of wasted on, well, it has to lead to you accidentally build a client side app that has the compromised version built into it. [38:54]&lt;/p&gt;
&lt;p&gt;Carl: Right, they managed to successfully target one of the single most widely used packages. And completely squandered it by using it to execute an attack that had such limited application that they just didn&#39;t get anything. So like that&#39;s just straight up, like they screwed up, like they achieved a massive level of success and just like immediately fell on their face and did nothing with it. [39:08]&lt;/p&gt;
&lt;p&gt;That&#39;s just a miss. Like that was just luck, that it wasn&#39;t worse than it was. [39:34]&lt;/p&gt;
&lt;p&gt;Mark: But on the, on the flip side, the article that&#39;s talking about the ongoing supply chain attack did do a bunch of credential stealing, targeting a bunch of packages like [39:38]&lt;/p&gt;
&lt;h2 id=&quot;npm-package-maintainer-qix&quot;&gt;&lt;a href=&quot;https://socket.dev/blog/npm-author-qix-compromised-in-major-supply-chain-attack&quot;&gt;npm package maintainer Qix&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: tiny color and a [39:47]&lt;/p&gt;
&lt;h2 id=&quot;crowdstrike-npm-packages&quot;&gt;&lt;a href=&quot;https://socket.dev/blog/ongoing-supply-chain-attack-targets-crowdstrike-npm-packages&quot;&gt;CrowdStrike npm Packages&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: bunch of CrowdStrike packages. Yeah. I don&#39;t know the extent of like what sites got hit because of that compromise. [39:48]&lt;/p&gt;
&lt;p&gt;Yeah. But I believe that one&#39;s, that one had did a, done a pretty good job of finding credentials and publishing them on either, I think it was like either creating a new GitHub repo or creating a new specially named branch in GitHub repos to try to exfiltrate the credentials. [39:57]&lt;/p&gt;
&lt;p&gt;Carl: Yeah. Oh, I was just reading this one actually. [40:14]&lt;/p&gt;
&lt;h2 id=&quot;github-actions-npm-token-theft&quot;&gt;&lt;a href=&quot;https://socket.dev/blog/nx-supply-chain-attack-investigation-github-actions-workflow-exploit&quot;&gt;GitHub Actions npm Token Theft&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Carl: It was, they had, they, somebody had added a line to the GitHub action that did, that would echo out the title of the PR and because it just did an un escaped string, you know, echo this. You could just terminate that and then run whatever you wanted. On the GitHub action, like, do not let any arbitrary person run whatever script they want in your seat. [40:16]&lt;/p&gt;
&lt;p&gt;Like, oh man, that it&#39;s, that&#39;s pretty bad. And also, oof, this is CrowdStrike. Like, remember CrowdStrike and how they took down like every, like air travel around the world from another security problem that they had, and oops, they&#39;re a cybersecurity company where preventing attacks is their job. Oops. Yeah. [40:38]&lt;/p&gt;
&lt;p&gt;I don&#39;t understand how they&#39;re still operating successfully. [40:57]&lt;/p&gt;
&lt;h2 id=&quot;github-response&quot;&gt;&lt;a href=&quot;https://github.blog/security/supply-chain-security/our-plan-for-a-more-secure-npm-supply-chain/&quot;&gt;GitHub response&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: So, GitHub and NPM did actually put up a, a, an announcement saying that they&#39;re gonna be doing a lot of work to try to tighten up. Publishing of packages down the road, they&#39;re gonna be making changes to two fa it says they&#39;re gonna deprecate time-based passwords. [41:01]&lt;/p&gt;
&lt;p&gt;That sounds like it&#39;s gonna end up being a, a big deal. I don&#39;t fully understand the implications yet. And, and they said they&#39;re gonna, you know, take time to roll these changes out. But that one seems like a big deal. We&#39;re also making and trying to apply more limits to tokens and work on better trusted pet publishing workflows as well. [41:20]&lt;/p&gt;
&lt;p&gt;Interesting. [41:40]&lt;/p&gt;
&lt;p&gt;Carl: Yeah. That&#39;s all important and useful, but like also, I don&#39;t know if there, if you just, if somebody opens a PR to your CI, that adds. A vulnerable un escaped string. Like it doesn&#39;t really matter how, what your authentication or publishing workflow looks like if that gets merged. Like you&#39;re vulnerable. [41:41]&lt;/p&gt;
&lt;p&gt;So dunno how, dunno what you do about that specifically. But, okay. [41:56]&lt;/p&gt;
&lt;h2 id=&quot;-lightning-round-&quot;&gt;⚡ Lightning round ⚡&lt;/h2&gt;
&lt;p&gt;Carl: Let&#39;s hop into our lightning round. [42:00]&lt;/p&gt;
&lt;h2 id=&quot;porting-modern-typescript-to-run-on-dos&quot;&gt;&lt;a href=&quot;https://jimb.ly/2025/09/23/qauntumpulse-from-steam-to-floppy/&quot;&gt;Porting Modern TypeScript to Run on DOS&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: I love a good article that just goes into absurd amounts of detail on a ridiculous thing that someone&#39;s trying to do, but they commit to the bit fully. And this one was, someone had a. JavaScript based game and they ported it all the way back to work on dos. [42:03]&lt;/p&gt;
&lt;p&gt;Like why would you want to, I don&#39;t know, but apparently they actually made this work and I love it. [42:21]&lt;/p&gt;
&lt;p&gt;Carl: That is insanity, and I also love it spiritually similar to Doom running in TypeScript types, just for no reason. Yep. Love. [42:27]&lt;/p&gt;
&lt;h2 id=&quot;cloudflare-ddosed-themselves-with-a-bad-useeffect-fetch&quot;&gt;&lt;a href=&quot;https://blog.cloudflare.com/deep-dive-into-cloudflares-sept-12-dashboard-and-api-outage/?amp%253But&quot;&gt;Cloudflare DDOSed themselves with a bad &lt;code&gt;useEffect&lt;/code&gt; fetch&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: CloudFlare got into the news this month because they had a dashboard failure that cascaded, and believe it or not, it was caused by manually fetching data in a use effect that went into an infinite loop, which also means they weren&#39;t actually using like React query or anything like that. [42:35]&lt;/p&gt;
&lt;p&gt;Oops. [42:55]&lt;/p&gt;
&lt;p&gt;Carl: Yeah, I did hear like none of their services were affected. It was just the control panels that was taken down, so that&#39;s good. I also saw Guillermo Roush throwing some shade at the CloudFlare CEO after that. So, you know, drama post. [42:56]&lt;/p&gt;
&lt;h2 id=&quot;a-very-lovely-writeup-of-the-evolution-of-css-zoom&quot;&gt;&lt;a href=&quot;https://www.bocoup.com/blog/the-webs-most-tolerated-feature&quot;&gt;A very lovely writeup of the evolution of css &lt;code&gt;zoom&lt;/code&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Carl: There&#39;s a cute post from Bocoup. There are web consultancy that&#39;s had a, a big impact on standards and web platform implementation details. [43:11]&lt;/p&gt;
&lt;p&gt;So they, they&#39;ve heard a cute blog post, the web&#39;s most tolerated feature looking into Zoom and how Zoom works. And it is kind, it&#39;s kind of cute. I don&#39;t know, just like it&#39;s a fun look at standards and like how. Cross browser implementation stuff works and how like, oh actually this like totally unstandardized thing just happens to work really well and everyone uses it. [43:21]&lt;/p&gt;
&lt;p&gt;So, I don&#39;t know. It&#39;s cute. It&#39;s a cute post from people who are deeply involved in the standardization and implementation process, highlighting a case where like standards like just kind of didn&#39;t happen and it was fine. [43:44]&lt;/p&gt;
&lt;h2 id=&quot;what-you-need-to-know-about-modern-css&quot;&gt;&lt;a href=&quot;https://frontendmasters.com/blog/what-you-need-to-know-about-modern-css-2025-edition/&quot;&gt;What You Need to Know about Modern CSS&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Carl: Anyway, yeah, there was another good post from front end Masters who I, I&#39;ve just always had a soft spot in my heart for front end masters because they were, that&#39;s the first platform that I learned react from. [43:56]&lt;/p&gt;
&lt;p&gt;It was like a comparative class of Angular React and Ember, and I was like, oh, react seems nice. So like I owe them a debt to, you know, my entire career. So that&#39;s, it&#39;s cool. It&#39;s nice to see &#39;em still around and still staying on the ball. They published a post What you Need to Know about Modern CSS 2025 edition. [44:09]&lt;/p&gt;
&lt;p&gt;Mark: And it was long too. It was long. [44:26]&lt;/p&gt;
&lt;p&gt;Carl: It&#39;s big and I appreciate that because I&#39;ve gone to a couple of conferences and I&#39;ve seen talk from various people who are more, who work on CSS a little bit more. Una Kravets, I think is who I&#39;m most specifically thinking of, who&#39;s wonderful and great and a great speaker. [44:28]&lt;/p&gt;
&lt;p&gt;But like I&#39;ll see her talk about some CSS stuff and be like, wow, all of this is stuff that I&#39;ve never heard of and CSS is completely different than what I&#39;ve used in a lot of my career. That&#39;s awesome. And I don&#39;t know what to do about that. So this is a great post for me in that situation and going, ah, I need to catch up on like the last six years of stuff that I haven&#39;t really paid close attention to as it evolves step by step. [44:44]&lt;/p&gt;
&lt;p&gt;So, great summary. [45:09]&lt;/p&gt;
&lt;p&gt;Mark: We have a few different posts on browser behavior. So there was I and all from folks who have worked on browsers for a long time, I might add. [45:10]&lt;/p&gt;
&lt;h2 id=&quot;fetch-streams-are-great-but-not-for-measuring-uploaddownload-progress&quot;&gt;&lt;a href=&quot;https://jakearchibald.com/2025/fetch-streams-not-for-progress/&quot;&gt;Fetch streams are great, but not for measuring upload/download progress&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: Jake Archibald did one on fetch streams are great, but don&#39;t use them for measuring upload download progress points out that you still basically need to use XHR for that instead. [45:21]&lt;/p&gt;
&lt;p&gt;Although there&#39;s discussion of adding some new options and callbacks to fetch that might accurately handle that at some point. [45:33]&lt;/p&gt;
&lt;h2 id=&quot;why-do-browsers-throttle-js-timers&quot;&gt;&lt;a href=&quot;https://nolanlawson.com/2025/08/31/why-do-browsers-throttle-javascript-timers/&quot;&gt;Why do browsers throttle JS timers?&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: There was one from Nolan Lawson talking about why do browsers throttle JS timers? So you know, why does that time timeout zero actually be, why is it more like four milliseconds, et cetera? [45:40]&lt;/p&gt;
&lt;p&gt;And basically it&#39;s because people rate bad code or either intentionally or unintentionally that can do bad things. [45:53]&lt;/p&gt;
&lt;h2 id=&quot;how-modern-browsers-work-deep-dive-addy-osmani&quot;&gt;&lt;a href=&quot;https://addyo.substack.com/p/how-modern-browsers-work&quot;&gt;“How Modern Browsers Work” deep dive, Addy Osmani&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: And then Addy Osmani did a pretty long post a, mid-level overview of how modern browsers work overall, going from, you know, parsing JavaScript in HTML in various ways to using GPUs to put pixels on the page. [46:01]&lt;/p&gt;
&lt;p&gt;Carl: Yeah, it&#39;s funny to me to see, I don&#39;t know, I&#39;ve just been seeing Addy Osmani and Nolan Lawson and Jake Archibald for so long. It&#39;s like, man, how great for them to stay on the top of the game for so long. It&#39;s great. [46:18]&lt;/p&gt;
&lt;h2 id=&quot;biome-stress-testing-wip-nofloatingpromises-lint-rule&quot;&gt;&lt;a href=&quot;https://vercel.com/blog/stress-testing-biomes-nofloatingpromises-lint-rule&quot;&gt;Biome: Stress-testing WIP &lt;code&gt;noFloatingPromises&lt;/code&gt; lint rule&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Carl: One that I like here. I like seeing Vercel and Biome collaborated on stress testing, biomes new, no floating promises lint rule. [46:32]&lt;/p&gt;
&lt;p&gt;I, again, have a soft spot in my heart For Biome, I was a initial backer of Rome back in the day, which was then forked after some maintainer shenanigans into Biome. They never really achieved the original vision, or have not yet at least, which was like unified, like linting compiling, you know, one tool to rule them all kind of thing. [46:41]&lt;/p&gt;
&lt;p&gt;That it was called Rome because all paths, all roads lead to Rome, so it was trying to do all of it. They have achieved a lot of their goals, but not quite enough to really meaningfully claim to do all of it. [47:02]&lt;/p&gt;
&lt;p&gt;Mark: It&#39;s become a pretty solid, a pretty solid formatter, but they never really managed to get into any of the multi tools sharing one a ST side. [47:15]&lt;/p&gt;
&lt;p&gt;Carl: Yeah, right. Oh, that was it. It was because you know, you, you would have like Babel and ES lint and TypeScript and prettier and all of those, and all of them were independently parsing ASTs and then operating on. So like that&#39;s just a lot of wasted effort. So the, the goal was, the original goal was like one AST, all of this stuff talking to that will be an order of magnitude performance improvement. [47:23]&lt;/p&gt;
&lt;p&gt;Mark: Mm-hmm. [47:44]&lt;/p&gt;
&lt;p&gt;Carl: But anyway, so enough background, they have a new no floating promises rule because if you don&#39;t await or you know, respond to a promise, it can cause all sorts of super weird stuff. They say that, you know, a lot of engineers have campfire stories of floating promises taking down production, which is definitely true. [47:44]&lt;/p&gt;
&lt;p&gt;I&#39;ve definitely, a lot of the weirdest errors I&#39;ve ever encountered track back to, oh, we didn&#39;t correctly wait for this promise to resolve, so this is it. This is a fun, deep dive technical writeup of how do you detect that promise. Has not been waited for. What does it even mean to return a promise when TypeScript has a built-in promise? [48:02]&lt;/p&gt;
&lt;p&gt;Like construct? It&#39;s a good read. It&#39;s a good deep dive. [48:23]&lt;/p&gt;
&lt;p&gt;Mark: I should point out that the article was written by Dmitri Metropolis, who just got done organizing Squiggle conf and is also the person who did Doom in Typescripts. [48:27]&lt;/p&gt;
&lt;p&gt;Carl: Oh, it is, Love Dmitri. Love that. [48:34]&lt;/p&gt;
&lt;h2 id=&quot;bun-how-bun-install-is-so-fast&quot;&gt;&lt;a href=&quot;https://bun.com/blog/behind-the-scenes-of-bun-install&quot;&gt;Bun: How &lt;code&gt;bun install&lt;/code&gt; is so fast&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Carl: There is a good deep dive here into Bun Install and how it&#39;s so fast. [48:37]&lt;/p&gt;
&lt;p&gt;They say on average it runs seven times faster than MPM and 17 fast times faster than you yarn. It&#39;s a large post and it&#39;s got a lot of real deep benchmark stuff. Mm-hmm. [48:43]&lt;/p&gt;
&lt;p&gt;Mark: I think Lydia Halley wrote that one actually very well written post. Lot of detail. [48:53]&lt;/p&gt;
&lt;p&gt;Carl: Wait, was she on React? [48:58]&lt;/p&gt;
&lt;p&gt;Mark: I believe she was working for Vercel and left, and I think she actually just joined Bun as a DevRel. [49:00]&lt;/p&gt;
&lt;p&gt;Carl: Great. I&#39;m just always here for like a deep technical dive. So many, so many blog posts are just a little bit more surface level, so seeing something more like a white paper, a technical writeup, I just love I, it&#39;s such a good window into the real challenges that different people around our industries are encountering [49:06]&lt;/p&gt;
&lt;h2 id=&quot;styled-components-fork-for-perf-and-react-19-compat&quot;&gt;&lt;a href=&quot;https://www.sanity.io/blog/cut-styled-components-into-pieces-this-is-our-last-resort&quot;&gt;Styled-Components fork for perf and React 19 compat&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: for folks who are still using style components, the sanity company actually forked the existing now unmaintained library and made a couple major updates. [49:23]&lt;/p&gt;
&lt;p&gt;One, to try to optimize the overall performance and another to try to provide React 19 compat. They say they are not maintaining these forks per se, but they have done the work because they themselves still relied on it. And so they&#39;ve made those, they&#39;ve published those so that other people can benefit from it. [49:35]&lt;/p&gt;
&lt;p&gt;So if you&#39;re still work, still using style components, you may want to take a look at that. [49:57]&lt;/p&gt;
&lt;h2 id=&quot;vite-ssr-custom-getstaticprops&quot;&gt;&lt;a href=&quot;https://www.patron.com/blog/post/vite-ssr-getstaticprops-replacement/&quot;&gt;Vite SSR: Custom &lt;code&gt;getStaticProps&lt;/code&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: Also saw a nice little post that talked about building your own get static props alike equivalent if you&#39;re using Vite for SSR. [50:02]&lt;/p&gt;
&lt;h2 id=&quot;dominic-gannaways-new-framework-ripple&quot;&gt;&lt;a href=&quot;https://github.com/trueadm/ripple&quot;&gt;Dominic Gannaway’s new framework Ripple&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: And in the frameworks that are not actually React, but related category. Dominic Getaway, who originally created a React Delight called Inferno and was on the React team for a while, has built his a new independent framework called Ripple, which tries to pull together some new ideas around template compilation and use of JS syntax, but in a way that&#39;s different than React. [50:11]&lt;/p&gt;
&lt;h2 id=&quot;remix-v3-mj-hints-iframe-like-async-primitives&quot;&gt;&lt;a href=&quot;https://x.com/mjackson/status/1971816432427298951&quot;&gt;Remix v3: MJ hints “iframe-like async primitives”&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: And then Michael Jackson and Ryan Florence continue to drop assorted hints online about what their Remix version three is going to look like. Michael&#39;s latest tweets are saying, what if he could just sort of use iframes or iframe like behavior for async loading? And I really just want to see the actual examples at this point, but they&#39;re dropping hints about what it&#39;ll be like. [50:35]&lt;/p&gt;
&lt;p&gt;And oh, the plan is to actually show stuff off at Remix Jam, which I think is coming up next month. [51:00]&lt;/p&gt;
&lt;p&gt;Carl: Yep. I am skeptical. I don&#39;t know, I, I appreciate the broad strokes of iframe, but the actual security constraints of using iframes is, that&#39;s just not, they&#39;re not good. It&#39;s not pleasant. It&#39;s not, you know, that&#39;s very like 2003 era web development and we stopped doing that because it kind of sucked. [51:07]&lt;/p&gt;
&lt;p&gt;It was hard to make good experiences. If it&#39;s not literally in I frames, that&#39;s very different. So maybe it&#39;ll be better than that. There&#39;s an argument to be made that what he is talking about shares significant overlap with the islands style micro front ends. So, I&#39;m not checked out. I&#39;m curious, but I&#39;m skeptical. [51:27]&lt;/p&gt;
&lt;p&gt;Unfortunately. It sounds like Mo&#39;s having like significant internet challenges in his office right now. So I&#39;m gonna, I&#39;m gonna pull in some of the stuff that would&#39;ve been, you know, that he wanted to talk about. [51:49]&lt;/p&gt;
&lt;h2 id=&quot;react-native-rfc-to-remove-old-architecture&quot;&gt;&lt;a href=&quot;https://github.com/react-native-community/discussions-and-proposals/pull/929&quot;&gt;React Native RFC to remove Old Architecture&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Carl: There&#39;s been a RFC for React native, for a plan for actually removing the old architecture, the previous way of serializing communication between the JavaScript engine and the native layer. [51:57]&lt;/p&gt;
&lt;p&gt;So it&#39;s not only, not only is the new architecture default, they are now proactively communi or they&#39;re proactively planning how to get rid of the old architecture entirely. Well, that&#39;s great. That feels like a big step towards 1.0, like we were talking about before. [52:13]&lt;/p&gt;
&lt;h2 id=&quot;cloudflares-new-capn-web-rpc-graphql-alternative&quot;&gt;&lt;a href=&quot;https://blog.cloudflare.com/capnweb-javascript-rpc-library/&quot;&gt;Cloudflare’s new “Cap’n Web” RPC; GraphQL alternative?&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: So CloudFlare announced a new tool called Cap&#39;n Web, which is a RPC system meant for browsers and web servers. [52:28]&lt;/p&gt;
&lt;p&gt;And this was created by the same person who, by Ken and Varta, who had created a couple other serialization libraries, one called Capin Proto, and Capin. Proto works with both c plus plus and JavaScript and possibly a couple other languages. And Capin proto is sort of a follow on that&#39;s specifically meant for use with web and can be sent back and forth using just plain JSON. [52:38]&lt;/p&gt;
&lt;p&gt;I believe the article actually kind of pitches it sort of as an alternative to GraphQL in a way. It actually does a funky little thing where if you make what looks like an initial request for an item and then you get back a promise for that response, you can call map on the promise and. Essentially map over what will be the list of items and say, for example, gimme details on all the child items by their id, but then it&#39;ll actually get batched up into a single request. [53:05]&lt;/p&gt;
&lt;p&gt;So there&#39;s some technical trickery going on there, but it sounds like it&#39;s meant to simplify both making a request back and forth and managing the overhead of what would&#39;ve potentially been many independent requests as well. Thus, the comparison to like a GraphQL style thing. [53:42]&lt;/p&gt;
&lt;p&gt;Carl: Interesting. And also, I&#39;ll shout out. [53:59]&lt;/p&gt;
&lt;p&gt;You know, Cap&#39;n Proto here is spiritually very similar to the challenge, it&#39;s solving a problem that&#39;s spiritually very similar to the new architecture and React Native, like basically, you know, this RPC is going instead of going across like a native JavaScript layer, like a new React native, this is how do you do a similar type of communication between systems across the network boundary? [54:02]&lt;/p&gt;
&lt;p&gt;And the challenge is like the reason you would use something like Cap&#39;n Proto or Protocol Buffers, which you know, there&#39;s kind of competitors there is because the serialization costs and the volume of communication if you&#39;re using JSON, is just much higher, like converting it into a string. It&#39;s basically a string versus a binary data format. [54:25]&lt;/p&gt;
&lt;p&gt;Like the, one of the problems with JS is that you&#39;re encoding not just the data, but also the structure. You&#39;re saying, here&#39;s the object, here&#39;s the keys, here&#39;s what it looks like. And that&#39;s. That&#39;s information. You know, if you&#39;re sending that information across the wire, that&#39;s extra effort. If you already have two, two agents on opposite ends of a network and they say, we agree that our communication is in this format, then you don&#39;t need to send the format across the wire. [54:46]&lt;/p&gt;
&lt;p&gt;So that&#39;s the fundamental like reason why you might use one of these tools instead of just sending JSON over HTTP and yeah, it&#39;s interesting. This is, it&#39;s pretty cool. [55:16]&lt;/p&gt;
&lt;h2 id=&quot;expo-ui-building-swiftui-apps&quot;&gt;&lt;a href=&quot;https://docs.expo.dev/guides/expo-ui-swift-ui/&quot;&gt;Expo UI: Building SwiftUI apps&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Carl: Cool. The Expo had an interesting post talking about using Swift UI in React Native, so that, that&#39;s pretty cool. Like being able to directly, if you&#39;re in, only, if you&#39;re only targeting a native environment, being able to. [55:26]&lt;/p&gt;
&lt;p&gt;Exclusively use native primitives is like a huge win. Like if you don&#39;t, you know, it&#39;s always good to remove compatibility layers if you don&#39;t need the compatibility. So that&#39;s really cool. It&#39;s it, this looks pretty interesting if you&#39;re doing stuff on Mac Os or like Apple TV or things like that. [55:40]&lt;/p&gt;
&lt;h2 id=&quot;tanstack-db-an-interactive-guide&quot;&gt;&lt;a href=&quot;https://frontendatscale.com/blog/tanstack-db/&quot;&gt;TanStack DB: An interactive guide&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: So the TanStack folks recently announced a new package called TanStack DB, which is supposed to be a smart syncing layer on top of TanStack Query that can do things like in-memory filtering and querying of data very efficiently. [55:57]&lt;/p&gt;
&lt;p&gt;And so there was a neat post that was an interactive guide to TanStack db and discussing some of the options and some of the things you can do with it. [56:13]&lt;/p&gt;
&lt;h2 id=&quot;ts-60-may-switch-to-strict-options-by-default&quot;&gt;&lt;a href=&quot;https://github.com/microsoft/TypeScript/issues/62333&quot;&gt;TS 6.0: may switch to &lt;code&gt;strict&lt;/code&gt; options by default&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Carl: TypeScript version six may switch to strict options by default. This is, [56:21]&lt;/p&gt;
&lt;p&gt;Mark: hallelujah. [56:27]&lt;/p&gt;
&lt;p&gt;Carl: Yeah, right. What a long time coming. Like I have treated this as a deep, you know, this has been step one of setting up a new TypeScript project for me since I&#39;ve started using TypeScript. &#39;cause it&#39;s always been the best practice. So I love that they are discussing, switching this over. Yeah. It starts almost a decade ago. We began to add certain options beyond, no implicit any in strict no checks. So, yeah, like almost a decade ago. So that&#39;s the, that&#39;s cool. TypeScript 6.0 will assume that dash dash strict is on unless explicitly disabled, which means specific settings like strict no checks and no implicit any will be enabled unless it&#39;s turned off explicitly. [56:28]&lt;/p&gt;
&lt;p&gt;Woo. Cool. No implicit any is if you don&#39;t turn that off, like you&#39;re not really using Patrick, like it&#39;s just sparkling JavaScript. So that cool. Love that. Love to see this. [57:05]&lt;/p&gt;
&lt;p&gt;Mark: There&#39;s a lot of debates over the nuances of what that concept of turning on strict by default actually means. But I would assume that something along those lines would land and yeah, it&#39;s way overdue. [57:16]&lt;/p&gt;
&lt;h2 id=&quot;shopifys-rn-new-architecture-migration&quot;&gt;&lt;a href=&quot;https://shopify.engineering/react-native-new-architecture&quot;&gt;Shopify’s RN New Architecture migration&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: Alright, last couple ones and then we&#39;re done with the not so lightning. Lightning round Shopify put up a post talking about their migration to the React native new architecture and went through both some pros and cons and pitfalls of what that process involved. [57:28]&lt;/p&gt;
&lt;h2 id=&quot;the-bloat-of-edge-case-first-libraries&quot;&gt;&lt;a href=&quot;https://43081j.com/2025/09/bloat-of-edge-case-libraries&quot;&gt;The Bloat of Edge-Case First Libraries&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mark: And then the last one is from James, who has the really funky username that I&#39;m not even going to try to pronounce, but he&#39;s been working as part of the E 18 E ecosystem speed up process. [57:42]&lt;/p&gt;
&lt;p&gt;In fact, he&#39;s the person that I did a stream on a couple days ago where we talked about my work to make the Immer library faster. And his post looks at like, gives an example of, let&#39;s say you have a math clamp function that takes some arguments. But you don&#39;t want it to crash if someone does something stupid like passing in, you know, a string instead of a number and next thing you know, like two thirds of your function is just validating the inputs before it actually does anything. [57:54]&lt;/p&gt;
&lt;p&gt;And he argues that, you know what? This actually ends up being kind of a waste of space and execution time. And that to a certain extent, if someone passes in bad input, that&#39;s their problem and not your problem, which I can sort of get behind. [58:24]&lt;/p&gt;
&lt;p&gt;Carl: Yeah, interesting. That makes a lot of sense. It&#39;s kind of the right, it&#39;s a challenge between sharing code and doing it inline how when you start trying to do it inline, you end up re-implementing a lot. [58:40]&lt;/p&gt;
&lt;h2 id=&quot;conferences-react-javascript&quot;&gt;Conferences (&lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://confs.tech/javascript&quot;&gt;Javascript&lt;/a&gt;)&lt;/h2&gt;
&lt;p&gt;Carl: Cool. Let&#39;s talk about some conferences. [58:51]&lt;/p&gt;
&lt;h2 id=&quot;react-alicante-oct-2-4&quot;&gt;&lt;a href=&quot;https://reactalicante.es/&quot;&gt;React Alicante&lt;/a&gt; Oct 2-4&lt;/h2&gt;
&lt;p&gt;Carl: We have in like three days, two days. React Alicante in Spain, October 2nd through fourth. [58:53]&lt;/p&gt;
&lt;p&gt;Mark: I will be speaking there. I&#39;m flying out on Wednesday. [59:01]&lt;/p&gt;
&lt;p&gt;Carl: Woo. And then you&#39;re fly. And then you&#39;re flying [59:04]&lt;/p&gt;
&lt;p&gt;Mark: all the back and then flying all the way back across, across the world for to attend React Conf. [59:07]&lt;/p&gt;
&lt;p&gt;Carl: Yep. I&#39;ll be there too. [59:11]&lt;/p&gt;
&lt;h2 id=&quot;react-conf-is-back-oct-7-8-las-vegas-nv-usa&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/react.dev/post/3lmcp4mhmfk2l&quot;&gt;React Conf is back, Oct 7-8&lt;/a&gt; Las Vegas, NV, USA&lt;/h2&gt;
&lt;p&gt;Carl: So yeah, react Conf in Henderson, Nevada, right near Vegas. I&#39;m actually gonna be driving from San Jose, so like if you&#39;re in the Bay Area a couple days before the React conf, lemme know. I don&#39;t know. I&#39;m gonna go hiking, so, we&#39;ll, it&#39;s gonna be an adventure. [59:13]&lt;/p&gt;
&lt;h2 id=&quot;remix-jam-oct-10-toronto-on-ca&quot;&gt;&lt;a href=&quot;https://remix.run/jam/2025&quot;&gt;Remix Jam&lt;/a&gt;, Oct 10, Toronto ON, CA&lt;/h2&gt;
&lt;p&gt;Carl: Then a couple days after React Conf, Remix is doing their own conference in Toronto, the Remix Jam. [59:29]&lt;/p&gt;
&lt;p&gt;So yeah, maybe. We&#39;ll, we will see. It&#39;ll be interesting to see what they come out with. Yeah, I&#39;m curious. Yeah. [59:37]&lt;/p&gt;
&lt;h2 id=&quot;viteconf-oct-9-10-amsterdam-netherlands&quot;&gt;&lt;a href=&quot;https://viteconf.amsterdam/&quot;&gt;ViteConf&lt;/a&gt; Oct 9-10 Amsterdam, Netherlands&lt;/h2&gt;
&lt;p&gt;Carl: Anyway, coincident with that, ViteConf is happening October 9th and 10th in Amsterdam. That&#39;ll be cool. [59:43]&lt;/p&gt;
&lt;p&gt;Love to see what they come out with. [59:50]&lt;/p&gt;
&lt;h2 id=&quot;jsconf-north-america-oct-14-16-chesapeake-bay-md-usa&quot;&gt;&lt;a href=&quot;https://events.linuxfoundation.org/jsconf-north-america/&quot;&gt;JSConf North America&lt;/a&gt; Oct 14-16 Chesapeake Bay, MD, USA&lt;/h2&gt;
&lt;p&gt;Carl: JSConf is doing a couple of events all over the world actually, so they&#39;re doing JSConf North America October 14th through 16th in Chesapeake Bay, Maryland, [59:52]&lt;/p&gt;
&lt;h2 id=&quot;jsconf-chile-oct-24-25-santiago-chile&quot;&gt;&lt;a href=&quot;https://jsconf.cl/&quot;&gt;JSConf Chile&lt;/a&gt; Oct 24-25 Santiago, Chile&lt;/h2&gt;
&lt;p&gt;Carl: and they&#39;re also doing re JSConf Chile, October 24th and 25th in Santiago, Chile. [01:00:03]&lt;/p&gt;
&lt;h2 id=&quot;react-native-london-oct-30-31&quot;&gt;&lt;a href=&quot;https://www.reactnativelondon.co.uk/&quot;&gt;React Native London&lt;/a&gt; Oct 30-31&lt;/h2&gt;
&lt;p&gt;Carl: We&#39;ve also got, after that React Native London, October 30th and 31st, [01:00:10]&lt;/p&gt;
&lt;p&gt;Mark: and Mo runs that, so you should totally be there and support him [01:00:18]&lt;/p&gt;
&lt;h2 id=&quot;react-india-oct-31-nov-1-goa-india&quot;&gt;&lt;a href=&quot;https://www.reactindia.io/&quot;&gt;React India&lt;/a&gt; Oct 31 Nov 1 Goa, India&lt;/h2&gt;
&lt;p&gt;Carl: after that, there&#39;s React India October 31st and November 1st, [01:00:22]&lt;/p&gt;
&lt;h2 id=&quot;wey-wey-web-nov-17-18-malaga-spain&quot;&gt;&lt;a href=&quot;https://www.weyweyweb.com/&quot;&gt;Wey Wey Web&lt;/a&gt; Nov 17-18 Malaga, Spain&lt;/h2&gt;
&lt;p&gt;Carl: and then the Wey Wey Web, I think I&#39;m pronouncing that right. It says it&#39;s a yay, yay conference, international conference for ux. But yeah, that&#39;s happening in Malaga, Spain, November 17th and 18th. [01:00:26]&lt;/p&gt;
&lt;h2 id=&quot;react-summit-nov-18-21-new-york-ny-usa&quot;&gt;&lt;a href=&quot;https://reactsummit.us/&quot;&gt;React Summit&lt;/a&gt; Nov 18-21 New York, NY, USA&lt;/h2&gt;
&lt;p&gt;Carl: And then we&#39;ve got React Summit happening in New York, November 18th through 21st. [01:00:39]&lt;/p&gt;
&lt;p&gt;So that&#39;s cool. We&#39;ll see. Maybe I can make it to that. It&#39;s in my hometown, so Yeah, that&#39;d be great. [01:00:43]&lt;/p&gt;
&lt;h2 id=&quot;react-advanced-nov-28th-london-uk&quot;&gt;&lt;a href=&quot;https://reactadvanced.com/&quot;&gt;React Advanced&lt;/a&gt; Nov 28th, London UK&lt;/h2&gt;
&lt;p&gt;Mark: And then React. React Advanced is November 28th, all and although it&#39;s uh, inconveniently the day after us Thanksgiving this year, they had done it in late October, previous years, and I think since they&#39;re not doing React Berlin, they bumped the schedule for React Advance to be sort of in the middle where those would&#39;ve been. [01:00:48]&lt;/p&gt;
&lt;h2 id=&quot;outro&quot;&gt;Outro&lt;/h2&gt;
&lt;p&gt;Carl: That&#39;s everything we got for you this month. Thank you so much for joining us. We&#39;ll be back on the last Wednesday of the month probably, although we had to reschedule this month again, sorry. Or we will be back in your podcast feed just as soon as we can. We gather sources from, actually this month we pretty much only gathered sources from Reactive Fly. [01:01:08]&lt;/p&gt;
&lt;p&gt;It was a good month for, you know, us staying up to date. Yeah, generally we do subscribe to this week in React, which is a great source. Follow lots of people on Blue Sky and Twitter, the React JS subreddit and just, you know, generally all over the internet. We try and stay in touch. If you see anything that you think that we should be aware of, definitely post. [01:01:25]&lt;/p&gt;
&lt;p&gt;Actually, you should just post it to the Tech News and Reads channel here. I would love it if we could have some more chatter going on there and it really does help us stay on top of things and helps me understand it. If, you know, if you post a link and then you and somebody else have a conversation, I will read that and it will inform my opinion. [01:01:46]&lt;/p&gt;
&lt;p&gt;So yeah, it&#39;s a great way to do it. If this is a show that you get value from and wanna support, best way to do so is by reviewing us on whatever platform you listen to or tell your friends and coworkers about it. So, you know, send &#39;em a link. Cheers. Thanks so much for listening. [01:02:02]&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2025-09</link><guid isPermaLink="false">reactiflux-tmir-2025-09</guid><pubDate>Fri, 26 Sep 2025 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>TMiR 2025-08: Nx compromised; no more throwing promises; Remix-ing new component models</title><description>&lt;iframe width=&quot;100%&quot; height=&quot;180&quot; frameborder=&quot;no&quot; scrolling=&quot;no&quot; seamless=&quot;&quot; src=&quot;https://share.transistor.fm/e/c1870e69&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#new-releases&quot;&gt;00:47&lt;/a&gt;]&lt;/code&gt; New releases
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#ts-59&quot;&gt;00:51&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-5-9/&quot;&gt;TS 5.9&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#ts-60-may-enable-strict-by-default-and-change-other-defaults&quot;&gt;02:50&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/robpalmer.bsky.social/post/3lxar2cp5rs2p&quot;&gt;TS 6.0 may enable \`strict\` by default&lt;/a&gt; and &lt;a href=&quot;https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript%206.0.0%22&quot;&gt;change other defaults&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#react-native-081&quot;&gt;03:46&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactnative.dev/blog/2025/08/12/react-native-0.81&quot;&gt;React Native 0.81&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#next-155&quot;&gt;05:40&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://nextjs.org/blog/next-15-5&quot;&gt;Next 15.5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#preact-11-beta&quot;&gt;07:10&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/preactjs/preact/releases/tag/11.0.0-beta.0&quot;&gt;Preact 11 beta&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#hydration-20&quot;&gt;07:39&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/preactjs/preact/issues/4442&quot;&gt;Hydration 2.0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#bun-1221&quot;&gt;07:52&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bun.com/blog/release-notes/bun-v1.2.21&quot;&gt;Bun 1.2.21&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#native-yaml-support-definitely-not-going-to-cause-any-problems&quot;&gt;08:54&lt;/a&gt;]&lt;/code&gt; Native YAML support. Definitely not going to &lt;a href=&quot;https://ruudvanasseldonk.com/2023/01/11/the-yaml-document-from-hell&quot;&gt;cause any problems&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#tanstack-db-beta&quot;&gt;10:21&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://tanstack.com/blog/tanstack-db-0.1-the-embedded-client-database-for-tanstack-query&quot;&gt;Tanstack DB beta&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#ghost-v6&quot;&gt;11:30&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://ghost.org/changelog/6/&quot;&gt;Ghost v6&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#main-content&quot;&gt;13:09&lt;/a&gt;]&lt;/code&gt; Main Content
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#react-api-changes-updates&quot;&gt;13:13&lt;/a&gt;]&lt;/code&gt; React API changes / updates
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#react-deprecating-the-throw-a-promise-suspense-trigger-method&quot;&gt;13:24&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/facebook/react/pull/34032&quot;&gt;React deprecating the “throw a promise” Suspense trigger method&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#discussion-between-dan-dominik-and-ricky-about-how-to-support-multiple-react-versions-if-at-all&quot;&gt;16:20&lt;/a&gt;]&lt;/code&gt; Discussion between Dan, Dominik, and Ricky about &lt;a href=&quot;https://bsky.app/profile/tkdodo.eu/post/3lv4rhr4mrs2i&quot;&gt;how to support multiple React versions (if at all)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#github-discussion-with-joe-about-why-no-context-selectors-api-or-signals-research-into-data-modeling-and-why-concurrent-stores-are-the-current-focus-area&quot;&gt;17:43&lt;/a&gt;]&lt;/code&gt; Github discussion with Joe about &lt;a href=&quot;https://github.com/reactjs/rfcs/pull/119#issuecomment-3214971470&quot;&gt;why no context selectors API or signals, research into data modeling, and why “concurrent stores” are the current focus area&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#pr-for-concurrent-stores-skeleton&quot;&gt;21:25&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/facebook/react/pull/33215&quot;&gt;PR for “concurrent stores” skeleton&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#third-party-react-concurrent-store-ponyfill-package&quot;&gt;23:13&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/thejustinwalsh/react-concurrent-store&quot;&gt;Third-party \`react-concurrent-store\` ponyfill package&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#lee-robinsonss-reflections-on-the-react-community-wrap-up-post&quot;&gt;26:39&lt;/a&gt;]&lt;/code&gt; Lee Robinsons’s &lt;a href=&quot;https://leerob.com/reflections&quot;&gt;“Reflections on the React Community”&lt;/a&gt; wrap-up post&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#remix-doing-its-own-component-model&quot;&gt;31:18&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/mjackson/status/1954975322157486408&quot;&gt;Remix doing its own component model??&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#remix-3-and-the-end-of-react-centric-architectures&quot;&gt;36:46&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://thenewstack.io/remix-3-and-the-end-of-react-centric-architectures/&quot;&gt;Remix 3 and the End of React-Centric Architectures&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#popular-nx-packages-compromised-on-npm&quot;&gt;37:21&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.aikido.dev/blog/popular-nx-packages-compromised-on-npm&quot;&gt;Popular nx packages compromised on npm&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#last-month-eslint-plugin-prettier-maintainers-were-targeted-this-is-a-much-broader-attack&quot;&gt;39:43&lt;/a&gt;]&lt;/code&gt; Last month &lt;a href=&quot;https://snyk.io/blog/maintainers-of-eslint-prettier-plugin-attacked-via-npm-supply-chain-malware/&quot;&gt;eslint-plugin-prettier maintainers were targeted&lt;/a&gt;, this is a much broader attack&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#-lightning-round-&quot;&gt;41:31&lt;/a&gt;]&lt;/code&gt; ⚡ Lightning round ⚡
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#react-strict-dom-vs-react-native-for-web-in-2025&quot;&gt;41:33&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://shift.infinite.red/react-strict-dom-vs-react-native-for-web-in-2025-bb91582ef261&quot;&gt;React Strict DOM vs React Native for Web in 2025&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#faster-jsonstringify&quot;&gt;43:34&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://v8.dev/blog/json-stringify&quot;&gt;Faster JSON.stringify()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#node-2218-unflags-ts-type-stripping-support&quot;&gt;44:56&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://nodejs.org/en/blog/release/v22.18.0&quot;&gt;Node 22.18 unflags TS type-stripping support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#waku-switches-to-vites-wip-rsc-support&quot;&gt;46:23&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://waku.gg/blog/migration-to-vite-plugin-rsc&quot;&gt;Waku switches to Vite’s WIP RSC support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#rari-a-fast-react-framework-with-rsc-support-built-with-rust&quot;&gt;47:00&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://ryanskinner.com/posts/how-i-built-a-full-stack-react-framework-4x-faster-than-nextjs-with-4x-more-throughput&quot;&gt;Rari, a fast React framework with RSC support built with Rust&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#selecting-values-from-query-results-as-well-as-the-useless-usecallback&quot;&gt;47:52&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://tkdodo.eu/blog/react-query-selectors-supercharged&quot;&gt;Selecting values from query results&lt;/a&gt;, as well as &lt;a href=&quot;https://tkdodo.eu/blog/the-useless-use-callback&quot;&gt;The Useless useCallback&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#ts-postmortem-effect-ts-experimental-ts-fork&quot;&gt;48:26&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://effect.website/blog/ts-plus-postmortem/&quot;&gt;TS+ postmortem (Effect-TS experimental TS fork)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#react-usetransition-update-ordering-details&quot;&gt;50:48&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://jordaneldredge.com/notes/react-rebasing/&quot;&gt;React useTransition update ordering details&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#a-clock-that-doesnt-snap-techniques-for-fixing-hydration-of-values-like-dates&quot;&gt;51:13&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://ethanniser.dev/blog/a-clock-that-doesnt-snap/&quot;&gt;“A Clock that Doesn’t Snap”&lt;/a&gt;, Techniques for fixing hydration of values like dates&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#react-cache-its-about-consistency&quot;&gt;51:36&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://twofoldframework.com/blog/react-cache-its-about-consistency&quot;&gt;React Cache: It’s about consistency&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#self-hosting-next-at-scale&quot;&gt;52:26&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://dlhck.com/thoughts/the-complete-guide-to-self-hosting-nextjs-at-scale&quot;&gt;Self-hosting Next at scale&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#server-and-client-component-composition-in-practice&quot;&gt;53:26&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://aurorascharff.no/posts/server-client-component-composition-in-practice/&quot;&gt;Server and Client Component Composition in Practice&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#conferences-react-javascript&quot;&gt;54:04&lt;/a&gt;]&lt;/code&gt; Conferences (&lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://confs.tech/javascript&quot;&gt;Javascript&lt;/a&gt;)
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#react-universe-conf-sept-2-4-2025-wrocaw-poland&quot;&gt;54:06&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.reactuniverseconf.com/&quot;&gt;React Universe Conf&lt;/a&gt; Sept 2-4, 2025\. Wrocław, Poland&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#waysconf-sept-16-17&quot;&gt;54:14&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.waysconf.com/&quot;&gt;WaysConf&lt;/a&gt; Sept 16-17&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#cascadiajs-sept-18-19-seattle-wa-usa&quot;&gt;54:21&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://cascadiajs.com/2025&quot;&gt;CascadiaJS&lt;/a&gt; Sept 18-19 Seattle, WA, USA&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#cascadiajs-sept-18-19-seattle-wa-usa&quot;&gt;54:26&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://cascadiajs.com/2025&quot;&gt;CascadiaJS&lt;/a&gt; Sept 18-19 Seattle, WA, USA&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#react-alicante-oct-2-4&quot;&gt;54:32&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactalicante.es/&quot;&gt;React Alicante&lt;/a&gt; Oct 2-4&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#react-conf-is-back-oct-7-8-las-vegas-nv-usa&quot;&gt;54:51&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/react.dev/post/3lmcp4mhmfk2l&quot;&gt;React Conf is back, Oct 7-8&lt;/a&gt; Las Vegas, NV, USA&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#remix-jam-oct-10-toronto-on-ca&quot;&gt;54:56&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://remix.run/jam/2025&quot;&gt;Remix Jam&lt;/a&gt;, Oct 10, Toronto ON, CA&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-08#outro&quot;&gt;55:10&lt;/a&gt;]&lt;/code&gt; Outro&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Hello everyone. Thank you for joining us for the August edition of this Month in React. As we recap what&#39;s going on with React, react native in the web we&#39;re coming to you live from Reactive Flux, the place for professional developers using React. I&#39;m Carl. [00:00]&lt;/p&gt;
&lt;p&gt;I&#39;m a staff product developer and freelance community leader here at Reactive Flux, where I do community programs like this event and write some code to help keep the community running. [00:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Hi, I&#39;m Mark. I maintain Redux. I try to find time to maintain Redux. Life is busy these days and my day job is working at Replay where we&#39;ve built a time traveling debugger for JavaScript and are also attempting to get in on the AI app generating craze. [00:22]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Mo is unfortunately out this month, he seems to have food poisoning or something similar. So he&#39;s gonna take a break and I&#39;m gonna do my best on React Native news, which is only Okay. [00:37]&lt;/p&gt;
&lt;h2 id=&quot;new-releases&quot;&gt;New releases&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; But yeah, let&#39;s start off with some new releases. Mark, tell us about new TypeScript. [00:47]&lt;/p&gt;
&lt;h2 id=&quot;ts-59&quot;&gt;&lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-5-9/&quot;&gt;TS 5.9&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; The TypeScript release train keeps on rolling. They&#39;ve just put out TypeScript 5.9. Few points of interest out of this one. They&#39;ve updated some of the options for generating any new TypeScript project. They&#39;ve simplified the initial TS config, JSON that gets generated. They also have support for the upcoming JavaScript import, defer syntax. This is a new thing. That is coming down the pipeline for JavaScript engines where you can use the defer keyword in an import statement and the JavaScript runtime will know that it needs to go read this file, but it won&#39;t try to actually load and execute that JavaScript right away. [00:51]&lt;/p&gt;
&lt;p&gt;Right now, when you do imports, everything&#39;s imported and executed synchronously. This can have a lot of effect on startup time, and so the import, defer keyword is meant to la effectively lazy load some pieces of the JS system without having to use the the separate import statement. So TypeScript now at least has support for that syntax, but in a sense it won&#39;t do anything until JavaScript engines fully support actually doing something with that. One thing that I personally am excited for is that TS 5.9 now has support for expandable hover previews. If you, if you ever work with TypeScript, you have big type definitions, you know that TypeScript often cuts down the amount of information it shows about a type in the hover preview or, you know, the types are deeply nested and you, you don&#39;t already know like what is inside this field. So ts 5.9 now has support for actually being able to drill down into hover previews. you do need to have an updated version of VS code to make use of that as well. But as someone who has spent too much time fiddling with those settings, I&#39;m actually very excited about that one. [01:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, that sounds great. [02:48]&lt;/p&gt;
&lt;h2 id=&quot;ts-60-may-enable-strict-by-default-and-change-other-defaults&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/robpalmer.bsky.social/post/3lxar2cp5rs2p&quot;&gt;TS 6.0 may enable \`strict\` by default&lt;/a&gt; and &lt;a href=&quot;https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript%206.0.0%22&quot;&gt;change other defaults&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And then along with that, there are a couple bits about the future of TypeScript. So right now we&#39;re on 5.9. The TypeScript team has said that the go port of the TypeScript compiler will become a TypeScript 7.0. They&#39;ve put out some news and plans on the roadmap for TypeScript 6.0. There&#39;s an issue in some discussion about making the strict flag the default, or maybe not the entire strict flag, but maybe graduating some of the specific settings, like strict null checks to be turned on by default. As a maintainer, that makes me very, very happy. I&#39;m tired of seeing people post issues against my library saying, your library doesn&#39;t work. Right. And the problem is they didn&#39;t have TypeScript in strict mode in the first place. So. still to be worked out, but it&#39;s good to see that they are trying to figure out the transition plan for all this. [02:50]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Definitely super cool. [03:44]&lt;/p&gt;
&lt;h2 id=&quot;react-native-081&quot;&gt;&lt;a href=&quot;https://reactnative.dev/blog/2025/08/12/react-native-0.81&quot;&gt;React Native 0.81&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; We&#39;ve also got React native releasing version uh, O 81. Obviously I am not anywhere near as deeply versed in React native as Mo would be. So, uh, hopefully we&#39;ll have him around to catch us up again later on. But we&#39;ve talked a little bit about what&#39;s coming on, what&#39;s in this release in previous months. [03:46]&lt;/p&gt;
&lt;p&gt;Nothing here struck me as super new. They&#39;re deprecating, the safe area view which they talked about as being originally an iOS specific. Component in order to support, you know, the safe area because of the notch. But now Android has notches too, and it doesn&#39;t work very well for that. So it&#39;s being deprecated and they&#39;re leaning on the, Safe Area Context. They recommend that you migrate to the React native safe Area context library for that. They are also defaulting to Android 16 now in React Native. They had an, a curious call out that seems strange to me. They say predictive back gesture is now enabled by default for apps targeting Android 16 and just , the phrase predictive back gesture. [04:07]&lt;/p&gt;
&lt;p&gt;Is, I don&#39;t know, it seems like a lot to me. I know gestures, you have to predict them and whatever, and I guess everything is now gestures, but I have my phone sent to use buttons still, so I don&#39;t know what they&#39;re talking about, but that sounds complicated. It also talks like, you know, if you have overridden your, the back behavior of your app, then you may need to migrate or change how your app works. [04:50]&lt;/p&gt;
&lt;p&gt;So man, if only you could reliably go back in Native apps isn&#39;t the web great. They also are introducing pre-compiled iOS builds, which they say cuts the compile time by up to You know, 10 x so like one 10th the compiled time. It used to be in projects where react native is a primary dependency. [05:11]&lt;/p&gt;
&lt;p&gt;And they&#39;ve got better error rendering in the dev tools as well, which is great. it now shows the original message in Stack trace of uncut JavaScript errors. So how, how lovely to know where your errors come from, [05:29]&lt;/p&gt;
&lt;h2 id=&quot;next-155&quot;&gt;&lt;a href=&quot;https://nextjs.org/blog/next-15-5&quot;&gt;Next 15.5&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Next 15.5 came out. A couple things worth noting from this one. They now have turbo pack builds for production in beta. Turbo Pack had previously really only been used for local development, and so they&#39;ve been cranking away on trying to get it to full compatibility for production builds. And it seems like that&#39;s getting close. They now have node support for middleware. They&#39;ve got some TypeScript improvements, like actually having full typing for routes. So it&#39;ll catch things like mistyped link tags as well as trying to get rid of the old next lint command. [05:40]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, the middleware support for no JS also seems like a pretty big step. You know, one of the main complaints, a large complaint about next is how difficult it is to run yourself not on Vercel. So supporting a more generic runtime for your middleware seems really great. [06:16]&lt;/p&gt;
&lt;p&gt;I haven&#39;t run into this with next specifically, but I have run into. Compatibility issues between edge runtimes and node JS code. it&#39;s such a constraint if you&#39;re trying to run on, edge runtime, which is, you know, okay, so next Vercel is they have their Edge Runtime, in title case. [06:33]&lt;/p&gt;
&lt;p&gt;But also, you know, CloudFlare workers are also a very similar kind of runtime that offer a similar set of constraints. And man, you just can&#39;t use a lot of the node ecosystem when you&#39;re in one of those constrained environments. So this, this should open up compatibility quite a lot it sounds like to me. [06:51]&lt;/p&gt;
&lt;h2 id=&quot;preact-11-beta&quot;&gt;&lt;a href=&quot;https://github.com/preactjs/preact/releases/tag/11.0.0-beta.0&quot;&gt;Preact 11 beta&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Meanwhile, the Preact library, the, the longstanding smaller replacement for React just put out a beta for version 11. Preact has always been dom slash web only, not native. And the calling cards have been that it&#39;s much smaller than full-blown react, but maintains most API compatibility up to a certain point. [07:10]&lt;/p&gt;
&lt;p&gt;I think they&#39;ve stopped trying to, maintain compatibility for some of the newer React APIs in 18 and 19. [07:33]&lt;/p&gt;
&lt;h2 id=&quot;hydration-20&quot;&gt;&lt;a href=&quot;https://github.com/preactjs/preact/issues/4442&quot;&gt;Hydration 2.0&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; A couple of the big points this one they finally dropped IE 11 support and they&#39;ve improved hydration and a number of other small tweaks. So it&#39;s always good to see that them making progress as well. [07:39]&lt;/p&gt;
&lt;h2 id=&quot;bun-1221&quot;&gt;&lt;a href=&quot;https://bun.com/blog/release-notes/bun-v1.2.21&quot;&gt;Bun 1.2.21&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Every so often it&#39;s nice to check in on what BUN and Dino and everything are doing. BUN has a 1.2 point 21 release out. A couple things that caught my eye on it were the bun sql, you know, standard library tool now supports MySQL, MariaDB, SQL Light, and Postgres, all from like one dependency. [07:52]&lt;/p&gt;
&lt;p&gt;And that&#39;s pretty great. I don&#39;t know. Nice to have, nice to be able to swap those out. I wonder what the experience of actually trying to swap them out would be, because the different engines have slightly different constraints. I appreciate that. That&#39;s cool. I, I love, especially for like SQL light stuff, it just seems so simple as maybe overstating it, but it&#39;s really nice to be able to just spin up a database without installing dependencies. [08:12]&lt;/p&gt;
&lt;p&gt;So, uh, kudos to BUN for adding that. They&#39;ve also added native YAML support which is great. You know, it&#39;s lovely to not for parsing confi common configuration file formats again, seems like something that should be in the standard library. However, I am generally aware of YAML as like a very challenging format to parse. [08:35]&lt;/p&gt;
&lt;h2 id=&quot;native-yaml-support-definitely-not-going-to-cause-any-problems&quot;&gt;Native YAML support. Definitely not going to &lt;a href=&quot;https://ruudvanasseldonk.com/2023/01/11/the-yaml-document-from-hell&quot;&gt;cause any problems&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; There&#39;s a, a blog post that lives in my brain about YAML from 2023 titled The YAML document from Hell Enumerates some of the complexities one of my favorites being sex decimal numbers. And so a, a, apparently a common older format quirk is that some, ranges of ports that you might try to map in, say a Docker file like Port 22, mapped to port 22 is not parsed as 22, colon 22. [08:54]&lt;/p&gt;
&lt;p&gt;It&#39;s parsed as a sexagesimal, IE base 60, number. So then instead of the string 22:22, you get 1,342. Which is not a valid port mapping. So like things like there are like 30 different ways to put Booleans to encode Boolean in a YAML file. And so like yes and no are one of the valid formats. And so if you&#39;re trying to do a list of countries using standard country codes, apparently Norway will be interpreted. [09:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Is NO, [09:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; So like, just hearing about that, those kind of like foot guns that exist in the format and apparently like variations in parser behavior is an existing problem throughout the YAML ecosystem. So, great. I [09:56]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; let&#39;s add another parser. [10:09]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right what? Great. One more parser there. Wonderful. I can&#39;t wait to hear about what weird, terrible, hellish bugs emerge from this new parser. [10:09]&lt;/p&gt;
&lt;p&gt;Good luck to them. I hope it&#39;s good. [10:19]&lt;/p&gt;
&lt;h2 id=&quot;tanstack-db-beta&quot;&gt;&lt;a href=&quot;https://tanstack.com/blog/tanstack-db-0.1-the-embedded-client-database-for-tanstack-query&quot;&gt;Tanstack DB beta&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Next up the folks over in the Tan Stack Collective have just put out a beta of the new Tan Stack database library. it&#39;s a little interesting to describe. It&#39;s a layer that&#39;s supposed to sit on top of your tan stack query setup, and it kind of acts as like a local in client database and sync engine. [10:21]&lt;/p&gt;
&lt;p&gt;So you can still use 10 set query to do the fetching, but the database layer is supposed to provide a normalized view of the data, supposed to have very fast in client updates. I believe this has been worked on by Kyle Matthews, who you may know as the original creator of the Gatsby framework back in the day. He&#39;s been working on electric sql, which is itself a AYC engine layer, so he clearly now has some expertise over there. So, looks like a very potentially interesting tool for fast client side data management. [10:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; it seems like hand stack throwing their hat in the ring on like sync engines at a slightly different level of abstraction than like where React query sits. Further to the backend, further to here&#39;s your internal store being managed, not just request caching. [11:12]&lt;/p&gt;
&lt;p&gt;So that&#39;s cool. Yeah. Interesting. [11:28]&lt;/p&gt;
&lt;h2 id=&quot;ghost-v6&quot;&gt;&lt;a href=&quot;https://ghost.org/changelog/6/&quot;&gt;Ghost v6&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; A very small shout out, a little bit further away, but this is a tool that I evaluated for use in a professional setting on a React project. So I&#39;m gonna shout out a new major version. Ghost version 6.0 has been released. Ghost is a, like CMS, an open I believe open source CMS. [11:30]&lt;/p&gt;
&lt;p&gt;And they generally seem nice. They seem great. I, you know, as contrasting things like Contentful or Ghost or Substack or Medium or what have [11:47]&lt;/p&gt;
&lt;p&gt;you, uh, Word, right? They sit in a good spot in the niche. They, so they&#39;re now, they&#39;re announcing as part of this version six that they have added distribution. [11:57]&lt;/p&gt;
&lt;p&gt;So now you can automatically publish your posts from Ghost across social platforms. So like they, they call out Blue Sky Flipboard Threads, MAs it on WordPress, interestingly and Ghost, they can, so, okay, so you can publish the ghost and it will be distributed elsewhere on, in Ghost, I don&#39;t know, I don&#39;t know what that means. [12:09]&lt;/p&gt;
&lt;p&gt;Or any other social web platform as well as like analytics. And they talk a lot about how much revenue they have passed along to publishers on their platform. So they show their earnings broken down into like. Hosting revenue and platform revenue, and it&#39;s like $38 million for their own company and like a hundred million dollars through, you know, distributed to people publishing on ghosts. [12:28]&lt;/p&gt;
&lt;p&gt;So like that, I don&#39;t know. That&#39;s great. They, they shout out 4 0 4 Media, which is a site that I&#39;m familiar with and did not realize hosted on this platform. So, you know, love that. That&#39;s great. I love a, love a open source media platform that&#39;s doing good work right now. [12:56]&lt;/p&gt;
&lt;h2 id=&quot;main-content&quot;&gt;Main Content&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool. Uh, That&#39;s all the new releases we have for now, into the main content. [13:09]&lt;/p&gt;
&lt;h2 id=&quot;react-api-changes--updates&quot;&gt;React API changes / updates&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; All right, so we have a roundup of a number of topics related to changes in reacts APIs. So get your technical hats on for these. [13:13]&lt;/p&gt;
&lt;h2 id=&quot;react-deprecating-the-throw-a-promise-suspense-trigger-method&quot;&gt;&lt;a href=&quot;https://github.com/facebook/react/pull/34032&quot;&gt;React deprecating the “throw a promise” Suspense trigger method&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; The first one is that Sebastian Markbåge put up a PR to officially deprecate the throw a promise technique for triggering suspense. So let&#39;s wind backwards and unpack a little bit, like what is that in the first place and why does it even exist? So. Currently up through React 17 and 18. The suspense component came out in I think like 16.6, but originally it was only used with React lazy for importing and deferring loading of components. There wasn&#39;t an official like react for data fetching method, but there was the unofficial experimental. [13:24]&lt;/p&gt;
&lt;p&gt;This is never documented, but the code exists and works. If you wanted to trigger suspense in terms of like, you know, managing some data fetching yourself, the super secret technique was that you would throw a promise from within your component. And the reason the React team picked this was because we. It like, to a certain extent, it enabled them to reuse the existing infrastructure from catching errors within a component where, you know, it kind of conceptually, you have a catch block around the actual component call and then react knows, here&#39;s where I&#39;m rendering in the tree, and then it can sort of bubble up the behavior to some ancestor component that was supposed to catch it for errors. [14:07]&lt;/p&gt;
&lt;p&gt;It&#39;s a, you know, actual error handling with the component did catch. And for suspense it&#39;s, you know, where&#39;s the nearest suspense component in the tree? And so this was never officially documented, but, you know, library maintainers and people investigating the code saw that it was there. And so it&#39;s been known and used by the community and libraries for years. [14:57]&lt;/p&gt;
&lt;p&gt;And so pretty much anything, any library that had suspense support built in was internally just throwing a promise. So with React 19, we now have the use hook built in, and that is the officially documented publicly, you know, described way to actually trigger suspense. If you look at the use hook, I think internally it does actually still end up throwing a promise last time I checked, but it&#39;s now an implementation detail. And it does some other things in there as well. So if you read a pr, they are officially going to get rid of the throwing a suspense, throwing a promise technique for a number of reasons. Some of it has to do with internal implementation details and optimizations. Some of it has to do with, well, we can have the lit rules look for uses of the use hook and flag any, any time you try to put that in a place that it&#39;s not legal to do so. [15:19]&lt;/p&gt;
&lt;h2 id=&quot;discussion-between-dan-dominik-and-ricky-about-how-to-support-multiple-react-versions-if-at-all&quot;&gt;Discussion between Dan, Dominik, and Ricky about &lt;a href=&quot;https://bsky.app/profile/tkdodo.eu/post/3lv4rhr4mrs2i&quot;&gt;how to support multiple React versions (if at all)&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; This did then lead to some discussion on Blue Sky amongst a couple of the maintainers like Dominic Dorf, Meister of React Query asking, well, if this comes out in like, you know, 19 3, 19 4, something like that, how are we supposed to manage having our own libraries work with both like React 18 and 19.1 and 19.4 at the same time when there&#39;s now three different variations of what is a legal way to trigger suspense. there was a bit of a back and forth on that. One partial answer was, your library can check if the use hook is exported from React and prefer that if it exists and fall back the promise if it doesn&#39;t. One of the React team members, Ricky said, well, you probably should just focus on supporting the latest version of React. I&#39;ll admit, I feel like that kind of hand waves the problem a little bit. [16:20]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; How great if everyone could just rely on that. Yeah. [17:17]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; yeah, because I mean that, that probably also means putting out new major versions of our own libraries, which is then an effort and also has a ripple effect on the ecosystem. I mean, I don&#39;t really want to publish a new version, a new major version of, you know, some of the Redux libraries just to support that. But it&#39;s good to see that there, that we are actually making headway on that now that 19 is out. [17:20]&lt;/p&gt;
&lt;h2 id=&quot;github-discussion-with-joe-about-why-no-context-selectors-api-or-signals-research-into-data-modeling-and-why-concurrent-stores-are-the-current-focus-area&quot;&gt;Github discussion with Joe about &lt;a href=&quot;https://github.com/reactjs/rfcs/pull/119#issuecomment-3214971470&quot;&gt;why no context selectors API or signals, research into data modeling, and why “concurrent stores” are the current focus area&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Another interesting point. So buried in a blue sky thread Joseph from the React team said that. They&#39;re planning to not actually implement an idea that they had discussed a few months ago where they&#39;d said, we are going. [17:43]&lt;/p&gt;
&lt;p&gt;They were thinking about allowing you to call use or use context inside of use memo as a way to optimize context. So backing up technical detail on this one, the weakness of context has always been that when you update the context value, every component that reads it will re-render. And then at that point, all the children inside of that will re-render as well, just because react defaults to when any component renders. [18:01]&lt;/p&gt;
&lt;p&gt;It just keeps on going all the way down the tree unless you optimize it to stop. And so the problem is if you have, you know, fairly large objects with multiple fields as your context value, some of your components probably only care about one or two of those fields. But as soon as you update that object at all, every component that read the context will re-render. And so it ends up leading to, you know, potentially lots of components rendering slower render performance, et cetera. So years ago, like, I don&#39;t know, 20 18, 20 19 there was a user land RFC suggestion that react should add context selectors as an API. So, you know, kind of similar to like a, a react redux use selector, but optimize for context instead. [18:28]&lt;/p&gt;
&lt;p&gt;And so that proposal has been around for a long time. Andrew Clark even briefly tried implementing a proof of concept of a context selector&#39;s API in like 2020, and then it didn&#39;t go anywhere. So a few months ago, the React team said we&#39;re, we&#39;re thinking about a. Use context in use memo as a alternative to actually writing a selector for context. And apparently their thinking has evolved and they&#39;re not going to do that at this point because the React compiler basically gives you 95% of the performance benefits that a context selector&#39;s API would have without them needing to design and ship a context selector&#39;s API, into React itself. If you think about it, the point of the compiler is that it not only optimizes like your used memos and whatever, it also optimizes the render output. And so if you have a component that reads from a context, it will, it will render because the context value changed. But if none of the data that it needs from the context has updated, it will end up skipping all of its children. And so that drastically cuts down on how many components would render when the context updates. So there was actually some very, very good discussion in the longstanding context, selectors RFC thread, just within the last two or three days where a few people were agitating for react should really add contact selectors. It&#39;ll get rid of all these other state management libraries. [19:18]&lt;/p&gt;
&lt;p&gt;And I left a couple comments trying to explain how the compiler solves this problem and Joe Savona from the React team then went on and wrote some very extensive, detailed comments talking about how the React team has been doing research into these ideas of data flow analysis. And how do you manage large amounts of state and how does it compare with react context and signals and, you know, third party state management libraries. [20:57]&lt;/p&gt;
&lt;h2 id=&quot;pr-for-concurrent-stores-skeleton&quot;&gt;&lt;a href=&quot;https://github.com/facebook/react/pull/33215&quot;&gt;PR for “concurrent stores” skeleton&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And so he confirmed that, they&#39;re not planning to add a context selector&#39;s, API and instead their thought process is actually now about this concept called concurrent stores. So as best as I understand it, the idea is that right now a third party library like Redux or Zeus stand relies on the use sink external store hook to be able to tell react that there&#39;s a subscription data changed. This component needs to update, but. That has the limitation that it doesn&#39;t play well with suspense and transitions because if something got updated in the middle, react has to throw away work in progress and do a full render. It can&#39;t do all the, you know, the performance optimizations and with transitions. So it sounds like this concurrent store idea is supposed to be like an improved, better version of use sync external store where you can still have some data living externally. You can still have selectors saying like, only these components need to update. But the concurrent store would wrap the updates in a concurrent transition compatible way. [21:25]&lt;/p&gt;
&lt;p&gt;So he said that they&#39;re really trying to put some focus in API design onto figuring out what a concurrent store, API ought to look like. And it sounds like they&#39;ve got some, some amount of progress on that design to talk about in the near future. They did put up a pull request a couple months ago with the skeleton for concurrent stores. It&#39;s just like defining some, some data types and adding some tests. There&#39;s no implementation code yet. [22:41]&lt;/p&gt;
&lt;h2 id=&quot;third-party-react-concurrent-store-ponyfill-package&quot;&gt;&lt;a href=&quot;https://github.com/thejustinwalsh/react-concurrent-store&quot;&gt;Third-party \`react-concurrent-store\` ponyfill package&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; However a third party developer that I saw has actually looked at all the tests and then gone off and tried to implement a third party hacky polyfill version of what it looks like the concurrent stores are supposed to be and publish that as a React concurrent store package. I&#39;m very excited about this and I have not had time to actually try it out yet. So the takeaways are a. Most developers probably won&#39;t need to use some of these things directly. A lot of this is going to be more library maintainer concerns but it&#39;s very good to see that the React team is actively thinking about how, how can we make React apps faster? What are the best ways to manage complex state? How can we better integrate with third party libraries and try to make all the react features like transitions work well in those cases? [23:13]&lt;/p&gt;
&lt;p&gt;So there&#39;s your info dump for the day. [24:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Love that. I had said some stuff just before we started recording, just before we started the event about, I&#39;ve been playing with effect effect ts lately, which we, we&#39;ve mentioned once or twice now. And again and when you&#39;re talking about these concurrent stores and you know, like I&#39;m reading the post from Joe Savona talking about context selectors. [24:10]&lt;/p&gt;
&lt;p&gt;One of the things that I think effect solves well is dependency injection. it&#39;s focused on the backend, that actually says in the documentation like, effect is not meant for front end. They&#39;re, it may seem good, but it&#39;s not what it&#39;s meant for. And they&#39;re interested in exploring that, but they haven&#39;t yet. [24:30]&lt;/p&gt;
&lt;p&gt;But I think the execution model is pretty similar. It&#39;s like, it&#39;s almost like componentized backend a little bit. But with type safe dependency injection and error generation and, and using effect pretty extensively for the last three or four weeks has really made me. Itch for some of those benefits in React. [24:44]&lt;/p&gt;
&lt;p&gt;I&#39;d be curious to see if they can, well, I&#39;ve got a little bit more connections to make on that later on, so I guess I&#39;ll end it there. I don&#39;t know, just about dependency injection in effect and type safety and whatever in the context of selecting data on the front end, I think is interesting. [25:05]&lt;/p&gt;
&lt;p&gt;I think there&#39;s still a lot of API design exploration to do there. [25:20]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I definitely recommend taking a few minutes to read some of Joe&#39;s comments in that context. Selector&#39;s, RFC thread, if you got some time, and then I, I expect there be, and to be at least some announcements, possibly about concurrent stores coming up at React Conf in October. [25:25]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Interesting. [25:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Then the last item out of the React related changes they merged a PR to add what looks like a new suspense timeline to the dev tools. They&#39;ve got a demo video in there, and so it looks like it&#39;s actually now a, a third extra tab in the Chrome dev tools. So you&#39;ve got the component tree, you&#39;ve got the performance tab, and then there&#39;s a suspense timeline tab. And it looks like what it does is a mixture of , a rough rec out, like rectangle outline of the shapes of your components, but not showing like any of the HTML, just like , here&#39;s the structure of what your component tree looks like visually, and some highlighting for which ones have suspended, and then possibly some further details in a sidebar about which components suspended and when. So. as a dev tools type person, I&#39;m always very, very excited to see new dev tools capabilities being added. [25:42]&lt;/p&gt;
&lt;h2 id=&quot;lee-robinsonss-reflections-on-the-react-community-wrap-up-post&quot;&gt;Lee Robinsons’s &lt;a href=&quot;https://leerob.com/reflections&quot;&gt;“Reflections on the React Community”&lt;/a&gt; wrap-up post&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Okay, let&#39;s go into. We talked a little bit about Lee Rob leaving Vercel recently and going to Cursor. He put out a really great blog post called Reflections on the React Community. This sort of summarizing his, his time at Next and in React. Yeah, I don&#39;t know. Mark, do you wanna start? [26:39]&lt;/p&gt;
&lt;p&gt;I don&#39;t know if I have anything specific to start here. It&#39;s a really good overall hot, you know, 30,000 foot view of his time. [26:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So Lee Robinson was the primary developer relations person for Vercel for about five plus years. And even in my own head like. when I hear the word devel Lee is pretty much the first person that comes to mind. And Lee was always in a very tough position. You know, CEL is, you know, a somewhat divisive company in some ways. You know, it, it puts out some wonderful technology. They&#39;ve genuinely done a lot to advance the React ecosystem makes, make apps, you know, easier to host, they build next, et cetera. But, you know, they&#39;ve also been accused of, you know, the React team and pushing reacts direction and making changes just for profit. And you know, as I&#39;ve discussed in some previous episodes and blog posts, like a lot of that is undeserved criticism or, you know, misinterpretation of the background. And so, as you know, the visible face of Vercel and the next team we was. Frequently the target of a lot of those criticisms, even though, you know, none of it was, you know, like he wasn&#39;t the one developing the tool set or, you know, making the businesses decisions. And one of the things I&#39;ve always appreciated about Lee is that, you know, he was always very, very active in discussions on, you know, Reddit and Twitter and Hacker News. You know, like not just in like the next sub Reddit, but you know, the React Reddit hacker news discussions. Like anytime a discretion thread would happen, he would pop up and, you know, respond to comments, offer feedback, and, you know, yeah. [27:07]&lt;/p&gt;
&lt;p&gt;Because of his position. Like occasionally people would interpret it as being like a corporate ish response, but he was always very, very active in being in there. And unfortunately that meant he was also the, you took the brunt of a lot of the criticism. So a lot of his blog post, you know, talks about, you know, react has, react has become stable, it&#39;s grown, the community&#39;s big. [28:48]&lt;/p&gt;
&lt;p&gt;Working with any community is really, really hard and it can be very stressful and very frustrating. He talks a bit about some of the difference between, you know, a, you know, more broadly like projects like React versus Rails you know, dealing with some of the community management acts, aspects, how you get feedback. He even talks some about, incentives like the React team in some ways builds react for meta. And sometimes that means that, you know, issues slip through the cracks. You know, like Meta isn&#39;t trained to make money off React. Well, in some ways Vercel is. And he also talks about, you know, some of the, the server component development process, how that was marketed how it&#39;s been interpreted. And he talks about burnout. And boy can I understand and sympathize with this one on multiple levels. responding to issues and comments, even when they&#39;re positive, takes a lot of time and effort. And when a lot of those comrades are, you know, angry and critiquing and throwing around conspiracy theories, that wears away at you a lot. So I have a huge amount of respect for Lee and everything he&#39;s done for Vercel and next in the React community over the last several years. And so I appreciated him doing the writeup and I could totally identify with a lot of the points he was making in here. [29:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, definitely. And it&#39;s funny, I, you know, nobody, nobody&#39;s ever paid me to do reactive flux things, and it&#39;s a very different type of like community management. But I definitely, a lot of what he said resonated with me. But from that perspective, and also just like, I don&#39;t know. The burnout and, you know, thanklessness of wrangling a large group of people is is pretty real. [30:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So it&#39;s a post worth reading. And Lee, if you ever hear this, thank you for all your time and effort. [30:58]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Thank you for all your time and effort. It&#39;s been a lot. It&#39;s been great. what you said about like Lee really being like you think Lee, Robb is definitely a canonical dev rel, like showed the world how dev rel happens. I think [31:04]&lt;/p&gt;
&lt;p&gt;really, uh, personified it. [31:16]&lt;/p&gt;
&lt;h2 id=&quot;remix-doing-its-own-component-model&quot;&gt;&lt;a href=&quot;https://x.com/mjackson/status/1954975322157486408&quot;&gt;Remix doing its own component model??&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Maybe in two remix doing its own component model. [31:18]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; we&#39;ve been doing sort of a running observation of what in the world are Michael Jackson and Ryan Florence doing over in their corner. They, they continue to drop cryptic hints on Twitter about the directions of remix version three. And while this isn&#39;t, trying to keep this from being the, just repeat what they say on Twitter podcast, but, you know, so far all we have to go by is the cryptic hints that they&#39;re dropping. And so we&#39;ve gone from, you know, just Remix v3 is its own thing to, it&#39;s going to use Preact to, well, actually, I guess now it&#39;s not using Preact. [31:22]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, so I, I, I guess they want to explore a similar kind of problem space as react and React are, I mean, I, you know, that&#39;s the signals that they&#39;re putting out here is that like, well, these existing tools do not solve the problem well enough, we believe. And so we&#39;re going to explore that. And, you know, I, fair enough, I, I think there is more room to explore there. [32:01]&lt;/p&gt;
&lt;p&gt;I know some discussion in reactive flux on this, you know, on this link earlier Ricky had said like, you know, good luck to them. I think they may find some of the same constraints as React has, and I think that&#39;s pretty likely. But, you know, also there&#39;s a term coming to mind uh, path dependence, which is, you know, like what the options available to you going forward are dependent on the choices you made in the past. [32:26]&lt;/p&gt;
&lt;p&gt;And so, like, you know, react is pretty far down, it&#39;s set of chosen decisions. So I think there is some value in backing out and saying like, well, hey, maybe we&#39;re in a local maximum. Let&#39;s explore some other possible paths here. And yeah, so let me pick up where I sat down earlier talking about effect. [32:49]&lt;/p&gt;
&lt;p&gt;Right. So like, it, it feels to me like a componentized model for the backend. And it&#39;s really interesting because each, you know, backend component that you write, which I&#39;m, they call &#39;EM Effects, but you know, this is a React chat, so I&#39;m going to translate. So you write like a backend component and it has a type safe it uses TypeScript generics to describe its outputs, its possible errors emitted and what dependencies it requires to be passed in effects. [33:08]&lt;/p&gt;
&lt;p&gt;These backend components can like, make their own dependencies available, you know, or they can say, you need to provide this at runtime. And so that&#39;s pretty, that feels very similar in use to me in like ideology to me as what React is trying to do. [33:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; your props and your output. [33:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right. Props, return value, boom. Like, okay, every return value is JSX and it doesn&#39;t really matter specifically what, but you know. Yeah. So it, it, it&#39;s really interesting having error safety as well as dependency type safety because like props are one thing. But you know that there&#39;s no way to describe that. [33:56]&lt;/p&gt;
&lt;p&gt;This component being rendered relies on being nested underneath a context provider. Like you can do a runtime check for that, but you can&#39;t do a a compiled time type safety check for that. And that&#39;s the kind of thing that effect is enabling. It&#39;s that kind of dependency injection. Like what environment does this expect to be run in, not just what inputs does it expect to be provided. [34:16]&lt;/p&gt;
&lt;p&gt;I. So like using that in a backend context, you know, in this, going all in on this in a backend space where it&#39;s intended to be used has really made me reflect on the experience of using React and what kind of, what some of its pain points are. And so I guess like the React core team has gone all in on the transition boundary between the client and the server with server components. [34:41]&lt;/p&gt;
&lt;p&gt;Like they wanna really make that smooth and instead of this request response model, just have it be more fluid and you know, whatever. Yeah, streaming all that which is great and that&#39;s a very interesting direction to explore, but it does not address all of those kinds of things of how do we make a robust. [35:04]&lt;/p&gt;
&lt;p&gt;Reliable application that can be statically verified, will run as expected. And that is more of where effect is coming at the problem space of code authoring from. And yeah, I think the, like both of those are really interesting viable problem spaces to explore. And if Remix is saying, we think the path that React is exploring is not the ideal user experience, maybe they&#39;re gonna go more in something like this. [35:23]&lt;/p&gt;
&lt;p&gt;And if they do, this is wild, pure, rampant speculation on my part right now. But if they, you know, I can see a possible world where one thing that might interest them is the same kind of guarantees that effect is trying to provide. And that would be valuable. Like, so I, I, yeah, I&#39;ll still be paying attention to this. [35:51]&lt;/p&gt;
&lt;p&gt;I do have a greater degree of skepticism it&#39;s a huge expansion of what scope of problem they&#39;re exploring. So that&#39;s challenging. But you know, they&#39;ve taken on big challenges before. Shipped things. So yeah, we&#39;ll be paying attention and see what they see. What they come out with. [36:09]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yeah, so basically where things stand at the moment are lots of cryptic hints on Twitter. It&#39;s not gonna be a React. It&#39;s a different component model. They want to make it LLM friendly. We still haven&#39;t seen any good examples, but I&#39;m assuming they will do a big announcement at the Remix Jam conference, which I think is in [36:24]&lt;/p&gt;
&lt;p&gt;October. [36:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Oh, they had just done, just recently announced that. [36:43]&lt;/p&gt;
&lt;h2 id=&quot;remix-3-and-the-end-of-react-centric-architectures&quot;&gt;&lt;a href=&quot;https://thenewstack.io/remix-3-and-the-end-of-react-centric-architectures/&quot;&gt;Remix 3 and the End of React-Centric Architectures&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And then along with the rampant speculation bit I saw a blog post just earlier, earlier today, but it was from a month ago called Remix Three and the End of React Centric Architectures, which also does a bit of, you know, speculating, hypothesizing on the ways various frameworks have chosen to build things and says, you know, maybe it&#39;s a good thing that Remix three is supposedly going back to a more web native framework approach. [36:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, and they&#39;re doing Remix Jam right after React Conf in Toronto, so, yeah. We&#39;ll, we&#39;ll shot that out at the, in the conferences section at the end too. [37:13]&lt;/p&gt;
&lt;h2 id=&quot;popular-nx-packages-compromised-on-npm&quot;&gt;&lt;a href=&quot;https://www.aikido.dev/blog/popular-nx-packages-compromised-on-npm&quot;&gt;Popular nx packages compromised on npm&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Okay, moving on. our last main content subject for the month, there&#39;s another security vulnerability. I feel like we, you know, we, we, we talk about these somewhat regularly it feels like, but some pretty popular NX packages were compromised on NPM. So NX is a, [37:21]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Monorepo management and build tool [37:39]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; yes. It&#39;s a competitor to turbo repo. I, I, I think I would [37:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; to, to some extent. Yeah. [37:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; it got wholesale compromised as in like everyone who installed it had a post install script run that swiped a bunch of configuration files like .env and .npmrc, anywhere you can think that credentials might be stored in your project workspace or elsewhere on your system. [37:47]&lt;/p&gt;
&lt;p&gt;This script looked for and then uploaded to GitHub. So that&#39;s really bad. This is a, this is a, this is a theoretical exploit that I&#39;ve been hearing about for the last 10 years. Like the vulnerabilities possible by NPM post install has been a subject that comes up every couple of years. And, oh boy, this is a bad one. [38:07]&lt;/p&gt;
&lt;p&gt;The, this blog post discussing the vulnerability said that when they were, they were monitoring GitHub. &#39;cause the way the script worked is it would, if it found your GitHub credentials, if it found a valid SSH key for GitHub or I guess actually an API token, not an SSH token. But if it found a GitHub API token, then it would silently upload a new repo. [38:27]&lt;/p&gt;
&lt;p&gt;So it, it, which is interesting because it was a public repo on GitHub created by this malware. So there was some kind of public metric that could be gathered for its scope of impact. And so there this blog post says that they saw at one point, 1,400 of these repos created by this malware script. [38:51]&lt;/p&gt;
&lt;p&gt;So like, that&#39;s quite a number of people who got all of their secrets swiped off their system. One interesting thing that this malware did is if it found an LLM tool on your system, it would write a prompt to that LLM asking it to find all of the secrets on your system. So like if you, if you&#39;ve got Claude, like suddenly Claude is maliciously gathering all of your tokens from your entire system that it can, you know, whatever it can access. [39:11]&lt;/p&gt;
&lt;p&gt;Like, holy shit, that&#39;s bad. That&#39;s not, yeah, that&#39;s, that&#39;s pretty bad. [39:38]&lt;/p&gt;
&lt;h2 id=&quot;last-month-eslint-plugin-prettier-maintainers-were-targeted-this-is-a-much-broader-attack&quot;&gt;Last month &lt;a href=&quot;https://snyk.io/blog/maintainers-of-eslint-prettier-plugin-attacked-via-npm-supply-chain-malware/&quot;&gt;eslint-plugin-prettier maintainers were targeted&lt;/a&gt;, this is a much broader attack&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; you know, last month we discussed a, another vulnerability where the eslint-plugin-prettier package maintainers were targeted. So I guess this, this could be, this could be the same attackers perhaps, and they were just more successful in that, you know, instead of. Getting busted while trying to steal credentials for a major packages maintainers. [39:43]&lt;/p&gt;
&lt;p&gt;They actually got it. And so now they have successfully executed on this broader attack that they were maybe trying to do earlier. Woo. That&#39;s bad. And it sucks &#39;cause like what do you, how do you even respond? What do, how can you keep yourself safe if just [40:02]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Monitor your, monitor your dependencies, actually look at lock files. I, I can say that there are some good tools out there that will watch PRS for, you know, like what packages are getting updated in this PR and, you know, warn you if any of them have known PO known problems. That&#39;s definitely a valuable thing to include in the CI process. [40:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. True. But man, one of the, one of the challenging parts about this particular vulnerability is the. I, I remember half of the discussion that I saw earlier, and I can&#39;t remember where I found it, so I can&#39;t quickly refresh my memory, but there, a, a popular tool uses NX at latest on like, you know, project Bootstrap. [40:39]&lt;/p&gt;
&lt;p&gt;So like, you know, if you&#39;re just casually idly using whatever project generator this was to start something new oops. You got the latest NX that was compromised. So like that&#39;s not even, yeah, I don&#39;t know. Just like [40:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; the comment was actually in the, the tech reads and news link and it was [41:13]&lt;/p&gt;
&lt;p&gt;the NX vs. Code extension. [41:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Okay. Okay. That&#39;s a li that&#39;s at least a little bit different vs. Code extension is not as popularly used as a, you know, project bootstrap tool, but yeah, not great. [41:19]&lt;/p&gt;
&lt;h2 id=&quot;-lightning-round-&quot;&gt;⚡ Lightning round ⚡&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Okay. Into the lightning round. [41:31]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Go for it. [41:33]&lt;/p&gt;
&lt;h2 id=&quot;react-strict-dom-vs-react-native-for-web-in-2025&quot;&gt;&lt;a href=&quot;https://shift.infinite.red/react-strict-dom-vs-react-native-for-web-in-2025-bb91582ef261&quot;&gt;React Strict DOM vs React Native for Web in 2025&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I saw this post from, it was a blog post summarizing a podcast from react Native Radio from Infinite Red. Great Folks. They spoke with the maintainers of React strict Dom and React native for web comparing and contrasting. We had discussed React strict dom a about a year and a half ago. [41:33]&lt;/p&gt;
&lt;p&gt;It was like February of 2024. And a, a lot of what we did was compare and contrast it against React native for web. So this was like very precisely the type of conversation we had except with the maintainers who aren&#39;t just speculating and guessing and inferring, but like they, no, they made this like, they know how it works. [41:54]&lt;/p&gt;
&lt;p&gt;They know what the trade-offs are. So it&#39;s got some really great architectural diagrams explaining the distinction and what the difference is. It lines up pretty well with what I recall us discussing and they have a really good little flow chart for making decisions about you know, TLDR should you adopt React strict dom. [42:13]&lt;/p&gt;
&lt;p&gt;And they did a nice little handy visual, which I&#39;m gonna go to the Happy Path through the Happy Path on, which is do you already have React native app? No. Will you need web support eventually? Yes. Use extract Dom. So like basically they&#39;re saying this is a great low level set of abstractions that will make it more feasible to reuse your code in more places. [42:30]&lt;/p&gt;
&lt;p&gt;You know, like the benefit has always theoretically been that you could reuse much of the code between React native and web. But I&#39;ve tried to do that a couple of times and the practical realities are challenging. Like, you know, just you need to use doing abstractions so that, that work in both places is really hard. [42:54]&lt;/p&gt;
&lt;p&gt;So this acknowledge React native sorry, react strict. Dom sort of acknowledges that and says, rather than trying to make a brand new abstraction on top of both React Native and react dom, we are going to lean more heavily on the web platform as an existing stable abstraction. Which is cool. I like it. [43:12]&lt;/p&gt;
&lt;p&gt;It seems cool. This is a really great blog post. Definitely recommend. [43:31]&lt;/p&gt;
&lt;h2 id=&quot;faster-jsonstringify&quot;&gt;&lt;a href=&quot;https://v8.dev/blog/json-stringify&quot;&gt;Faster JSON.stringify()&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; The V8 JavaScript engine developers put up a post where they said they&#39;ve spent a lot of time trying to optimize js, ON stringy. Think about how many times your code stringys stuff, whether it&#39;s sending back an H TT P response or you know, serializing things into an extension. they go, they go into a bunch of technical detail about how they&#39;ve tried to make this faster. [43:34]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; specifically that problem parsing Jason, Jason Parse performance is exact, like that was the reason for React native doing the new architecture, which they&#39;ve spent like much of the last year communicating and executing on. So yeah, the massive problem for the entire ecosystem, [43:56]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; You know, like other than actually executing the JavaScript code faster, like string finding stuff has to be [44:14]&lt;/p&gt;
&lt;p&gt;one of the most common things your JavaScript code does. So I believe this is supposed to be out in, I think it was like V eight like 13.8 I think it said which is available in Chrome 1 38. And I don&#39;t know what node version will contain that, that version of V eight. But faster is good. [44:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, faster is so good, especially for stringifying. Yeah, man. Just the number of plate serializing and des serializing is one of the largest costs, you know, performance costs like everywhere. So yeah, it&#39;ll love that. That&#39;s great. [44:42]&lt;/p&gt;
&lt;h2 id=&quot;node-2218-unflags-ts-type-stripping-support&quot;&gt;&lt;a href=&quot;https://nodejs.org/en/blog/release/v22.18.0&quot;&gt;Node 22.18 unflags TS type-stripping support&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Node 22 point 18 flags TypeScript type stripping support. [44:56]&lt;/p&gt;
&lt;p&gt;node has had experimental support for. Interpreting TypeScript code and stripping out the types. doesn&#39;t actually check them or anything, but it allows you to take a project authored natively in TypeScript and run it with node without a compilation step, without building it through the TypeScript compiler. [45:02]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Or, or using a tool like TS Node to execute it. [45:21]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yes. Yeah. Right. More directly. This is a replacement for TS node. And that&#39;s great. It&#39;s no longer experimental. It&#39;s, they&#39;re now saying it works. it&#39;s officially blessed, it&#39;s released. Love that. Definitely the ecosystem has moved more from, you know, a long time ago it was very focused on you compile the code and then you take those built artifacts and you run them, and if the type checker fails, you don&#39;t get a built artifact and you know, the metagame here has shifted a little bit more into the. Type checking is one very valuable part of verifying your code statically, but it is not necessarily where the compilation step lives. So, many more projects in my experience have moved towards sort of a parallel model where you have a build step and there is type checking in the project, but it just kind of runs separately from that build step. [45:24]&lt;/p&gt;
&lt;p&gt;So this is, this is a great tool enabling that kind of pattern. And it&#39;s released, it&#39;s done. Yay. [46:16]&lt;/p&gt;
&lt;h2 id=&quot;waku-switches-to-vites-wip-rsc-support&quot;&gt;&lt;a href=&quot;https://waku.gg/blog/migration-to-vite-plugin-rsc&quot;&gt;Waku switches to Vite’s WIP RSC support&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; A couple RSC and project related updates. We&#39;ve talked previously about how, vet itself has been missing some pieces in that would enable like full RSC support for vet based frameworks and that there has been a work in progress PR to try to add better RSC primitives into vet somehow. So the Waku RSE framework is now making use of vet&#39;s work in progress plugin rather than whatever layers they had built for themselves internally already. So it&#39;s good to see that that&#39;s coming together. [46:23]&lt;/p&gt;
&lt;h2 id=&quot;rari-a-fast-react-framework-with-rsc-support-built-with-rust&quot;&gt;&lt;a href=&quot;https://ryanskinner.com/posts/how-i-built-a-full-stack-react-framework-4x-faster-than-nextjs-with-4x-more-throughput&quot;&gt;Rari, a fast React framework with RSC support built with Rust&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And then I saw an announcement for a new framework called rari, which is sort of an acronym for something, some, something faster rendering somehow. But it looks like a, it&#39;s supposed to be an RSC based framework that has a custom low level layer. Built with rust. And of course, as we all know, rust makes everything faster. But it sounds like someone looked at some benchmarks of, you know, like next RSC performance and said, I think I can do better myself. And has built their own full stack framework that has RSC support using a custom low level rust layer. [47:00]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Neat. Cool. Yeah, they do claim four, four times faster component rendering under load four milliseconds versus 17 milliseconds. And that&#39;s cool. I don&#39;t know that if your problematic performance is 17 milliseconds, that&#39;s maybe not the worst problem to have. [47:37]&lt;/p&gt;
&lt;h2 id=&quot;selecting-values-from-query-results-as-well-as-the-useless-usecallback&quot;&gt;&lt;a href=&quot;https://tkdodo.eu/blog/react-query-selectors-supercharged&quot;&gt;Selecting values from query results&lt;/a&gt;, as well as &lt;a href=&quot;https://tkdodo.eu/blog/the-useless-use-callback&quot;&gt;The Useless useCallback&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Then separate from all that the always wonderful Dominic Dome TK Dodo has put up a couple great blog posts. One is the latest in the series of posts on how to use React Query correctly in this case, how to use the ability to select values out of a query. So maybe like you have a, a list items query and you only want to grab one of &#39;em. And then you also put up a post talking about how a lot of time you don&#39;t actually need the used callback hook. There&#39;s a lot of cases that used callback is actually kinda useless. So excellent reading as always. [47:52]&lt;/p&gt;
&lt;h2 id=&quot;ts-postmortem-effect-ts-experimental-ts-fork&quot;&gt;&lt;a href=&quot;https://effect.website/blog/ts-plus-postmortem/&quot;&gt;TS+ postmortem (Effect-TS experimental TS fork)&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Can you tell I&#39;ve been using effect and it&#39;s just been living in my brain for a lot of the time. I, as part of reading it, I found this blog post that they wrote pretty recently beginning of July. Where they had done, they had actually forked the TypeScript compiler wholesale and tried to do what they called TypeScript plus TS plus. [48:26]&lt;/p&gt;
&lt;p&gt;And I guess part of the idea, as you, as I&#39;ve been using effect, I can feel very strongly the desire for JavaScript to support a couple of different tools that I, I I, I had remembered seeing as proposals many, many years ago and waited many, many years for them to land mo specifically the pipeline operator for composing functional, you know, programs together and pattern matching, which resembles a switch case, but lets you match on like properties and attributes and, you know, things like that in a different way, in a more flexible way. So. They tried to fork the compiler to make errors a little bit better. Basically, like they&#39;re really pushing the bounds of everything you can do in TypeScript and JavaScript. [48:45]&lt;/p&gt;
&lt;p&gt;So the, as part of that, they explored fully forking, TypeScript and this, so this is a great postmortem of their design goals and what they were trying to achieve and why they have backed off of that. Yeah, how far we went and what went wrong, what we learned it&#39;s pretty good. Definitely very interesting like this. [49:35]&lt;/p&gt;
&lt;p&gt;Just reading more about effect, I can just like, it just the amount of the number of different places where they&#39;re pushing the envelope and like iterating on the state of the art in web on the backend is just really palpable to me. So, definitely an interesting read here. [49:55]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I, I, I thought it was a good blog post. Honestly, I also partly appreciate it just because they said we spent like an entire year trying to build this thing and it didn&#39;t pan out. Here&#39;s what we tried and what we learned and what went wrong in the process. I, I, appreciate good art, good write-ups, like that. [50:12]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, right. I feel like this is good to read as an engineer because it&#39;s just a really good postmortem where you can really understand their thought process of why they tried to do this, what benefits they were hoping to get, and what challenges they ran into that made them say, okay, this is not achievable. [50:29]&lt;/p&gt;
&lt;p&gt;Just really good, really good read. [50:46]&lt;/p&gt;
&lt;h2 id=&quot;react-usetransition-update-ordering-details&quot;&gt;&lt;a href=&quot;https://jordaneldredge.com/notes/react-rebasing/&quot;&gt;React useTransition update ordering details&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I saw a good short post from Jordan Eldridge, who I believe created the web amp recreation of Winamp. Where gave some, gave some thoughts on what happens when you do a React used transition and you apply some other state updates while the transition is going on. Short but useful, especially since transitions are a newer part of the react rendering model. [50:48]&lt;/p&gt;
&lt;h2 id=&quot;a-clock-that-doesnt-snap-techniques-for-fixing-hydration-of-values-like-dates&quot;&gt;&lt;a href=&quot;https://ethanniser.dev/blog/a-clock-that-doesnt-snap/&quot;&gt;“A Clock that Doesn’t Snap”&lt;/a&gt;, Techniques for fixing hydration of values like dates&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And then I also saw a post called A Clock That Doesn&#39;t Snap, which talks about some of the dealing with inconsistency problems between server rented values like dates, and then what happens when you try to actually hydrate that on the client. And a couple different techniques for trying to make it not be inconsistent. [51:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Interesting. [51:35]&lt;/p&gt;
&lt;h2 id=&quot;react-cache-its-about-consistency&quot;&gt;&lt;a href=&quot;https://twofoldframework.com/blog/react-cache-its-about-consistency&quot;&gt;React Cache: It’s about consistency&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; There was an article on React Cache. It&#39;s about consistency, so React added the cache, API for use on the server, and it&#39;s, it&#39;s a sort of memo function. The idea is that you can get, like if you need to make one fetch call in multiple places while doing server side rendering, you can try to ensure that it only happens once during that particular render pass on the server. And so the post goes into some detail on what the cache method is, why you want, would want to use it, and how it, you know, actually using that cashed value during the render can produce more consistent results during the render process. And then goes into a little bit more about like some of the conceptual behavior of React components and what is pure versus impure anyway. [51:36]&lt;/p&gt;
&lt;h2 id=&quot;self-hosting-next-at-scale&quot;&gt;&lt;a href=&quot;https://dlhck.com/thoughts/the-complete-guide-to-self-hosting-nextjs-at-scale&quot;&gt;Self-hosting Next at scale&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; saw an article that gave some battle hardened details on the complete guide to self-hosting Next JS at scale. So next is commonly used with Vercel. You can deploy it yourself, but you sometimes have to fill in some of the missing hosting pieces. And so this was a good post that gave and that talked about, you know, what are, what happens when you try to use Next Cache? [52:26]&lt;/p&gt;
&lt;p&gt;And it by default cache is values locally. But if you&#39;ve got multiple copies of the server rendering, now you can have inconsistencies between different instances. So how would you break that out into using a Redis server or something? Instead, how can you handle image optimization and CDN configuration? So if you&#39;re trying to do any self host, you know, next, this looks like a very useful guide. [52:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Love that. Such a good, deep technical writeup of, I mean, right. Self-hosting next is such a big problem that people discuss regularly that I, I just love seeing, you know, a proper writeup about it. [53:14]&lt;/p&gt;
&lt;h2 id=&quot;server-and-client-component-composition-in-practice&quot;&gt;&lt;a href=&quot;https://aurorascharff.no/posts/server-client-component-composition-in-practice/&quot;&gt;Server and Client Component Composition in Practice&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Then finally we have a post from Aurora Scharf who spent a lot of time researching and writing about server components and various usage patterns, and she has an excellent post on server and client component composition in practice, which gives some examples of how you can intermingle server and client components to do some of the work on the server, some of the work on the client figure, and figure out where the boundaries ought to be. [53:26]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. figuring out where the boundaries are should lie in things that&#39;s uh, very challenging. [53:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And I think that&#39;s actually all we&#39;ve got for this month, which is good &#39;cause we&#39;re right about at at time. [53:59]&lt;/p&gt;
&lt;h2 id=&quot;conferences-react-javascript&quot;&gt;Conferences (&lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://confs.tech/javascript&quot;&gt;Javascript&lt;/a&gt;)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool. Let&#39;s wrap up here with some conferences. [54:04]&lt;/p&gt;
&lt;h2 id=&quot;react-universe-conf-sept-2-4-2025-wrocław-poland&quot;&gt;&lt;a href=&quot;https://www.reactuniverseconf.com/&quot;&gt;React Universe Conf&lt;/a&gt; Sept 2-4, 2025\. Wrocław, Poland&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; We got React, Universe coming up in just about a week in September 2nd through fourth in Wroclaw, Poland. [54:06]&lt;/p&gt;
&lt;h2 id=&quot;waysconf-sept-16-17&quot;&gt;&lt;a href=&quot;https://www.waysconf.com/&quot;&gt;WaysConf&lt;/a&gt; Sept 16-17&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; There&#39;s also Ways Conf September 16th and 17th. Krakow Great. Also in Poland. So yeah, Poland heavy uh, September. [54:14]&lt;/p&gt;
&lt;h2 id=&quot;cascadiajs-sept-18-19-seattle-wa-usa&quot;&gt;&lt;a href=&quot;https://cascadiajs.com/2025&quot;&gt;CascadiaJS&lt;/a&gt; Sept 18-19 Seattle, WA, USA&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Then right after that, Cascadia Js, September 18th and 19th in Seattle. [54:21]&lt;/p&gt;
&lt;h2 id=&quot;cascadiajs-sept-18-19-seattle-wa-usa-1&quot;&gt;&lt;a href=&quot;https://cascadiajs.com/2025&quot;&gt;CascadiaJS&lt;/a&gt; Sept 18-19 Seattle, WA, USA&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Coincident with Squiggle Con September 18th in Boston, which I will be at [54:26]&lt;/p&gt;
&lt;h2 id=&quot;react-alicante-oct-2-4&quot;&gt;&lt;a href=&quot;https://reactalicante.es/&quot;&gt;React Alicante&lt;/a&gt; Oct 2-4&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Then in October we&#39;ve got React Alicante, October 2nd through fourth in Spain. [54:32]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I will be speaking at that one. [54:37]&lt;/p&gt;
&lt;p&gt;I was not going to be there originally, but I will be flying back from Spain and showing up at React Conf in Las Vegas. That&#39;s gonna be a trip. [54:39]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Oh, wild. Yeah. [54:49]&lt;/p&gt;
&lt;h2 id=&quot;react-conf-is-back-oct-7-8-las-vegas-nv-usa&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/react.dev/post/3lmcp4mhmfk2l&quot;&gt;React Conf is back, Oct 7-8&lt;/a&gt; Las Vegas, NV, USA&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; &#39;cause we&#39;ve got, you know, react conf in Las Vegas right. Then October 7th and eighth, [54:51]&lt;/p&gt;
&lt;h2 id=&quot;remix-jam-oct-10-toronto-on-ca&quot;&gt;&lt;a href=&quot;https://remix.run/jam/2025&quot;&gt;Remix Jam&lt;/a&gt;, Oct 10, Toronto ON, CA&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; then, like we mentioned earlier, we&#39;ve got Remix Jam October 10th in Toronto. So if you really, like, you could fly out to Vegas and then fly across the, well, I was gonna say across the country, but it&#39;s a different country. You can fly across the continent to Toronto. [54:56]&lt;/p&gt;
&lt;h2 id=&quot;outro&quot;&gt;Outro&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool. That&#39;s all we got for you today. Thanks so much for joining us. We will be back on the last Wednesday of the month here in the live stage or back in your podcast feed just as soon as we can after that. [55:10]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Thank you all for listening. Hopefully the list of links has been useful and informative. If you are going to be at either Squiggle Con, react Delicate, react Ante, or React conf please say hi. I will be running around possibly wearing my Simpsons picture as a name tag. [55:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; great. Love that. Yeah, same. Likewise. If you see me in Boston or in Las Vegas say, Hey, We gather sources from this week in React Bites, dev the React JS subreddit, and here in Reactive Flux from the uh, tech News and Reads channel. If you see anything that you think we should discuss definitely send it over to us at &lt;a href=&quot;mailto:hello@reactiveflux.com&quot;&gt;hello@reactiveflux.com&lt;/a&gt;. [55:37]&lt;/p&gt;
&lt;p&gt;if this is a show you get value from and wanna support, best way you can do so is by submitting a review on wherever you listen and tell your friends and coworkers about it. Thanks so much. you next month. [55:56]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Take care. [56:04]&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2025-08</link><guid isPermaLink="false">reactiflux-tmir-2025-08</guid><pubDate>Tue, 26 Aug 2025 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>TMiR 2025-07: Vercel shakeups, new React Compiler docs</title><description>&lt;iframe width=&quot;100%&quot; height=&quot;180&quot; frameborder=&quot;no&quot; scrolling=&quot;no&quot; seamless=&quot;&quot; src=&quot;https://share.transistor.fm/e/885fee92&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;h1 id=&quot;this-month-in-react-july-2025&quot;&gt;This Month in React: July, 2025&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#new-releases&quot;&gt;01:17&lt;/a&gt;]&lt;/code&gt; New Releases
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#rn-reanimated-v4&quot;&gt;01:20&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://blog.swmansion.com/reanimated-4-stable-release-the-future-of-react-native-animations-ba68210c3713&quot;&gt;RN Reanimated v4&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#rn-ignite-toolkit-v11&quot;&gt;08:46&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://shift.infinite.red/announcing-ignite-11-bison-f2802a85f94d&quot;&gt;RN Ignite toolkit v11&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#main-content&quot;&gt;10:18&lt;/a&gt;]&lt;/code&gt; Main Content
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#compiler-docs-are-merged-live-docs-and-config-api&quot;&gt;10:21&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/reactjs/react.dev/pull/7868&quot;&gt;Compiler docs are merged!&lt;/a&gt; (&lt;a href=&quot;https://react.dev/learn/react-compiler/introduction&quot;&gt;live docs&lt;/a&gt;, and &lt;a href=&quot;https://react.dev/reference/react-compiler/configuration&quot;&gt;config API&lt;/a&gt;)
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#expo-docs-say-its-on-hold-but-evan-bacon-says-expo-54-may-enable-the-compiler-by-default&quot;&gt;11:42&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://docs.expo.dev/guides/react-compiler/&quot;&gt;Expo docs&lt;/a&gt; say it’s “on hold”, but Evan Bacon says &lt;a href=&quot;https://x.com/Baconbrix/status/1949714155482841094&quot;&gt;Expo 54 may enable the Compiler by default&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#oh-no-more-function-directives-use-memo-and-use-no-memo&quot;&gt;12:45&lt;/a&gt;]&lt;/code&gt; Oh no — &lt;a href=&quot;https://react.dev/learn/react-compiler/incremental-adoption&quot;&gt;more function directives&lt;/a&gt; , “use memo” and “use no memo”&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#directives&quot;&gt;12:51&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://macwright.com/2025/04/29/directive-prologues-and-javascript-dark-matter&quot;&gt;DIRECTIVES&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#good-thread-on-some-history&quot;&gt;13:13&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/en_JS/status/1948502925468467369&quot;&gt;Good thread on some history&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#some-tech-discussion-on-the-complexities-of-making-react-compiler-work-with-oxlint&quot;&gt;14:19&lt;/a&gt;]&lt;/code&gt; Some tech discussion on &lt;a href=&quot;https://github.com/oxc-project/oxc/issues/10048&quot;&gt;the complexities of making React Compiler work with Oxlint&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#directive-prologues-and-javascript-dark-matter&quot;&gt;15:41&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://macwright.com/2025/04/29/directive-prologues-and-javascript-dark-matter&quot;&gt;Directive prologues and JavaScript dark matter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#node-api-support-for-react-native&quot;&gt;18:01&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.callstack.com/blog/announcing-node-api-support-for-react-native&quot;&gt;Node API Support for React Native&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#vercel-shaking-things-up&quot;&gt;21:49&lt;/a&gt;]&lt;/code&gt; Vercel shaking things up
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#leerob-is-at-cursor-now-five-things-he-learned-at-vercel&quot;&gt;22:02&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/leerob/status/1943446393819177342&quot;&gt;Leerob is at Cursor now&lt;/a&gt; — &lt;a href=&quot;https://leerob.com/vercel&quot;&gt;Five Things \[he\] Learned at Vercel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#swc-creator-leaves-focusing-on-swc-for-a-while&quot;&gt;27:43&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/kdy1dev/status/1941129219293225273&quot;&gt;SWC creator leaves, focusing on SWC for a while&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#sam-selikoff-just-joined-to-do-content-and-stuff&quot;&gt;28:01&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/samselikoff/status/1943325592260092298&quot;&gt;Sam Selikoff just joined to do content and stuff&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#nuxt-acquired&quot;&gt;28:23&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/nuxtlabs/status/1942575789645640071&quot;&gt;Nuxt acquired&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#netlify-staff-eng-philippe-serhal-replies-to-the-vercel-deployment-adapters-rfc-from-april&quot;&gt;29:58&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/vercel/next.js/discussions/77740#discussioncomment-13893373&quot;&gt;Netlify Staff Eng Philippe Serhal replies to the Vercel Deployment Adapters RFC from April&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#ryan-carniatos-react-and-signals&quot;&gt;30:48&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=VgGl9i-OBBI&quot;&gt;Ryan Carniato’s “react and signals”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#react-native-unistyles-30-released&quot;&gt;33:09&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.reactnativecrossroads.com/posts/introducing-unistyles-3&quot;&gt;React Native Unistyles 3.0 Released&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#react-router-and-rscs-the-path-forward&quot;&gt;35:39&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://remix.run/blog/react-router-and-react-server-components&quot;&gt;React Router and RSCs: The Path Forward&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#parcel-writeup-for-server-components&quot;&gt;36:57&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://devongovett.me/blog/parcel-rsc.html&quot;&gt;Parcel writeup for Server Components&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#wip-vite-rsc-plugin-support&quot;&gt;37:26&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/vitejs/vite-plugin-react/issues/531&quot;&gt;WIP Vite RSC plugin support&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#-lightning-round-&quot;&gt;38:15&lt;/a&gt;]&lt;/code&gt; ⚡ Lightning round ⚡
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#corbins-history-of-react-through-code-deep-dive&quot;&gt;38:35&lt;/a&gt;]&lt;/code&gt; Corbin’s &lt;a href=&quot;https://playfulprogramming.com/posts/react-history-through-code&quot;&gt;“History of React Through Code”&lt;/a&gt; deep dive&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#tkdodos-thoughts-on-when-usecallback-is-useless&quot;&gt;39:06&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://tkdodo.eu/blog/the-useless-use-callback&quot;&gt;TkDodo’s thoughts on when &lt;code&gt;useCallback&lt;/code&gt; is useless&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#eslint-config-prettier-compromised-as-part-of-an-npm-supply-chain-attack&quot;&gt;39:26&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://safedep.io/eslint-config-prettier-major-npm-supply-chain-hack/&quot;&gt;&lt;code&gt;eslint-config-prettier&lt;/code&gt; compromised&lt;/a&gt; as part of an &lt;a href=&quot;https://socket.dev/blog/npm-phishing-campaign-leads-to-prettier-tooling-packages-compromise&quot;&gt;NPM supply chain attack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#expo-router-demo-by-evan-bacon-ai-rscs-expo-router&quot;&gt;40:48&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/EvanBacon/app-that-builds-apps&quot;&gt;Expo Router demo by Evan Bacon AI + RSCs + Expo Router&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#some-tech-details-on-how-meta-serves-react-pages&quot;&gt;41:16&lt;/a&gt;]&lt;/code&gt; Some tech details on &lt;a href=&quot;https://www.reddit.com/r/reactjs/comments/1ltbw2e/how_does_facebook_serve_react_pages/&quot;&gt;how Meta serves React pages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#nitro-image-library-for-react-native&quot;&gt;41:40&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/mrousavy/react-native-nitro-image&quot;&gt;Nitro Image library for React Native&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#a-very-hacky-way-to-test-rsc-components&quot;&gt;42:08&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.nico.fyi/blog/how-to-test-react-server-component&quot;&gt;A very hacky way to test RSC components&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#a-good-technical-dive-into-improving-inp-in-a-next-app&quot;&gt;42:31&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://medium.com/preply-engineering/how-preply-improved-inp-on-a-next-js-application-without-react-server-components-and-app-router-491713149875&quot;&gt;A good technical dive into improving INP in a Next app&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#extra-css-properties-in-react-native&quot;&gt;42:51&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/facebook/react-native/pull/52284&quot;&gt;Extra CSS Properties in React Native&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#chrome-137-adds-if-support-in-css&quot;&gt;43:16&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://developer.chrome.com/blog/new-in-chrome-137&quot;&gt;Chrome 137 adds &lt;code&gt;if&lt;/code&gt; support in CSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#react-devtools-for-firefox-may-not-get-updated-due-to-review-restrictions&quot;&gt;44:50&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/ricky.fm/post/3ltkxpo5ewk2i&quot;&gt;React Devtools for Firefox may not get updated due to review restrictions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#both-oxlint-and-biome-are-investigating-typed-lint-rule-support-biome-v2-tsgolint&quot;&gt;46:29&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.solberg.is/fast-type-aware-linting&quot;&gt;Both &lt;code&gt;oxlint&lt;/code&gt; and &lt;code&gt;biome&lt;/code&gt; are investigating typed lint rule support&lt;/a&gt; (&lt;a href=&quot;https://biomejs.dev/blog/biome-v2/&quot;&gt;Biome v2&lt;/a&gt;, &lt;a href=&quot;https://github.com/oxc-project/tsgolint&quot;&gt;tsgolint&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#remix-v3-dev-branch-containing-support-packages&quot;&gt;47:49&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/remix-run/remix/tree/v3&quot;&gt;Remix v3 dev branch containing support packages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#react-native-wallet&quot;&gt;48:40&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://blog.swmansion.com/introducing-react-native-wallet-90c1ee103d3e&quot;&gt;React Native Wallet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#deno-v-oracle-update&quot;&gt;50:07&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://deno.com/blog/deno-v-oracle4&quot;&gt;Deno v Oracle update&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#content-independence-day-from-cloudflare-theyre-blocking-ai-crawlers&quot;&gt;51:23&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://blog.cloudflare.com/content-independence-day-no-ai-crawl-without-compensation/&quot;&gt;“Content independence day” from Cloudflare&lt;/a&gt; (they’re blocking AI crawlers)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#some-updated-static-hermes-perf-numbers-release-available-soon-being-tested-internally-at-meta&quot;&gt;52:04&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/tmikov/status/1945348222110859500&quot;&gt;Some updated Static Hermes perf numbers&lt;/a&gt; release available “soon”, being tested internally at Meta&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#state-of-html-survey-is-open&quot;&gt;52:47&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://survey.devographics.com/en-US/survey/state-of-html/2025&quot;&gt;State of HTML Survey is open&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#conferences-react-javascript&quot;&gt;53:26&lt;/a&gt;]&lt;/code&gt; Conferences (&lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://confs.tech/javascript&quot;&gt;Javascript&lt;/a&gt;)
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#big-sky-dev-con-aug-2-bozeman-mt-usa&quot;&gt;53:29&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bigskydevcon.com/&quot;&gt;Big Sky Dev Con&lt;/a&gt; Aug 2 Bozeman, MT, USA&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#kansas-city-developer-conference-aug-13-14-kansas-city-ks-usa&quot;&gt;53:36&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.kcdc.info/&quot;&gt;Kansas City Developer Conference&lt;/a&gt; Aug 13-14 Kansas City, KS, USA&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#react-universe-conf-sept-2-4-2025-wrocaw-poland&quot;&gt;53:47&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.reactuniverseconf.com/&quot;&gt;React Universe Conf&lt;/a&gt; Sept 2-4, 2025. Wrocław, Poland&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#waysconf-sept-16-17&quot;&gt;53:57&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.waysconf.com/&quot;&gt;WaysConf&lt;/a&gt; Sept 16-17&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#cascadiajs-sept-18-19-seattle-wa-usa&quot;&gt;54:06&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://cascadiajs.com/2025&quot;&gt;CascadiaJS&lt;/a&gt; Sept 18-19 Seattle, WA, USA&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#squiggle-conf-sept-17-18-boston-ma-usa&quot;&gt;54:10&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://squiggleconf.com/&quot;&gt;Squiggle Conf&lt;/a&gt; Sept 17-18 Boston, MA, USA&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#react-conf-is-back-oct-7-8&quot;&gt;54:17&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/react.dev/post/3lmcp4mhmfk2l&quot;&gt;React Conf is back, Oct 7-8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#remix-jam-oct-10-toronto-canada&quot;&gt;54:22&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://remix.run/jam/2025&quot;&gt;Remix Jam&lt;/a&gt; Oct 10 Toronto, Canada&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-07#outro&quot;&gt;54:33&lt;/a&gt;]&lt;/code&gt; Outro&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Hello everyone. Thank you for joining us for the July edition of this month in React, where we recap and digest all of the latest news and developments in React. React Native, and across the web. We&#39;re coming to you live from Reactive Flux, the place for professional developers using React. [00:00]&lt;/p&gt;
&lt;p&gt;I am a staff product developer and freelance community leader here in React Flux where I do community programs like these events and build tools to help keep the community operating. May be making more progress on one of those. So maybe I&#39;ll do a product announcement in the next couple of weeks or months maybe. [00:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Hi, I&#39;m Mark. I maintain Redux. My day job is at Replay where we&#39;ve built a time traveling debugger and are currently trying to get in on the AI app generating craze. And other than that, I may moderate things and read too many articles. [00:32]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; My name is Mo. I head the mobile team at Theo. I&#39;m an active member of the React Native community and I organize the React Native London Meetup and the React Native London Conference. Excited to be here. [00:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Excellent. Yeah. We missed you Last month there was react native things to discuss. [00:58]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; We had no idea what we were talking about. [01:01]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Not even a little bit. We basically just punted on it. Great. Cool. [01:03]&lt;/p&gt;
&lt;p&gt;I&#39;m gonna skip job market stuff. I don&#39;t think I&#39;m gonna do that anymore. &#39;cause like who even knows what&#39;s going on? The jobs are wild and the indicators are. Too fuzzy to really be that useful, I think. [01:07]&lt;/p&gt;
&lt;h2 id=&quot;new-releases&quot;&gt;New Releases&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Mo, tell us about some React native new releases. [01:17]&lt;/p&gt;
&lt;h2 id=&quot;rn-reanimated-v4&quot;&gt;&lt;a href=&quot;https://blog.swmansion.com/reanimated-4-stable-release-the-future-of-react-native-animations-ba68210c3713&quot;&gt;RN Reanimated v4&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Cool. So we recently had React Native Reanimated version four being released. So for those of you who are sort of avid React native developers, you&#39;ll know that React Reanimated is sort of the defacto way. To be able to animate elements, layouts and whatever you have inside of your React native applications. [01:20]&lt;/p&gt;
&lt;p&gt;So the team&#39;s been hard at work. Animates has been around as a package for, for several years now, and they&#39;ve been iterating on it and making it better and better over time. There&#39;s a general push that you&#39;ll sort of know from the previous episodes over the last year or so towards sort of unifying React native and react in the web as much as possible. [01:40]&lt;/p&gt;
&lt;p&gt;And so CSS transitions and animations are sort of becoming a key part of Reanimated as well, so that the APIs and the way that you can animate things in Native world are as similar as possible. Obviously there&#39;s some limitations that can&#39;t make it one-to-one, but as similar as possible between web and mobile. [01:59]&lt;/p&gt;
&lt;p&gt;And one of the other things is now that we&#39;re in this world where you could use React native on web and mobile, trying to find a way to have performance. Web-based animations and transitions is quite important as well. And Reanimated has been working on this under the hood so that when you do use reanimated in your React Native universal app, it actually has performant animations on the web as well, not just on native devices. [02:18]&lt;/p&gt;
&lt;p&gt;One of the challenges in the past has been that it&#39;s not quite great on the web because it would use JavaScript to orchestrate animations. Not really great, and really, really bogs down the performance of your app on the web. So some good work being done there. A few other things to mention is that Worklet is a part of Reanimated as well. [02:41]&lt;/p&gt;
&lt;p&gt;It&#39;s, it&#39;s a way to basically allow some level of multithreading in your apps. It kind of formed as a need of reanimated itself, but they&#39;ve made it sort of an open public API that you can access for other multithreading needs that you may have. So they&#39;re trying to move that. Across into sort of a separate library and start to separate that up because it&#39;s not just useful for reanimated or animations. [02:59]&lt;/p&gt;
&lt;p&gt;It&#39;s useful for a whole bunch of other stuff like background fetching and, and you know, computationally heavy tasks that you need to run behind the scenes. Other things to mention is that Reanimated used to be this huge package and once you had, you know, imported one thing and Reanimated, everything was imported and so obviously that affects things like your app bundle size. [03:21]&lt;/p&gt;
&lt;p&gt;They&#39;ve now took an approach to make it modular so that you can import. And Bobs of Reanimated rather than the whole thing. Obviously it&#39;s not just a JavaScript sort of tree shaking thing that matters here because we&#39;re in Native World. There&#39;s also sort of the native compiled code and you need to be able to modularize that as well. [03:38]&lt;/p&gt;
&lt;p&gt;So it, it&#39;s not necessarily a straightforward process for the team, and I appreciate that. It was probably quite complex to decouple a lot of this code and separate it up into different packages, both on the native layer and the JavaScript layer. [03:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; What does that affect on a native. Package, I guess like app, total package size, or does it affect like startup performance and things like that? [04:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; It, it can affect both. Mainly the app total size that you would need to download is, is a key thing. It can also affect, like you say, the startup time, albeit startup time is largely sort of. Handled by Hermes, the engine that&#39;s been created for React Native specifically because it, it sort of optimizes to, to avoid large startup times as a result of having a big app bundle. [04:11]&lt;/p&gt;
&lt;p&gt;But it&#39;s really mainly the, the, the bundle size. And again, when we&#39;re going into this sort of web and mobile world where you use the same packages across the board, modularizing as well on the web, even though you&#39;ll have tree shaking, is going to be good practice so that you&#39;re not importing a whole bunch of stuff that you don&#39;t need. [04:33]&lt;/p&gt;
&lt;p&gt;Lastly, and I, I think this is. Something that everyone is quite passionate about in the React native ecosystem and has been a challenge is shared element transitions. So shared element transitions is sort of the transitions that you might be familiar with in the native world where an element is is sort of present and is animated from one screen to another. [04:49]&lt;/p&gt;
&lt;p&gt;So when you navigate from one screen to another, there&#39;s this sort of shared element. So it might be like an image you click on and you navigate to a sort of detailed view of that image. You have a navigation that happens in the background. But you want to have these on separate screens, but you wanna kinda keep that seamless expanding of the image animation as an example or transition. [05:08]&lt;/p&gt;
&lt;p&gt;This is very difficult to do in React Native. You can kind of achieve it in some hacky ways, but it&#39;s sort of on the app developers to figure it out. There&#39;s not been like a unified API that you can use and it&#39;s usually quite hacky and doesn&#39;t work most of the times. They are working on this, [05:26]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; would that be stuff like flip animations, like first, last, interpolate, play? [05:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; No, I don&#39;t think it would be flip animations. The examples that I would give is, you know, like in Instagram as an example, if you&#39;re on the, the search page and you see a set of posts that are sort of laid out in a grid and you click on one of those posts, it expands out and takes over the whole screen. [05:43]&lt;/p&gt;
&lt;p&gt;Right. [05:57]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I meant more like would the hacky interpret in the hacky implementation of. what should be a shared element transition? Would that be, is that the kind of thing somebody might use flip for? [05:58]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I&#39;m not sure, I haven&#39;t actually seen flip, but there are some approaches where people have been sort of tapping into the native layer to be able to do that manually, but it&#39;s not gonna be quite extensible putting some tags and then using the native layer to do those transitions. [06:08]&lt;/p&gt;
&lt;p&gt;So there&#39;s a few different approaches that I&#39;ve seen people do some sort of like third party libraries that people have created as POCs more than anything is how I&#39;ve seen it done. The, the, the gist of it is that there isn&#39;t really like a. Standardized well-defined and like well tested API to do this in React Native. [06:20]&lt;/p&gt;
&lt;p&gt;And so that&#39;s what the Reanimated team have been working on. It&#39;s not out yet, but they&#39;ve said that they&#39;re gonna be releasing it as part of this major release cycle. So four dot something will have. Some support for shared element transition, still TBC, but keep your eyes open for that one. [06:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Cool. [06:52]&lt;/p&gt;
&lt;p&gt;Honestly, that whole discussion reinforces how many things people are doing that I have no experience with whatsoever. [06:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Love that. Yeah. I guess just to close the loop a little bit on like flip animations, like it reminds me a lot of shared element here. &#39;cause I guess like shared element means that it doesn&#39;t like vanish. [06:58]&lt;/p&gt;
&lt;p&gt;You know, it&#39;s one thing persists. From this state to that state. That&#39;s my general understanding of it. And how I had done that in 2017 was, so you&#39;ve got the current state, you&#39;ve just rendered, you have something up and then you re-render and you get the new state. Then you have some abstraction that cracks the old state after the new state shows up and says, okay, this element is tagged with this animation, you know, indicator. [07:09]&lt;/p&gt;
&lt;p&gt;And that indicator has now gone to this element in this new state. It used to be here. Now it&#39;s here. Let&#39;s measure it triple eight, you know, the old size versus the new size. And then do Aran smooth transition, you know, generate a CSS animation to make it look like it&#39;s the same element. [07:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Yeah, it gets a little bit more complicated in the native world because these are different sort of screens that are different view nodes on the native layer, you&#39;d need to have a little bit more control over how you do that on the native layer, the native layer might override it. [07:54]&lt;/p&gt;
&lt;p&gt;If you write that JavaScript logic as an example, it definitely needed some native components to be able to handle it. Under the hood, the algorithm and the native layer will do something very similar, which is first screen, screen A has this size for this element. Screen B has this size. Let&#39;s look at the positions and interpolate the values and the, the zoom of it to match the target size as we&#39;re migrate, as we&#39;re opening up the new screen as an example. [08:07]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right. Oh, interesting. Okay. Sure. On native, there are things already doing that for you, so you don&#39;t need to hack into the, into that. You just need to actually support it. Cool. Makes sense. Okay. [08:29]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Probably just as well. We really didn&#39;t have all that many new items and new release items this month, given that we just sort of deep dived on that one. [08:40]&lt;/p&gt;
&lt;h2 id=&quot;rn-ignite-toolkit-v11&quot;&gt;&lt;a href=&quot;https://shift.infinite.red/announcing-ignite-11-bison-f2802a85f94d&quot;&gt;RN Ignite toolkit v11&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So one other thing from the React Native world, the Infinite Red has a very long running boilerplate toolkit called Ignite, and they just put out version 11. The big news for this one is it. Only sports, the new architecture. It&#39;s been bumped to E Expo, SDK 53, some changes to the theme implementation and they&#39;ve made it bring your own state management. [08:46]&lt;/p&gt;
&lt;p&gt;They used to default to MobX State Tree and now they&#39;ve tweaked it. So you can pick and choose how you want your state to be handled within the new app. [09:06]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; There&#39;s a little bit of context here, which is that the maintainers of this library, infinite Red, have been very opinionated on Malbecs being the best sort of tool for React Native. [09:14]&lt;/p&gt;
&lt;p&gt;State management there. There&#39;s some some reasons behind that. Like Mob State Tree is quite good in terms of sort of heavy memorization and that can really affect performance if you don&#39;t have stuff like that and React native or you&#39;re not careful. So I think they were trying to set some practices that they were used to. [09:25]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And also I believe Jamon from Infinite Red was the maintainer of MobX State Tree for a number of years, and he either still is or recently handed it off to somebody I think. [09:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Might be that he was maintaining it to some degree. Yeah. [09:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So I mean there was, there was a very understandable preference there. [09:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; So the main maintainer of MobX and MobX State Tree as far as I&#39;m aware is Michelle West Streett. [09:56]&lt;/p&gt;
&lt;p&gt;From WHO, who works at Meta, [10:00]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I think Michelle handed off MobX State Tree to into Jamon a number of years ago. Okay, cool. Didn&#39;t know about that really. That&#39;s fair enough. [10:02]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Oh, interesting. I didn&#39;t know that [10:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; he spiked MobX State Tree. And then it&#39;s like, okay, I&#39;ve, I&#39;ve proven I can build this, but I don&#39;t have time to maintain it would someone else like to? [10:10]&lt;/p&gt;
&lt;p&gt;Cool. [10:17]&lt;/p&gt;
&lt;h2 id=&quot;main-content&quot;&gt;Main Content&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Onto the main content for today? [10:18]&lt;/p&gt;
&lt;h2 id=&quot;compiler-docs-are-merged-live-docs-and-config-api&quot;&gt;&lt;a href=&quot;https://github.com/reactjs/react.dev/pull/7868&quot;&gt;Compiler docs are merged!&lt;/a&gt; (&lt;a href=&quot;https://react.dev/learn/react-compiler/introduction&quot;&gt;live docs&lt;/a&gt;, and &lt;a href=&quot;https://react.dev/reference/react-compiler/configuration&quot;&gt;config API&lt;/a&gt;)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; The big news this month is that the React team has written completely brand new docs for the React compiler. Not only did they put them up as a PR this month, that PR has been merged and the new docs are now live. Previously there was just a single page under the installation setup section of the React Docs that gave some amount of details, and now the React compiler has its own top level section with multiple pages under both the learn and reference sections of the React docs. [10:21]&lt;/p&gt;
&lt;p&gt;These sections cover a lot of things. What is the compiler? What does it do? How does it work? Should I try it out? What build tools do it? Does it work with? How do I install it? How can I incrementally adopt the compiler? As well as some reference section information, talking about configuring it and some of the concepts it includes. [10:54]&lt;/p&gt;
&lt;p&gt;And even like if I&#39;m a library author, should I pre-compiled my library bundle to make use of the compiler? So it&#39;s very clear that they&#39;ve been looking at some of the discussion threads where people have complained that, you know, it doesn&#39;t feel like it&#39;s ready for adoption yet. I don&#39;t know if it, you know, I don&#39;t know how to configure it. [11:16]&lt;/p&gt;
&lt;p&gt;And they&#39;ve taken a lot of that to heart and put together some pretty good docs to try to actually address a lot of those points. [11:34]&lt;/p&gt;
&lt;h2 id=&quot;expo-docs-say-its-on-hold-but-evan-bacon-says-expo-54-may-enable-the-compiler-by-default&quot;&gt;&lt;a href=&quot;https://docs.expo.dev/guides/react-compiler/&quot;&gt;Expo docs&lt;/a&gt; say it’s “on hold”, but Evan Bacon says &lt;a href=&quot;https://x.com/Baconbrix/status/1949714155482841094&quot;&gt;Expo 54 may enable the Compiler by default&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; We noted that the, if you look at the expo docs, there is currently a section that says that their integration with the React compiler is on hold, but that may be superseded because I saw a tweet from Evan Bacon just earlier today where he said that we are actually going to enable the React compiler by default in Expo version 54. [11:42]&lt;/p&gt;
&lt;p&gt;And along with that, the compiler docs themselves in the introduction section. Actually say like, should I try the compiler and is it safe to use? And they specifically say at this point, we encourage everyone to start using it. It&#39;s still optional, but it&#39;s in release candidate. It is safe to use. It&#39;s been tested in production and we really would like people to actually try it out. [12:05]&lt;/p&gt;
&lt;p&gt;Of course they do. [12:30]&lt;/p&gt;
&lt;p&gt;Oh yeah. But I mean it&#39;s, it&#39;s a pretty big vote of confidence that this is not just a whim. That it is something they&#39;re very serious about, that it is basically ready for release and that they would like to see the ecosystem start adopting it. [12:31]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, makes sense. [12:43]&lt;/p&gt;
&lt;h2 id=&quot;oh-no--more-function-directives--use-memo-and-use-no-memo&quot;&gt;Oh no — &lt;a href=&quot;https://react.dev/learn/react-compiler/incremental-adoption&quot;&gt;more function directives&lt;/a&gt; , “use memo” and “use no memo”&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I am not super thrilled about seeing more function directives being introduced here. [12:45]&lt;/p&gt;
&lt;h2 id=&quot;directives&quot;&gt;&lt;a href=&quot;https://macwright.com/2025/04/29/directive-prologues-and-javascript-dark-matter&quot;&gt;DIRECTIVES&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Like I&#39;m on record for like the past two years here, being frustrated with introducing more and more directives, and so seeing now basically a compiler flag for memorize or don&#39;t memorize this. As the, uh, incremental adoption method. I just don&#39;t like it. It&#39;s, it feels like magic. It feels gross. I don&#39;t like it. I don&#39;t like directives. They scare me. [12:51]&lt;/p&gt;
&lt;h2 id=&quot;good-thread-on-some-history&quot;&gt;&lt;a href=&quot;https://x.com/en_JS/status/1948502925468467369&quot;&gt;Good thread on some history&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Couple other compiler bits of news. There was some discussion on Twitter, I believe, where Joseph from the React compiler team gave a little bit of background on who had worked on the compiler, some of the timelines and some of the influences, and then the compiler right now has a couple limitations in terms of tool support. [13:13]&lt;/p&gt;
&lt;p&gt;One is that while the 90% of the compiler code is its own independent true compiler, currently the only way to integrate with that and actually use it is via a babble plugin shell around it, which also means you have to have babble. In your build pipeline, and a lot of people are not happy about that. We got rid of babble. [13:33]&lt;/p&gt;
&lt;p&gt;We use, we use SWC, we use, you know, whatever other, you know, ES build something that&#39;s not babble anymore. And so there&#39;s been lots of questions about, you know, when will they get around to offering a non babble integration? No timeline on that yet. But as a related part of that, the lint rules that React offers are also ES lint based. [13:55]&lt;/p&gt;
&lt;h2 id=&quot;some-tech-discussion-on-the-complexities-of-making-react-compiler-work-with-oxlint&quot;&gt;Some tech discussion on &lt;a href=&quot;https://github.com/oxc-project/oxc/issues/10048&quot;&gt;the complexities of making React Compiler work with Oxlint&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And we now have other winters like biome and oxalate that are not ES lint and not esent compatible. So there was a pretty good thread between the React compiler team and the oxalate team talking about like what would it take to make React compiler and the React ES lint rules. Runnable inside oxalate, and there&#39;s a bunch of low level technical details about, you know, js rust interop and, and some of the complexities that might be needed there. [14:19]&lt;/p&gt;
&lt;p&gt;So the answer is probably not anytime soon, but there&#39;s discussions about what it might take to make that happen. [14:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, and circling back to your, you know, good thread with like some timeline and influences and whatever frustration I have, this is like such a, this is exactly the same problem that React and I guess web and like development in general has had for a long time. [14:55]&lt;/p&gt;
&lt;p&gt;But like all of that happened on Twitter and like that&#39;s great knowledge and such good resource. But the guy who asked the question asked it on his private alt. So like, if you are not one of the, you know, 1100 approved people that he has granted access to see his thoughts, you can&#39;t see what was asked, just the response. [15:09]&lt;/p&gt;
&lt;p&gt;So at least you can see the response. That&#39;s nice. But I wish they&#39;d put something like this in like, I don&#39;t know, an introspective blog post or whatever. So. I&#39;m just gonna keep shouting at clouds throughout this episode, I think. Cool. Cool. Let&#39;s move on though, [15:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; even before we get there. [15:40]&lt;/p&gt;
&lt;h2 id=&quot;directive-prologues-and-javascript-dark-matter&quot;&gt;&lt;a href=&quot;https://macwright.com/2025/04/29/directive-prologues-and-javascript-dark-matter&quot;&gt;Directive prologues and JavaScript dark matter&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I found the article I was looking for, it was indeed in Tech reads the news a few weeks ago. [15:41]&lt;/p&gt;
&lt;p&gt;This was in linking a post on directives, prologues and JS Dark Matter, which was an archeological explanation of how things like JSX, pragmas and function directives and magic comments. Have all been used to indicate to build tools, Hey, do something different with this code than what you would expect. [15:45]&lt;/p&gt;
&lt;p&gt;Just reading it. [16:05]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Love that. That is actually really good. And like basically this is all just communicating with different levels of abstraction between like runtime and source code. So it&#39;s like, I don&#39;t know, the linter or the formatter or the, I don&#39;t know. I guess you don&#39;t really do tests so much there, you just do it elsewhere. [16:06]&lt;/p&gt;
&lt;p&gt;But the compiler, or transpiler compiler is now a fuzzy, overloaded term, and I guess they all make sense for one reason or another, but something about directives and the way that they like persist through. I prefer a magic comment, like at least a magic comment is like very clearly something like not runtime. [16:24]&lt;/p&gt;
&lt;p&gt;I don&#39;t know, something about it feels wrong. The [16:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; fact that a directive is just a string hanging out there. [16:44]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I dunno. It seems weird. And since it is just a string, like why not a magic comment? Ah, I don&#39;t know. Maybe there was some kind of weird esoteric, like the compiler, you know, the, all the various compilers and whatever, transpilers, and ASTs transformers are all like, maybe they muck with comments and whatever, but also like the compiler requires that you put it first in your Babel so it gets the untransformed code anyway, so that doesn&#39;t sound right to me. [16:47]&lt;/p&gt;
&lt;p&gt;I don&#39;t know. Weird doesn&#39;t seem necessary. I guess the root of my angst here is that like when they introduced the &quot;use strict&quot; directive, like when they introduced the concept of a directive, they said, we&#39;re never gonna do this again. Like, don&#39;t do this. This is bad. We should, we shouldn&#39;t have had to do this, but we did because weird legacy concerns don&#39;t do any more of these. [17:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And then the community decided, okay, now we got a new mechanism to play with. [17:32]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; We got like, how many do we have for React now? Like. I can think of four off the top of my head. [17:36]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Client server memo. No memo. [17:40]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yep. Okay. Maybe four, but like, come on. That&#39;s 400% increase from one. Come on. [17:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Now you can have two at the top of one file, which is gonna look weird. [17:49]&lt;/p&gt;
&lt;p&gt;It&#39;s gonna take some time getting used to that one. Wait, [17:52]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; can those even, are the, is that even compatible? &#39;cause it&#39;s gotta be, the directive has to be the first line. I [17:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; don&#39;t know how that would even work. Moving right along. [17:58]&lt;/p&gt;
&lt;h2 id=&quot;node-api-support-for-react-native&quot;&gt;&lt;a href=&quot;https://www.callstack.com/blog/announcing-node-api-support-for-react-native&quot;&gt;Node API Support for React Native&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Alright, so back into React Native World. The folks at call Stack have been working on some other projects under the, under the smoke screens, and it&#39;s some cool stuff that they&#39;ve released. [18:01]&lt;/p&gt;
&lt;p&gt;They&#39;ve basically enabled Node API support at a very basic, primitive level. They&#39;re, they&#39;re working, still working on this. They&#39;ve made some good headway with this. So they&#39;re bringing Node API support into React native. Now, not to be confused with node itself, node API is basically like a mechanism by node js that allows you to use C based languages to interact from JavaScript code to call native code. [18:12]&lt;/p&gt;
&lt;p&gt;And so you can write native add-ons in CC plus plus. Even rust or swift. And then they can be used and ingested by JavaScript applications. So there&#39;s a few reasons for doing this and it, it really goes more into the internals of React Native. And you know what this means for library maintainers, for built tool maintainers, and for really meta itself as well. [18:38]&lt;/p&gt;
&lt;p&gt;But the two key things here is faster build times. And closer convergence with native web libraries that may already exist and be using the node API mechanism. So at a first level build times, and I think this is the bit that will affect users more than anyone else is. Basically in the rate of world today, most native modules are actually distributed a source. [18:59]&lt;/p&gt;
&lt;p&gt;So every time you make a build, you actually have to compile it all and do the build step, which is quite long. Building a typical rec native app somewhere around 10 to, if you&#39;ve got a massive scale app, it could takes several tens of minutes to actually do the full build of the app, right? But it&#39;s a long, long time now. [19:22]&lt;/p&gt;
&lt;p&gt;You don&#39;t need to do this for like your development workflow typically, or that often, because you wouldn&#39;t change native dependencies every day. You would just do this when there&#39;s a new native dependency that&#39;s been introduced, but it&#39;s still a significant amount of time. Right? And so the idea is if we can get some of these prebuilt. [19:41]&lt;/p&gt;
&lt;p&gt;Using a mechanism like the node APIs, then we can bring this time down quite significantly. And so one of the things that they ran as a test was for a basic sort of React Native core app that you know is just having the basics of React native within it. They think that they could bring down. The build time to close to seven seconds, which would be insanely fast in comparison to what it&#39;s today. [19:59]&lt;/p&gt;
&lt;p&gt;So this could be some really cool stuff that&#39;s down that&#39;s coming down the line. The other side is that there is already an ecosystem of node API compatible sort of applications and run times, and so, so many sort of libraries. Web API libraries like Web RTC or Web Audio Canvas. These are implemented with node API. [20:21]&lt;/p&gt;
&lt;p&gt;Now, they&#39;re not going to be direct one-to-one mappings for native, but there is already an initiative to try to, to try to align on the web API spec. And so this is sort of another part of that puzzle. And so if you bring these two together, suddenly we can use sort of web APIs and React native, and it could be a really, really cool future to look into. [20:42]&lt;/p&gt;
&lt;p&gt;None of this is. None of this is sort of like fully there, and there&#39;s gonna be, this is a long term effort, but it&#39;s something that they announced this month, and it&#39;s quite exciting. [21:02]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I&#39;ve had enough struggles with native binaries on desktop where they&#39;re, you know, like intended to be compiled for just like, like mostly across, like upgrading, upgrading a version of that, or node versions or whatever. [21:11]&lt;/p&gt;
&lt;p&gt;But I, I&#39;ve had enough struggles and complications there to be wary. Of what the actual experience of using this will look like. But this is, this is really cool. This just even having made enough progress at this to announce it and like meaningfully talk about it as a thing they desire is pretty cool. [21:25]&lt;/p&gt;
&lt;p&gt;Very hard, really hard problem. I&#39;m curious how they&#39;re implementing it. [21:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; It&#39;s definitely not trivial. [21:48]&lt;/p&gt;
&lt;h2 id=&quot;vercel-shaking-things-up&quot;&gt;Vercel shaking things up&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool. Alright, moving on a bit. So there&#39;s been a bunch of Vercel things this week, a fair number of departures. I&#39;m sure people are coming and going all the time and we just, you know, we can&#39;t get a comprehensive list of that. [21:49]&lt;/p&gt;
&lt;h2 id=&quot;leerob-is-at-cursor-now--five-things-he-learned-at-vercel&quot;&gt;&lt;a href=&quot;https://x.com/leerob/status/1943446393819177342&quot;&gt;Leerob is at Cursor now&lt;/a&gt; — &lt;a href=&quot;https://leerob.com/vercel&quot;&gt;Five Things \[he\] Learned at Vercel&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; But they, they had a couple of relatively high profile departures in the last month, starting with the most notable Lee Robinson, who has been there for. Five years, a long time. Was he there before COVID? [22:02]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Not sure on the timeline. Like it, it felt like he&#39;d been there much longer than that, but apparently it has only been five years. [22:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Okay. No, you&#39;re right because he, he put out a blog post. Well, anyway, I&#39;ll, I&#39;ll stop speculating on the timeline, but to me, he is highly identified. With Versel, like, you know, if I think of Versel, I think of, uh, Guillermo, Roush, and Leero, just like by volume of activity and like prolificness in content and social media interaction and blog posts and example resources. [22:21]&lt;/p&gt;
&lt;p&gt;So just all of it. So he has now left Versel and is working at Cursor, which like. That seems great, at least in terms of like mind share and hype and you know, alignment, potential, alignment with future, whatever. Cursors is definitely a really hot company right now. I&#39;ve had some private conversations of with like, can they keep doing that? [22:45]&lt;/p&gt;
&lt;p&gt;&#39;cause at the end of the day they&#39;re a fork of VS code and like fork of a large project with 30 people working on it. Which I think is in the ballpark of how many employees Cursor has versus like Anthropic, which is, you know, a giant, huge beast with all of the money. So like it&#39;s cool. Great for him. [23:05]&lt;/p&gt;
&lt;p&gt;Definitely there&#39;s a lot more like oxygen in the room in terms of excitement and like potential at cursor. I think so. Cool. I&#39;ll be keeping an eye on that. I use cursor. It&#39;s nice, so he&#39;ll still remain in my, I don&#39;t know, professional spheres. But yeah, he had a really good blog post that he put up called, UH, five Things I Learned From Five Years At Versa. [23:24]&lt;/p&gt;
&lt;p&gt;I appreciated it. His number one was go hard at work, then go home, and he closes it with, when I&#39;m offline, I&#39;m offline. I&#39;m a hundred percent focused on my wife and daughter. To be clear, I still get this wrong sometimes. It&#39;s a never ending pursuit of work, life, harmony, takeaway. You can work really hard and set clear boundaries. [23:46]&lt;/p&gt;
&lt;p&gt;I&#39;ll say That&#39;s hard. I struggle with that. I don&#39;t, I don&#39;t have a wife, I don&#39;t have kids. So like in that section he talks about like responding to tweets from the beach on his honeymoon and like, yes, I want to believe that you can work really hard and set clear boundaries to where you&#39;re not working on vacation doing, you know, social media comms work from the beach, but also like if you&#39;re not there. [24:03]&lt;/p&gt;
&lt;p&gt;Like, people aren&#39;t gonna wait three days for you to get back from vacation to, you know, get the authoritative answer. Like, if they ask a question, then like, the person who is Johnny on the spot answering it in their time of need, like they are gonna get the, I don&#39;t know, the kudos, the energy they&#39;re gonna, you know, people are gonna start gravitating towards them for future questions. [24:27]&lt;/p&gt;
&lt;p&gt;I&#39;m like, that&#39;s. This going so hard is how Leero managed to get that level of status, like in my own brain. And so I wanna believe you can work really hard and set clear boundaries. I&#39;m not always so sure about that. I, I dunno. I wrote, I actually wrote a little blog post kind of on that subject almost exactly a year ago. [24:47]&lt;/p&gt;
&lt;p&gt;I&#39;ll link it here. I probably won&#39;t put it in the transcript. Just kind of talking about that general thing and like I, I had a kind of similar experience to what he describes here of like, going really hard and like poor boundaries and like burnout and all of the, a lot of the benefits, a lot of the costs. [25:06]&lt;/p&gt;
&lt;p&gt;And what I kinda realized is that like, I don&#39;t know that I could have achieved the kind of success that I got without that level of burnout and I don&#39;t know, poor boundary setting because like, it&#39;s because I gave. All of my attention to maybe not just work, like some of, a lot of my attention, you know, the full-time work, but also investing in things like reactive flex or just learning new tools and staying on top of the cutting edge outside of work. [25:23]&lt;/p&gt;
&lt;p&gt;Like that was really poorly boundaried and like fully throughout my twenties, I ignored a lot of myself. I just really think that that is, I wanna believe that you can succeed and achieve big success without giving up that kind of, I don&#39;t know, intimacy with yourself. But I don&#39;t know that you can, I don&#39;t know, it seems really hard. [25:50]&lt;/p&gt;
&lt;p&gt;And it, it just notable to me that like the only people I see talking about that and like saying things like, you can work really hard and set clear boundaries are the people who had poor boundaries, achieved success, and are now reflecting on it. So, I don&#39;t know. [26:09]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yeah. It, it is tough, but I, I have a, I have a lot of respect for Lee Rob and that the work and effort that he&#39;s put in, when I just think of the word derel, he is the first that comes to mind. [26:22]&lt;/p&gt;
&lt;p&gt;He, he&#39;s always, you know, omnipresent in any kind of Reddit or Hacker News or Twitter thread that mentions Versel and Next. And, you know, even if you maybe, you know, at times disagreed with, you know, what he was saying or representing the company wine, he absolutely like did a great job of being there and answering questions and, and being involved in reaching out. [26:33]&lt;/p&gt;
&lt;p&gt;It&#39;s definitely a loss for Versel and when I wrote my React Community article, you know, recently, I had a line in there about Versal had a large Dere team that updated the next docs, and he corrected me. It&#39;s like, no, there were two of us at that point. I was like, oh, whoops. I got that wrong. It seemed like you had a large team because you were doing so much work. [26:55]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right? So, yeah, I don&#39;t know. From the comment, from the, from chat, from re Sam, bit of taking advice from lottery winners, vibe occasionally like, yeah, that&#39;s, that&#39;s what it is. It sounds like survivor bias, things like that. Anyway, this is, we&#39;re already like kind of far afield from where we started here. [27:21]&lt;/p&gt;
&lt;p&gt;This was talking about Versel and some of their updates. This was a good piece. Lee Rob, wish him the best at cursor. I&#39;ll be paying attention still. [27:35]&lt;/p&gt;
&lt;h2 id=&quot;swc-creator-leaves-focusing-on-swc-for-a-while&quot;&gt;&lt;a href=&quot;https://x.com/kdy1dev/status/1941129219293225273&quot;&gt;SWC creator leaves, focusing on SWC for a while&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; The, uh, creator of SWC also left Versal. He&#39;s taken some time to, to rest and focus back on, uh, SWC again, so that&#39;s great. I&#39;m not as familiar with him as a, you know, individual human, but I am familiar with s wc. [27:43]&lt;/p&gt;
&lt;p&gt;So cool. Good luck to him. Love that. [27:59]&lt;/p&gt;
&lt;h2 id=&quot;sam-selikoff-just-joined-to-do-content-and-stuff&quot;&gt;&lt;a href=&quot;https://x.com/samselikoff/status/1943325592260092298&quot;&gt;Sam Selikoff just joined to do content and stuff&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And another prolific react ecosystem speaker and like educator, Sam Selikoff joined Versal to do content and some other things. His Twitter feed is all like, all about ramping up and like, you know, spinning up on a new team. So that&#39;s, that&#39;s a fun, that&#39;s a fun moment in time. [28:01]&lt;/p&gt;
&lt;p&gt;Team transitions and gathering context in a new spot. [28:20]&lt;/p&gt;
&lt;h2 id=&quot;nuxt-acquired&quot;&gt;&lt;a href=&quot;https://x.com/nuxtlabs/status/1942575789645640071&quot;&gt;Nuxt acquired&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And then overall, and not, not react, but adjacent. So next is the view ecosystem equivalent to next Js. And Versel had already picked up, you know, rich Harris who builds Svel, possibly one or two other non-reactive framework authors as well. And VL actually just acquired whatever group or company has been behind N and is hiring all of the developers, including Daniel Grow, who I think is the, the lead. [28:23]&lt;/p&gt;
&lt;p&gt;Developer maintainer for N So you know, Versal is not just about react like they, they are sort of putting their money where their mouth is and trying to back many different tools that, you know, build apps and of course can be run on versal. That&#39;s [28:55]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; got me curious about what kind of like corporate structure is behind Nuxt. [29:11]&lt;/p&gt;
&lt;p&gt;&#39;cause like, you know, if it&#39;s individual developers then like. You can&#39;t acquire that, you just hire them. [29:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I think next Labs may be an actual company, but I don&#39;t know how much of a like profit seeking company it is versus some kind of little holding thing. [29:21]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right. I&#39;m now, I&#39;m on the next website. I see next UI Pro, A hub for managing apps. [29:29]&lt;/p&gt;
&lt;p&gt;So I guess like deployment and then like a visual editor. And I see some reference to courses and stuff too, so like, yeah, that sounds like a business. That sounds like they&#39;re selling products. Kind of a mishmash of various different open source monetization techniques there. So. Cool. Nice. That&#39;s good to know. [29:36]&lt;/p&gt;
&lt;p&gt;I appreciate that. Love someone who&#39;s trying to take a project and turn it into a business Relat. Another smaller update. [29:50]&lt;/p&gt;
&lt;h2 id=&quot;netlify-staff-eng-philippe-serhal-replies-to-the-vercel-deployment-adapters-rfc-from-april&quot;&gt;&lt;a href=&quot;https://github.com/vercel/next.js/discussions/77740#discussioncomment-13893373&quot;&gt;Netlify Staff Eng Philippe Serhal replies to the Vercel Deployment Adapters RFC from April&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; This is like barely an update, but I&#39;ve been tracking A an RFC, actually an RFC that Lee Robb started back in April on deployment adapters for next from Versal, basically making it. [29:58]&lt;/p&gt;
&lt;p&gt;More robust and reliable, I guess, to deploy next projects to infrastructure that isn&#39;t hosted on Versal. So the, a staff engineer from Netlify gave a response that&#39;s pretty lengthy, pretty serious, you know, it&#39;s got like, you list six gaps and 10 questions and four suggestions, mostly minor suggestions. [30:13]&lt;/p&gt;
&lt;p&gt;It&#39;s just cool to see that moving along slowly and I question the momentum now that Lee Robb is no longer there. It&#39;s just really hard to hand off major projects like that, major initiatives like that. But yeah, that&#39;s cool. Neat. Love to see it. [30:32]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Okay. Somewhat smaller item, but definitely worth calling out. [30:45]&lt;/p&gt;
&lt;h2 id=&quot;ryan-carniatos-react-and-signals&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=VgGl9i-OBBI&quot;&gt;Ryan Carniato’s “react and signals”&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So Ryan Carniato, the author of Solid, is, you know, pretty much the world&#39;s foremost expert on signals as a state management mechanism. And there was a lot of back and forth and chatter, and I think we even referred to some of it in our, in our last talk about like Ryan for and Michael Jackson from Remix were kind of questioning like, why does Signals exist? [30:48]&lt;/p&gt;
&lt;p&gt;Why do you know? Why do these different frameworks look sort of the same? And I think somewhat inspired by some of those questions and discussion. Ryan put together a 10 minute video on React and Signals what every React developer should know about signals. And Ryan like me is very big on history and context and explaining how we got from past tools and decisions to current tools and decisions. [31:09]&lt;/p&gt;
&lt;p&gt;He goes into some, some of the history of signals, you know, they originated with early JavaScript frameworks like Knockout, but the concepts and implementation of signals have evolved significantly in the last 15 years ago. And so he talks about some of the actual technical advantages of signals. And then he also does some, some myth busting. [31:36]&lt;/p&gt;
&lt;p&gt;You know, he pushes back and says they&#39;re not magic. They do scale. A lot of other frameworks like Angular and View rely on signals to make them faster. And he also talks about comparisons between like, what&#39;s the difference between three ACT compiler and signals or reacts virtual dumb in signals. And I think what a lot of that sums down to is that in react. [31:56]&lt;/p&gt;
&lt;p&gt;The component is the smallest unit of update granularity, like you set state, at least one component will re-render the whole component renders, and then maybe only a few bit bits of it need to be applied, but you had to run the whole component to see what needed to change. Whereas with signals, it&#39;s this one value changed and it&#39;s more directly attached to the output. [32:19]&lt;/p&gt;
&lt;p&gt;And so only the bits of the output that actually relied on that need to be calculated. And it&#39;s not an earth shaking discussion, but given that there&#39;s been a lot of hype and discussion and arguing back and forth, it&#39;s a good overview. Looking at some of like. Some of the pros, cons, concepts, and myths around signals. [32:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, I missed that. I need to give that a watch because I hold a number of myths and misconceptions about signals, and I would like to understand them better. Yeah. [33:01]&lt;/p&gt;
&lt;h2 id=&quot;react-native-unistyles-30-released&quot;&gt;&lt;a href=&quot;https://www.reactnativecrossroads.com/posts/introducing-unistyles-3&quot;&gt;React Native Unistyles 3.0 Released&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Nice. Next up, we have another release. So we&#39;ve been talking about this for a few months. On and off because it&#39;s been sort of an RC mode, but React Native Uni Styles 3.0 has finally been released. [33:09]&lt;/p&gt;
&lt;p&gt;Now there&#39;s a few points to sort of hit here. Uni Styles came out as sort of like a very performant, lightweight styling option for React Native because there&#39;s a lot of styling libraries that are quite complex and have a lot of. Stuff included within it. But the challenge with a lot of those is that it also comes with a little bit of a performance hit because you&#39;ve got a lot more being bundled into your application. [33:21]&lt;/p&gt;
&lt;p&gt;Uni styles is, is sort of since then being this sort of lightweight JavaScript only implementation has has dug into this sort of performance space a bit more. And this newest release is really digging into the new architecture with with Fabric, which is the new render and it uses native code and c plus plus. [33:45]&lt;/p&gt;
&lt;p&gt;To basically bypass the JavaScript layer when possible and keeps us track of the styling dependencies in c plus plus, and we&#39;ll only update affected styles and components on the native layer as much as possible. Again, this is like some things are possible on the native layer. Some things aren&#39;t. In terms of styling and, and the visuals of it, but as much as it can possibly do, it does that in the native layer and avoids re-render. [34:03]&lt;/p&gt;
&lt;p&gt;The maintainer kind likens this to CSS on the web in that it&#39;s not handled by JavaScript, but it&#39;s a different layer that that handles it. On top of that, added a bunch of extra functionality through a babble plug plugin to handle things like theming, break points, orientation, font scale, and maybe even right to left styling if you need that for your app. [34:29]&lt;/p&gt;
&lt;p&gt;And so the by and large, the biggest thing here is that there is a performance boost and they&#39;ve done some measurements to, to show how much of a performance boost you can get because of these safe three renders that would&#39;ve previously been happening because of styling changes. Other noteworthy things to mention are that there&#39;s some new features around sort of variance or scoped themes and so on and so forth. [34:48]&lt;/p&gt;
&lt;p&gt;You can go read through the blog post in more details to understand what are the sort of more granular new features that exist. But also given that this is sort of a universal library that works on web and native, there is a new web functionality as well. Some web only styles, some pseudo classes that they&#39;ve introduced and some support for class names that would be targeting the web. [35:10]&lt;/p&gt;
&lt;p&gt;So there&#39;s some stuff around web support as well, which is quite interesting. But yeah, that&#39;s Uni Cells 3.0. Give it a give it, give it a quick look. Cool. Love that. [35:30]&lt;/p&gt;
&lt;h2 id=&quot;react-router-and-rscs-the-path-forward&quot;&gt;&lt;a href=&quot;https://remix.run/blog/react-router-and-react-server-components&quot;&gt;React Router and RSCs: The Path Forward&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Finally, we have a couple different, uh, react server component updates. The React Router team has been iterating for a while on their work in progress server component implementation, and they&#39;ve put together a blog post describing a path forward, so they go through some details talking about the, and ways you would handle things like streaming UI or in lighting data in existing React router framework mode versus how you might handle it with their server component implementation. [35:39]&lt;/p&gt;
&lt;p&gt;And so there the summary is that. apparently they&#39;re going to revamp the framework mode to be built on top of their server component support. [36:10]&lt;/p&gt;
&lt;p&gt;They are still labeling the server component support as unstable, but they do want people to try it out and give it a shot. So looking at some of these examples, it looks pretty significantly different usage wise than say like the next app router. It maybe looks even a little more similar to how Parcel had almost like a pick and choose your own server component usage approach. [36:19]&lt;/p&gt;
&lt;p&gt;So it is very cool to see additional frameworks providing support for server components. As well as that we&#39;re starting to finally see some variation in how they might get used and not just. The way next does it is the only way to do it. [36:42]&lt;/p&gt;
&lt;h2 id=&quot;parcel-writeup-for-server-components&quot;&gt;&lt;a href=&quot;https://devongovett.me/blog/parcel-rsc.html&quot;&gt;Parcel writeup for Server Components&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Along with that, Devin Govett from parcel put together a pretty good article where he was talking about how parcel bundles, server components, and he goes into some background detail about like, you know, what is a bundle even do in the first place? How does it. You know, follow the, the module graph. How does it handle dynamic loading? How do the pieces fit together? And then talks about, okay, and since React server components is really a bundler driven feature, here&#39;s how server components actually rely and make use of some of those bundler aspects. [36:57]&lt;/p&gt;
&lt;h2 id=&quot;wip-vite-rsc-plugin-support&quot;&gt;&lt;a href=&quot;https://github.com/vitejs/vite-plugin-react/issues/531&quot;&gt;WIP Vite RSC plugin support&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And along with that, I think we&#39;ve previously mentioned that there&#39;s been an in progress. Attempt to build RSC support directly into Vite&#39;s React plugin. And there&#39;s one person who appears to be steadily cranking away on trying to make that support possible. And I&#39;m seeing a number of the to-do list items in the roadmap being checked off. [37:26]&lt;/p&gt;
&lt;p&gt;So I don&#39;t know how far along that is. But it seems like a pretty serious effort to make that happen. So the server component ecosystem is slowly filling out. [37:50]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Interesting. I see one of the to-do list items in that is moving waku to VJS plugin, RSC. That&#39;s interesting. &#39;cause I, I had understood, I mean, Waku was like. [38:02]&lt;/p&gt;
&lt;p&gt;A proof of concept implementation of like how to do a framework on RSC. So it&#39;s interesting to see that move from like custom one-off implementation to relying on a, you know, kind of delegating RSC support back into, back into Ved. Love to see that. That&#39;s cool.&lt;/p&gt;
&lt;h2 id=&quot;-lightning-round-&quot;&gt;⚡ Lightning round ⚡&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Okay, moving on to the lightning round. [38:32]&lt;/p&gt;
&lt;h2 id=&quot;corbins-history-of-react-through-code-deep-dive&quot;&gt;Corbin’s &lt;a href=&quot;https://playfulprogramming.com/posts/react-history-through-code&quot;&gt;“History of React Through Code”&lt;/a&gt; deep dive&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Lightning round. Corbin Crutchley, author of the Framework Field Guide ebook, put together a very lengthy deep dive, which I highly approve of, called the History of React through Code, where he goes back and looks at a whole bunch of different react features that were added over time and kind of argues that you know what these, the, these actually have sort of a. [38:35]&lt;/p&gt;
&lt;p&gt;Intellectual cohesiveness a like a design cohesiveness to them and that they, they all, it makes sense when you look at the sequence of, of features and how they were added. [38:56]&lt;/p&gt;
&lt;h2 id=&quot;tkdodos-thoughts-on-when-usecallback-is-useless&quot;&gt;&lt;a href=&quot;https://tkdodo.eu/blog/the-useless-use-callback&quot;&gt;TkDodo’s thoughts on when &lt;code&gt;useCallback&lt;/code&gt; is useless&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Meanwhile, TK Dodo, Dominic Dorf, Meister maintainer of React query, just put up a post today where he has some thoughts on when use callback is actually useless. [39:06]&lt;/p&gt;
&lt;p&gt;And I think his argument is actually, it&#39;s useless in a, in a lot more cases and you probably don&#39;t actually need it all that often. [39:18]&lt;/p&gt;
&lt;h2 id=&quot;eslint-config-prettier-compromised-as-part-of-an-npm-supply-chain-attack&quot;&gt;&lt;a href=&quot;https://safedep.io/eslint-config-prettier-major-npm-supply-chain-hack/&quot;&gt;&lt;code&gt;eslint-config-prettier&lt;/code&gt; compromised&lt;/a&gt; as part of an &lt;a href=&quot;https://socket.dev/blog/npm-phishing-campaign-leads-to-prettier-tooling-packages-compromise&quot;&gt;NPM supply chain attack&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool. There was a NPM supply chain attack that was pretty interesting. I believe. The issue was that a couple of relatively high profile maintainers got phished, and yes, there&#39;s a phishing campaign on a typo, squatted, URL, which is NPN js.com. [39:26]&lt;/p&gt;
&lt;p&gt;So it&#39;s a couple of major. Maintainers got successfully phished through that, which then, uh, stole their NPM credentials and published malicious versions of packages. Yeah, so, uh, malicious releases included lin config, prettier. That&#39;s big Lin plugin, prettier. Think kit packager, core and nappy post install. [39:45]&lt;/p&gt;
&lt;p&gt;So the, like, most of those not so big. I, I haven&#39;t really heard of, heard about &#39;em, but yeah. Esly config, prettier, that&#39;s big. And they got version, they got major versions. 8, 9, 10. Eight, nine, and 10. Okay, so make sure you&#39;re not using version 10.1, 9.1 0.1. Anyway, if you&#39;re using those, check it. If you&#39;re using ES link config, prettier or ES link plugin prettier. [40:06]&lt;/p&gt;
&lt;p&gt;Make sure it&#39;s not a vulnerable version. Check your lock files. Yeah, that&#39;s not great. [40:29]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I know one of the other redix maintainers got the phishing email and avoided it. It&#39;s definitely semi widespread campaign. [40:34]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Wild. They must have hit so many people to get a couple of major vulnerabilities in. Cool. [40:41]&lt;/p&gt;
&lt;h2 id=&quot;expo-router-demo-by-evan-bacon-ai--rscs--expo-router&quot;&gt;&lt;a href=&quot;https://github.com/EvanBacon/app-that-builds-apps&quot;&gt;Expo Router demo by Evan Bacon AI + RSCs + Expo Router&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; So next up, very quick one. [40:48]&lt;/p&gt;
&lt;p&gt;You might&#39;ve remembered the old expo router demo from last year&#39;s react conf, where they showed RSCs in the world of expo router for building an AI app. Something very similar to that is now an open source project that you can clone and play around with. So Evan Bacon has released a demo of an AI app that can generate. [40:50]&lt;/p&gt;
&lt;p&gt;With AI native components and stream them in with RSCs. It&#39;s pretty cool. So clone the repo, play around with it. It&#39;s an interesting little demo. [41:08]&lt;/p&gt;
&lt;h2 id=&quot;some-tech-details-on-how-meta-serves-react-pages&quot;&gt;Some tech details on &lt;a href=&quot;https://www.reddit.com/r/reactjs/comments/1ltbw2e/how_does_facebook_serve_react_pages/&quot;&gt;how Meta serves React pages&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; There was a Reddit thread that was asking how does Facebook slash meta actually build and serve their React applications? And some former meta engineers responded with a few technical details talking about how they do a bunch of dynamic bundling, and they also use, I believe Hermes or static Hermes on the back end to pre-build some of the server rendering pieces. [41:16]&lt;/p&gt;
&lt;p&gt;So, you know, a little peek behind the curtain. [41:38]&lt;/p&gt;
&lt;h2 id=&quot;nitro-image-library-for-react-native&quot;&gt;&lt;a href=&quot;https://github.com/mrousavy/react-native-nitro-image&quot;&gt;Nitro Image library for React Native&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Cool. And we talked a little bit about Nitro modules over the months, the past few months, there is a new library that the Margie folks folks have been working on called React Native Nitro Image. And so this is built on top of Nitro modules. I was actually talking with someone this morning about some of the challenges with images on the native layer when it comes to loading them in React Native. [41:40]&lt;/p&gt;
&lt;p&gt;So this is very much welcome as a change to hopefully improve performance across the board for React native. [42:02]&lt;/p&gt;
&lt;h2 id=&quot;a-very-hacky-way-to-test-rsc-components&quot;&gt;&lt;a href=&quot;https://www.nico.fyi/blog/how-to-test-react-server-component&quot;&gt;A very hacky way to test RSC components&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; One of the weaknesses of React Server components has been that there hasn&#39;t been a good testing story for them yet, or at least not one that I&#39;ve heard of. Someone put up an article with a way to test them. [42:08]&lt;/p&gt;
&lt;p&gt;However, it&#39;s incredibly hacky and relies on overriding some of reacts internals, so it&#39;s probably not a good way, but it is a way to try to test them if you like. [42:20]&lt;/p&gt;
&lt;h2 id=&quot;a-good-technical-dive-into-improving-inp-in-a-next-app&quot;&gt;&lt;a href=&quot;https://medium.com/preply-engineering/how-preply-improved-inp-on-a-next-js-application-without-react-server-components-and-app-router-491713149875&quot;&gt;A good technical dive into improving INP in a Next app&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And then there was a pretty good article that gave, it went into a bit of a technical dive and deep dive on how a company improved the interaction to Next Paint Web Vital Metric in their app, and gave a bunch of very practical examples of problems they found in their app and ways that they, they addressed those. [42:31]&lt;/p&gt;
&lt;h2 id=&quot;extra-css-properties-in-react-native&quot;&gt;&lt;a href=&quot;https://github.com/facebook/react-native/pull/52284&quot;&gt;Extra CSS Properties in React Native&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Cool. Next up, there are some new styling properties that are being proposed to be added to React Native. So this is being done by Nishan Bede, who has been doing a lot of work in trying to bring some CSS styling into React Native and better support. This time there&#39;s a pr up that adds support for background size, position, and reply and, and repeat. [42:51]&lt;/p&gt;
&lt;p&gt;So this will be quite interesting to see when and if it gets merged in. [43:13]&lt;/p&gt;
&lt;h2 id=&quot;chrome-137-adds-if-support-in-css&quot;&gt;&lt;a href=&quot;https://developer.chrome.com/blog/new-in-chrome-137&quot;&gt;Chrome 137 adds &lt;code&gt;if&lt;/code&gt; support in CSS&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Speaking of, I don&#39;t know, new CSS things. Chrome 1 37 added an if to CSS. There&#39;s a conditional flow, or I don&#39;t know, there&#39;s a condition now in CCSS. I have not seen that before. So I guess it&#39;s a way of, you know, you can consult the various variables you&#39;ve set up and evaluate what the associated styles are or associated values and conditionally. [43:16]&lt;/p&gt;
&lt;p&gt;Do one thing or another. Yeah. [43:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yeah. It, it, it looks like it&#39;s a built-in function. You pass in a very, like a, an existing variable or property value as the first, and then it&#39;s, if it matches, then it&#39;s a, if it doesn&#39;t match, then it&#39;s b like, almost like an Excel function, like kind of a thing. [43:44]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Reminded me exactly of that. [44:01]&lt;/p&gt;
&lt;p&gt;Are we finally at the stage where CSS is turning complete? [44:03]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I remember seeing a demo of turning complete CSS like 15 years ago if you include user input. So yeah, it was like a grid of check boxes and uh, I think the, the human had to interact with stuff, but it was turning complete, if you included that. [44:06]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; So I think we just need loops and it&#39;ll technically be turn complete. [44:20]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Wild. Anyway, that, that seems interesting and new. This document that I&#39;m reading is using something else that I don&#39;t recognize. The, the example they have here is if style, you know, dash color, white, so I guess that&#39;s using a different function to read the styles of the current element. [44:23]&lt;/p&gt;
&lt;p&gt;Something. That&#39;s what it looks like to me, but that&#39;s also new to me. So like between conditionals and being able to read the current state of element are, uh, interesting. [44:41]&lt;/p&gt;
&lt;h2 id=&quot;react-devtools-for-firefox-may-not-get-updated-due-to-review-restrictions&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/ricky.fm/post/3ltkxpo5ewk2i&quot;&gt;React Devtools for Firefox may not get updated due to review restrictions&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; There was a discussion thread on Blue Sky where someone, where one of the React team members said that. They were, they had tried to submit an update to React Dev Tools extension in Mozilla&#39;s, Firefox, add-on store, and it was getting blocked because Mozilla has some very specific and strict rules around how code gets built into extensions, and suddenly, all of a sudden, someone on the Mozilla side is complaining that the way React builds their extension is hypothetically a security concern. [44:50]&lt;/p&gt;
&lt;p&gt;There were also some numbers thrown around about how many Firefox users of the dev tools extension actually exist. And it was only like, maybe like 120,000 or something. Whereas I think the, the last time I looked at the, the dev tools extension for Chrome, it&#39;s like 4 million. So the React team was actually saying, you know, maybe we, we won&#39;t even bother building the extension for Firefox anymore. [45:23]&lt;/p&gt;
&lt;p&gt;It&#39;s, it&#39;s not worth the effort. You can always add the, you know, the unbundled version yourself. I think they maybe managed to get the attention of someone from Mozilla to try to, you know, bypass the stuck review process. But clearly that&#39;s a pain point. And [45:47]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I gotta say, just side load this extension that can read all of your input on every site is the dangerous thing to do at scale. [46:03]&lt;/p&gt;
&lt;p&gt;Like if you just tell millions of people side load this application, there&#39;s gonna be dozens of malicious actors who spin up their own. Side load version of the extension that does malicious things. So Oof. Don&#39;t like that. So yeah, hopefully they can fix this, you know, correctly. [46:12]&lt;/p&gt;
&lt;h2 id=&quot;both-oxlint-and-biome-are-investigating-typed-lint-rule-support-biome-v2-tsgolint&quot;&gt;&lt;a href=&quot;https://www.solberg.is/fast-type-aware-linting&quot;&gt;Both &lt;code&gt;oxlint&lt;/code&gt; and &lt;code&gt;biome&lt;/code&gt; are investigating typed lint rule support&lt;/a&gt; (&lt;a href=&quot;https://biomejs.dev/blog/biome-v2/&quot;&gt;Biome v2&lt;/a&gt;, &lt;a href=&quot;https://github.com/oxc-project/tsgolint&quot;&gt;tsgolint&lt;/a&gt;)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And so another item, so we&#39;ve previously mentioned that, you know, biomes working on version two and they had included some typed some support for typed aware rules that normally would&#39;ve required integration with the TypeScript DS went package and the TypeScript compiler ENT came out with 1.0. [46:29]&lt;/p&gt;
&lt;p&gt;There, there&#39;s a bit of additional information and updates on both of those. So there was, there was an article. Talking and comparing the different approaches that Biome and Oxalate are using to implement typed support. And then we got a couple links to some of the discussions where those linters are doing it. [46:49]&lt;/p&gt;
&lt;p&gt;Biome appears to be building in like their own, almost like a miniature version of. Typed processing, whereas Oxalate has taken the new TypeScript written in Go compiler and sort of hacked up an interop layer. Then they&#39;re relying on the new TypeScript go compiler to do the type checking work. And that approach appears to be working it. [47:09]&lt;/p&gt;
&lt;p&gt;They said they&#39;ve implemented a number of the different type to wear rules, and it seems highly performant, so you know that in addition to being able to build our apps faster, we may be able to lint our apps faster as well. [47:35]&lt;/p&gt;
&lt;h2 id=&quot;remix-v3-dev-branch-containing-support-packages&quot;&gt;&lt;a href=&quot;https://github.com/remix-run/remix/tree/v3&quot;&gt;Remix v3 dev branch containing support packages&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Cool. We&#39;ve been going on for a while about how the remix team has been dropping very, very vague hints about what remix version three is going to be, to the point that it&#39;s really getting very, very annoying for those of us reading their, their Twitter accounts, and I still haven&#39;t seen any actual code of what the framework itself. [47:49]&lt;/p&gt;
&lt;p&gt;Will be like, however, there they did put up a development branch that includes some of the support packages that they&#39;re going to be using as part of the implementation of version three. So like it&#39;s not the full framework, but there&#39;s a lot of individual sub packages for various like tar parsing and other sorts of things that they want to be usable standalone, but they&#39;re building them for the purpose of usage in version three. [48:07]&lt;/p&gt;
&lt;p&gt;So it&#39;s not a full look at what, what they&#39;re doing, but it&#39;s a little bit of a peek behind the curtain. [48:35]&lt;/p&gt;
&lt;h2 id=&quot;react-native-wallet&quot;&gt;&lt;a href=&quot;https://blog.swmansion.com/introducing-react-native-wallet-90c1ee103d3e&quot;&gt;React Native Wallet&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Cool. Next up, we&#39;ve got another sort of honorable mention of releases that happened over the last month, and this is React native wallets. So there&#39;s a lot of sort of. Wallet style libraries that have come and go in the React native ecosystem, not one that&#39;s really been maintained extensively. [48:40]&lt;/p&gt;
&lt;p&gt;And so the folks at Expensify and Software Mansion have partnered together to create the React Native Wallet library. And so the idea is that. It&#39;s firstly a cross-platform way to add payment and credit cards to Apple and Google Wallet. Now, there&#39;s libraries that like handle passes and tickets. They&#39;re quite limited. [48:58]&lt;/p&gt;
&lt;p&gt;I&#39;ve used a few of them in the past, but this is more specifically on payment cards. And so the idea is that you can maybe. Hopefully through this process avoid needing to integrate a whole bunch of different SDKs for different cards and different and different platforms, and you can kind of just use this library to handle a lot of that functionality for you. [49:19]&lt;/p&gt;
&lt;p&gt;Sounds quite complex because, you know, payments are usually quite difficult to get working, so I&#39;m curious to see how well this works in practice, but I&#39;ve not had the use case yet. Typically payments and, and cards and stuff like has so many different people that you need to communicate with. The card issuer, apple, and a whole bunch of other people in the process. [49:37]&lt;/p&gt;
&lt;p&gt;So curious to see how extensible and generic this is gonna be, but very cool. [49:56]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Interesting. Also, it&#39;s the first time I&#39;ve seen a wallet library that was not Web3 in a long time, so additional wallets, right. [49:59]&lt;/p&gt;
&lt;h2 id=&quot;deno-v-oracle-update&quot;&gt;&lt;a href=&quot;https://deno.com/blog/deno-v-oracle4&quot;&gt;Deno v Oracle update&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; This is a very small update, but we&#39;ve. I talked a bit in the past about Deno versus Oracle. [50:07]&lt;/p&gt;
&lt;p&gt;Deno has been suing Oracle for use of the JavaScript trademark because did you even know that Oracle owned it? Oracle owns the JavaScript word, the word JavaScript. So basically the only content update here is that in the past, at some point previously in the litigation, Deno filed a claim of fraud because. [50:13]&lt;/p&gt;
&lt;p&gt;Oracle filed supporting evidence of prior use of the trademarked term JavaScript by referencing the node JS project. Generally as something that they did and you know, who did not start or maintain node js is Oracle. So like basically they filed a just wildly inaccurate claim supporting that. They do in fact use JavaScripts. [50:36]&lt;/p&gt;
&lt;p&gt;So that unfortunately was dismissed. The fraud claim was dismissed, which seems strange to me because like if you say I made this and you didn&#39;t, seems wrong. But anyway, that&#39;s really the only major update here, but hopefully we will hear more. Hopefully this will go in a good direction. I am not super confident of that, but August and September have some major court dates, so maybe there will be more updates later this year. [51:00]&lt;/p&gt;
&lt;h2 id=&quot;content-independence-day-from-cloudflare-theyre-blocking-ai-crawlers&quot;&gt;&lt;a href=&quot;https://blog.cloudflare.com/content-independence-day-no-ai-crawl-without-compensation/&quot;&gt;“Content independence day” from Cloudflare&lt;/a&gt; (they’re blocking AI crawlers)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; There&#39;s also an update from CloudFlare on AI crawlers. They have declared content independence stay. No AI crawl without compensation, which seems lovely, Cloudflare&#39;s in a pretty good position to meaningfully control traffic in that kind of a way. Lots of real services are using CloudFlare for that purpose. [51:23]&lt;/p&gt;
&lt;p&gt;So, yeah, seems good. I&#39;ve heard a couple of anecdotes of people with smaller services getting absolutely slammed with traffic from, you know, poorly coded AI supporting crawlers, trying to gather information and doing it just greedily or excessively. So, seems good. Seems nice. [51:45]&lt;/p&gt;
&lt;h2 id=&quot;some-updated-static-hermes-perf-numbers-release-available-soon-being-tested-internally-at-meta&quot;&gt;&lt;a href=&quot;https://x.com/tmikov/status/1945348222110859500&quot;&gt;Some updated Static Hermes perf numbers&lt;/a&gt; release available “soon”, being tested internally at Meta&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; All right, and last couple items. [52:04]&lt;/p&gt;
&lt;p&gt;The folks at Meta have been working way on static Hermes, which is an attempt to take the existing Hermes JavaScript engine for React Native and be able to pre-compiled entire JavaScript apps to a native binary. And they put up a tweet with some. Performance numbers comparing static hermes&#39;s output versus a couple of other JavaScript runtimes. [52:06]&lt;/p&gt;
&lt;p&gt;The numbers seem higher, which seems like a good thing. And they also mentioned that they think they will have a release available, quote unquote soon, and that they are using it internally at meta. So, you know, that seems like another potentially useful tool to have in the ecosystem. [52:29]&lt;/p&gt;
&lt;h2 id=&quot;state-of-html-survey-is-open&quot;&gt;&lt;a href=&quot;https://survey.devographics.com/en-US/survey/state-of-html/2025&quot;&gt;State of HTML Survey is open&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Finally, the folks behind the various state of surveys have put out the state of HTML survey. [52:47]&lt;/p&gt;
&lt;p&gt;So that&#39;s open. You can fill it out, test out your knowledge, answer some questions about what various new H TM L features you may or may not be familiar with and what you think about them. [52:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I did not know them. State of HTML. Very interesting. [53:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, I think they started like two or three years ago. It&#39;s relatively newer. [53:07]&lt;/p&gt;
&lt;p&gt;I mean, the state of. X has really exploded in the last couple of years. It&#39;s great. I love that. But I do worry about like survey fatigue and a lot of these are trying to solicit answers from the same population of developers. So I don&#39;t know, maybe, maybe. We&#39;ll, we&#39;ll see how that plays out. Cool. [53:10]&lt;/p&gt;
&lt;h2 id=&quot;conferences-react-javascript&quot;&gt;Conferences (&lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://confs.tech/javascript&quot;&gt;Javascript&lt;/a&gt;)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Alright, before we close out, let&#39;s, uh, talk about some coming [53:26]&lt;/p&gt;
&lt;h2 id=&quot;big-sky-dev-con-aug-2-bozeman-mt-usa&quot;&gt;&lt;a href=&quot;https://bigskydevcon.com/&quot;&gt;Big Sky Dev Con&lt;/a&gt; Aug 2 Bozeman, MT, USA&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; like four days, there&#39;s Big Sky devcon in Bozeman, Montana. [53:29]&lt;/p&gt;
&lt;h2 id=&quot;kansas-city-developer-conference-aug-13-14-kansas-city-ks-usa&quot;&gt;&lt;a href=&quot;https://www.kcdc.info/&quot;&gt;Kansas City Developer Conference&lt;/a&gt; Aug 13-14 Kansas City, KS, USA&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Seems good. Kansas City Developer Conference, which is not KCD. It&#39;s KCDC, but it&#39;s not Ken C dos that&#39;s happening August 13th and 14th in Kansas City, Kansas. [53:36]&lt;/p&gt;
&lt;h2 id=&quot;react-universe-conf-sept-2-4-2025-wrocław-poland&quot;&gt;&lt;a href=&quot;https://www.reactuniverseconf.com/&quot;&gt;React Universe Conf&lt;/a&gt; Sept 2-4, 2025. Wrocław, Poland&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; We also have React Universe September 2nd through fourth in Wroclaw [53:47]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I&#39;ve been there enough times where I&#39;ve been taught the pronunciation because butchered it several times, but it&#39;s, [53:52]&lt;/p&gt;
&lt;h2 id=&quot;waysconf-sept-16-17&quot;&gt;&lt;a href=&quot;https://www.waysconf.com/&quot;&gt;WaysConf&lt;/a&gt; Sept 16-17&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; uh, we&#39;ve also got Ways Conf coming up September 16th and 17th in Krakow. [53:57]&lt;/p&gt;
&lt;p&gt;I&#39;m also probably butchering, but also in Poland. [54:04]&lt;/p&gt;
&lt;h2 id=&quot;cascadiajs-sept-18-19-seattle-wa-usa&quot;&gt;&lt;a href=&quot;https://cascadiajs.com/2025&quot;&gt;CascadiaJS&lt;/a&gt; Sept 18-19 Seattle, WA, USA&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cascadia js is September 18th, 19th in Seattle, Washington. [54:06]&lt;/p&gt;
&lt;h2 id=&quot;squiggle-conf-sept-17-18-boston-ma-usa&quot;&gt;&lt;a href=&quot;https://squiggleconf.com/&quot;&gt;Squiggle Conf&lt;/a&gt; Sept 17-18 Boston, MA, USA&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And we&#39;ve got Squi Squiggle conf in Boston, September 17th and 18th, which should be great and I should be there, I believe. [54:10]&lt;/p&gt;
&lt;h2 id=&quot;react-conf-is-back-oct-7-8&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/react.dev/post/3lmcp4mhmfk2l&quot;&gt;React Conf is back, Oct 7-8&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And of course, react Conf October 7th and 8th in Las Vegas, Nevada. [54:17]&lt;/p&gt;
&lt;h2 id=&quot;remix-jam-oct-10-toronto-canada&quot;&gt;&lt;a href=&quot;https://remix.run/jam/2025&quot;&gt;Remix Jam&lt;/a&gt; Oct 10 Toronto, Canada&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I also just heard about Remix Jam, happening October 10th in Toronto, Canada. Yeah, that&#39;s new. I don&#39;t know that they&#39;ve done a conference like that before, so that&#39;s interesting. [54:22]&lt;/p&gt;
&lt;h2 id=&quot;outro&quot;&gt;Outro&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; But yeah, that&#39;s all we got for you this month. Thanks so much for joining us. We will be back probably on the last Wednesday of August, but we&#39;ve been. Jumping around the last few months, but we&#39;ll be back in your podcast feed just as soon as we can. [54:33]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Always fun. Way too much to keep track of, but hopefully this has been useful. Lovely to be with you all and see you all next month. [54:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Great. We gather sources from this week in React Bites, dev Next JS Weekly, the React JS subreddit, and here in React to Flux from the E, the Tech Reads and News Channel. If you see something that you think we should talk about, definitely Sheridan. [54:53]&lt;/p&gt;
&lt;p&gt;Channel or send it to me at &lt;a href=&quot;mailto:hello@reactiflux.com&quot;&gt;hello@reactiflux.com&lt;/a&gt;. If this is a show that you get value from and want to support, one of the best ways you can do so is by submitting a review on whatever platform you listen to it on, or tell your friends and coworkers about it. [55:07]&lt;/p&gt;
&lt;p&gt;Thanks so much for listening. Talk to you later. [55:19]&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2025-07</link><guid isPermaLink="false">reactiflux-tmir-2025-07</guid><pubDate>Sun, 27 Jul 2025 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>TMiR 2025-06: kinda quiet tbh. ES2025 finalized, new Safari</title><description>&lt;iframe width=&quot;100%&quot; height=&quot;180&quot; frameborder=&quot;no&quot; scrolling=&quot;no&quot; seamless=&quot;&quot; src=&quot;https://share.transistor.fm/e/feba4de9&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;p&gt;We had some problems with transcript generation this month, downstream of the audio recording issues. Sorry! Fixed for July.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Job market &lt;a href=&quot;https://fred.stlouisfed.org/series/IHLIDXUSTPSOFTDEVE&quot;&gt;FRED data&lt;/a&gt;, &lt;a href=&quot;https://layoffs.fyi/&quot;&gt;Layoffs.fyi&lt;/a&gt;, &lt;a href=&quot;https://www.trueup.io/job-trend&quot;&gt;Trueup.io&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;New releases
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;Shadcn
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;updated Calendar component&lt;/li&gt;
&lt;li&gt;Moving from @radix-ui/... to radix-ui&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/recharts/recharts/releases/tag/v3.0.0&quot;&gt;Recharts v3.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://vite.dev/blog/announcing-vite7.html&quot;&gt;Vite 7.0 is out!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://biomejs.dev/blog/biome-v2/&quot;&gt;Biome v2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://oxc.rs/blog/2025-06-10-oxlint-stable&quot;&gt;Announcing Oxlint 1.0 | VoidZero&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;a href=&quot;https://prettier.io/blog/2025/06/23/3.6.0&quot;&gt;Prettier 3.6: Experimental fast CLI and new OXC and Hermes plugins!&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Experimental &quot;fast CLI&quot; support, first discussed &lt;a href=&quot;https://prettier.io/blog/2023/11/30/cli-deep-dive&quot;&gt;Nov 2023&lt;/a&gt; 👀&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://jestjs.io/blog/2025/06/04/jest-30&quot;&gt;Jest 30&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://reactnative.dev/blog/2025/06/12/react-native-0.80&quot;&gt;React Native 0.80&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://webkit.org/blog/16993/news-from-wwdc25-web-technology-coming-this-fall-in-safari-26-beta/&quot;&gt;Safari v26 beta&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;a href=&quot;https://github.com/apollographql/apollo-client/releases/tag/%40apollo%2Fclient%404.0.0-rc.1&quot;&gt;Apollo Client 4 RC1&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;May actually ship pre-compiled with the React Compiler (&lt;a href=&quot;https://bsky.app/profile/phry.dev/post/3lsl7w4ynjc2v&quot;&gt;discussion with Lenz and Joe&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://infinite.red/&quot;&gt;Sponsored by Infinite Red&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;Main Content
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Mark&#39;s &quot;&lt;a href=&quot;https://blog.isquaredsoftware.com/2025/06/react-community-2025/&quot;&gt;The State of React and the Community in 2025&lt;/a&gt;&quot; (&lt;a href=&quot;https://blog.isquaredsoftware.com/2025/06/presentations-react-community-2025/&quot;&gt;slides&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;Remix direction?
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&quot;&lt;a href=&quot;https://x.com/mjackson/status/1937979887815692465&quot;&gt;Disillusioned with React Hooks&lt;/a&gt;&quot;&lt;/li&gt;
&lt;li&gt;&quot;&lt;a href=&quot;https://x.com/mjackson/status/1938362165221523542&quot;&gt;I can break signals quickly, don&#39;t use them for real apps&lt;/a&gt;&quot;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://remix.run/blog/rr-governance&quot;&gt;React Router &quot;Open Governance&quot;&lt;/a&gt; (and &lt;a href=&quot;https://github.com/remix-run/react-router/blob/main/GOVERNANCE.md#steering-committee&quot;&gt;governance doc&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;a href=&quot;https://x.com/colmtuite/status/1935629877069172861&quot;&gt;Debate over Radix UI status&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/shadcn/status/1936082723904565435&quot;&gt;Shadcn has thoughts&lt;/a&gt; on switching component libraries&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;⚡ Lightning round ⚡
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://romanliutikov.com/blog/towards-react-server-components-in-clojure-part-3&quot;&gt;Towards React Server Components in Clojure, Part 3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;Dan&#39;s latest posts:
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://overreacted.io/progressive-json/&quot;&gt;Progressive JSON&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://overreacted.io/how-imports-work-in-rsc/&quot;&gt;How Imports Work in RSC&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;ES2025 spec released. &lt;a href=&quot;https://2ality.com/2025/06/ecmascript-2025.html&quot;&gt;What&#39;s New in ES2025?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://shopify.engineering/webgpu-skia-web-graphics&quot;&gt;The Future of React Native Graphics: WebGPU, Skia, and Beyond &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://nodejs.org/en/blog/community/2025-pride&quot;&gt;Open sourced identity&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;Conferences (&lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://confs.tech/javascript&quot;&gt;Javascript&lt;/a&gt;)
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://reactnexus.com/&quot;&gt;React Nexus&lt;/a&gt; July 3-5 Bangalore, India&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bigskydevcon.com/&quot;&gt;Big Sky Dev Con&lt;/a&gt; Aug 2 Bozeman, MT, USA&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.kcdc.info/&quot;&gt;Kansas City Developer Conference&lt;/a&gt; Aug 13-14 Kansas City, KS, USA&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.reactuniverseconf.com/&quot;&gt;React Universe Conf&lt;/a&gt; Sept 2-4, 2025. Wrocław, Poland&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.waysconf.com/&quot;&gt;WaysConf&lt;/a&gt; Sept 16-17&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://cascadiajs.com/2025&quot;&gt;CascadiaJS&lt;/a&gt; Sept 18-19 Seattle, WA, USA&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://squiggleconf.com/&quot;&gt;SquiggleConf&lt;/a&gt; Sept 17-18 Bostom, MA, USA&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bsky.app/profile/react.dev/post/3lmcp4mhmfk2l&quot;&gt;React Conf is back&lt;/a&gt; Oct 7-8, Las Vegas, NV, USA&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;this-month-in-react-june-2025&quot;&gt;This Month in React: June, 2025&lt;/h1&gt;
&lt;p&gt;[00:00] &lt;strong&gt;1-vcarl:&lt;/strong&gt; Hi, Carl here. Just a quick note before we get into this episode. We had a little bit of an issue with the audio recording, so the quality is a little bit lower than I usually go for. Sorry about that. We&#39;ll do better next month.&lt;/p&gt;
&lt;p&gt;[00:11] Hello everyone. Thank you for joining us for the June edition of this month in React, where we recap and digest recent developments in the ever evolving react and web ecosystem. We are coming to you live here in Reactiflux, the place for professional React developers.&lt;/p&gt;
&lt;p&gt;[00:27] We&#39;re supported by infinite red. Consultancy that works in React Native.&lt;/p&gt;
&lt;p&gt;[00:31] I&#39;m Carl, a staff product developer and freelance community leader here in React Plex, where I run community programs like these events and build tools to help keep the community operating.&lt;/p&gt;
&lt;p&gt;[00:41] &lt;strong&gt;2-acemarke:&lt;/strong&gt; Hi, I&#39;m Mark. I maintain Redux. I work at Replay.io io and I apparently spend too much time debating the React team&#39;s documentation and communication.&lt;/p&gt;
&lt;p&gt;[00:51] &lt;strong&gt;1-vcarl:&lt;/strong&gt; Endlessly!&lt;/p&gt;
&lt;h2 id=&quot;0052-job-market&quot;&gt;[00:52] job market&lt;/h2&gt;
&lt;p&gt;[00:52] &lt;strong&gt;1-vcarl:&lt;/strong&gt; Start off with a little bit of job market news. I don&#39;t know, maybe we should stop doing these. &#39;cause I feel like it&#39;s not really in crisis anymore and it&#39;s not really making any dramatic shifts and I feel like I just keep giving about the same update every month. But yeah, data from Indeed trended up for the first time in a while.&lt;/p&gt;
&lt;p&gt;[01:12] True up.io, which also. Attempts to answer about the same question in terms of like, are people hiring in tech shows a slightly more positive trend. So I think that might be like giant people are using Indeed and they are not hiring as aggressively in tech for tech roles and everyone else is using a random smattering of hiring tools and they are hiring. So I wonder if that&#39;s like a big tech versus little tech dichotomy. I don&#39;t know. That&#39;s not based off too much concrete in summation at all.&lt;/p&gt;
&lt;p&gt;[01:43] The layoff charts for June are the best that they&#39;ve been in a year and a half. Fewest number of people laid off by a decent margin and fewest companies running layoffs again by a pretty decent margin, about half for each. Lowest five 50%. So that&#39;s good. That&#39;s nice. I&#39;m not sure if anecdotally feels that much different, but yeah. I don&#39;t know if you disagree, lemme know.&lt;/p&gt;
&lt;p&gt;[02:08] We&#39;re gonna change up order a little bit. Previously we&#39;ve done on job market, the conferences and the releases. I&#39;m gonna throw conferences back at the end because I could tell in the data that people were skipping through it. So we&#39;re gonna move it.&lt;/p&gt;
&lt;h2 id=&quot;0219-new-releases&quot;&gt;[02:19] New Releases&lt;/h2&gt;
&lt;p&gt;[02:19] &lt;strong&gt;1-vcarl:&lt;/strong&gt; Yeah. New releases.&lt;/p&gt;
&lt;h2 id=&quot;0221-shadcn&quot;&gt;[02:21] ShadCN&lt;/h2&gt;
&lt;p&gt;[02:21] &lt;strong&gt;1-vcarl:&lt;/strong&gt; Shadcn pushed out an updated calendar components. In the release notes, they included like a, a code mod to move imports from at rad cy slash whatever to just rad, cy, like top level like barrel import kind of thing. I don&#39;t know what that&#39;s about. I didn&#39;t really see any new releases from RadixUI that mentioned that.&lt;/p&gt;
&lt;p&gt;[02:40] So like I don&#39;t really know why that shift is happening, but like, okay, cool. That seems fine.&lt;/p&gt;
&lt;p&gt;[02:44] &lt;strong&gt;2-acemarke:&lt;/strong&gt; A couple other things about RadixUI UI later on in the discussion.&lt;/p&gt;
&lt;p&gt;[02:47] &lt;strong&gt;1-vcarl:&lt;/strong&gt; Yeah. Oh yeah. We&#39;ve got some main content chatter about them. Just like some Twitter threads, debating, usefulness and whatever. Yeah, more of them later.&lt;/p&gt;
&lt;h2 id=&quot;0255-rechart&quot;&gt;[02:55] rechart&lt;/h2&gt;
&lt;p&gt;[02:55] &lt;strong&gt;1-vcarl:&lt;/strong&gt; Recharts has a major release for the first time in a long time. Their last major release was January 4th, 2023. So two and a half years. That&#39;s a while. Recharts is not a library that I&#39;m often happy to use, but it is a library that I often use because it just makes charts pretty easy. Not always as powerfully and flexibility as I want, but, it&#39;s good enough. It&#39;s pretty great.&lt;/p&gt;
&lt;p&gt;[03:16] The big thing that caught my eye in these release notes was they&#39;re claiming it&#39;s now accessible by default, so you can tap into it in these arrow keys to navigate it. So that&#39;s nice. Accessible charts are hard.&lt;/p&gt;
&lt;p&gt;[03:27] Most people don&#39;t do them, so getting it in the default is lovely. That&#39;s, that should help a lot more charts be access, and then Mark feel like you&#39;ll have more to say on that.&lt;/p&gt;
&lt;h2 id=&quot;0337-vite-7&quot;&gt;[03:37] vite 7&lt;/h2&gt;
&lt;p&gt;[03:37] &lt;strong&gt;2-acemarke:&lt;/strong&gt; Maybe so, so Vite 7 just came out. I&#39;ve actually been having a little bit of trouble just trying to keep track of some, some of the releases, it feels like they&#39;ve, they&#39;ve really sped up some of the development.&lt;/p&gt;
&lt;p&gt;[03:49] They&#39;ve bumped their, their node version support. Part of that is because they want to make use of the relatively recent node support for requiring ESM packages. In other words, importing an ESM module from a CGS module. Which was always the, the sticking point for a lot of the ESM common JS compatibility.&lt;/p&gt;
&lt;p&gt;[04:10] So they&#39;re actually distributing e and Vite 7 as ESM only, which. It feels like a fairly big step in the progress of, you know, the ESM ecosystem. They&#39;re also changing the default browser target to use the baseline, widely available preset in terms of browser features. They also now have some better support for the environment.&lt;/p&gt;
&lt;p&gt;[04:35] API, I&#39;m still a little hazy on what exactly that does. My understanding is it, it allows you to ultimately generate bundles for different target environments, I believe is the best way to put it. So Vite 7 feels like it&#39;s a fairly big release.&lt;/p&gt;
&lt;p&gt;[04:51] &lt;strong&gt;1-vcarl:&lt;/strong&gt; We had talked about the environment a while ago. I also don&#39;t really understand it too well, but definitely like deep in the weeds for library authors or, I don&#39;t know, framework authors. I&#39;ve heard some positive things, but yeah, it seems esoteric.&lt;/p&gt;
&lt;h2 id=&quot;0506-biome&quot;&gt;[05:06] biome&lt;/h2&gt;
&lt;p&gt;[05:06] &lt;strong&gt;2-acemarke:&lt;/strong&gt; Meanwhile, we also have a slew of new formatting and lint tool leases, all seemingly with an emphasis on making things go a whole lot faster. First off Biome, which is, you know, formerly known as Rome back in the day, just released a version two, which is a fairly big deal, partly because they&#39;re, they now actually have some type aware linting rules.&lt;/p&gt;
&lt;p&gt;[05:31] Part of the issue here is that I. Up until now, the only option for doing types based linting was to use the TypeScript ES lint package, and that involves using the TypeScript compiler actually compiling things. And so it&#39;s kind of slow, and I don&#39;t know exactly how they&#39;ve managed to implement this, but Biome now has some form of lightweight type analysis that does not appear to rely on the TypeScript compiler.&lt;/p&gt;
&lt;p&gt;[05:58] And so they&#39;ve used that. To implement things like the no Floating Promises Rule. Now, it does not appear to be anywhere near as comprehensive as what TypeScript ES lent supports, but it is an interesting step in that direction.&lt;/p&gt;
&lt;h2 id=&quot;0611-void-zero&quot;&gt;[06:11] Void Zero&lt;/h2&gt;
&lt;p&gt;[06:11] &lt;strong&gt;2-acemarke:&lt;/strong&gt; Meanwhile, Void Zero, which is the VC backed company behind now Vite and other related build tooling development has released Oxlint 1.0.&lt;/p&gt;
&lt;p&gt;[06:24] So we have another lint tool that is a competitor to ES lint. They&#39;re claiming they have 50 to 100 x speedups and built in support for over 500 ES lint rules. And they say it&#39;s being used in a number of major companies. So if Linting is a particularly slow portion of your build pipeline. You may wanna check that out.&lt;/p&gt;
&lt;h2 id=&quot;0645-prettier&quot;&gt;[06:45] Prettier&lt;/h2&gt;
&lt;p&gt;[06:45] &lt;strong&gt;2-acemarke:&lt;/strong&gt; And meanwhile, prettier 3.6 is out and they&#39;ve been working on an internal rewrite of their existing CLI to try to speed it up as well. It&#39;s not a, it&#39;s not a rewrite and rust, it&#39;s just finding more efficient ways to do the same work in JavaScript. So the general theme here is people want to do linting faster.&lt;/p&gt;
&lt;h2 id=&quot;0707-jest&quot;&gt;[07:07] jest&lt;/h2&gt;
&lt;p&gt;[07:07] &lt;strong&gt;1-vcarl:&lt;/strong&gt; Yeah, we&#39;ve got a new release, new major release from Jest as well. I think we had teased this the other day because they had a beta out. But yeah, first major release in three years. Again, faster perf, faster module resolution with some better ESM support. I know that generally like crawling your modules is one of the slowest is like, you know, broadly one of the slower parts of all of these bundling linting testing, whatever tools.&lt;/p&gt;
&lt;p&gt;[07:34] I wish I knew a little bit more details about the internals of like how just versus Vitest do it differently. &#39;cause my sense is that J is like heavier weight. It like does more, is more, I don&#39;t know, doing more on your disk and like crawling the condenses and all of those kinds of things. Yeah. So like one more place where there&#39;s a focus on performance in our build environment.&lt;/p&gt;
&lt;p&gt;[07:56] &lt;strong&gt;2-acemarke:&lt;/strong&gt; Faster build tools, always a good thing.&lt;/p&gt;
&lt;h2 id=&quot;0757-rn-080&quot;&gt;[07:57] rn 0.80&lt;/h2&gt;
&lt;p&gt;[07:57] &lt;strong&gt;2-acemarke:&lt;/strong&gt; Those who in the audience may have noticed that MO is not here this week. He had a prior commitment and wasn&#39;t able to make it. So I will have to do a poor job of filling in and describing some of the React native changes. React Native 0.80 is out and it looks like the two biggest things out of this are they have frozen support for the legacy architecture.&lt;/p&gt;
&lt;p&gt;[08:18] I believe one of the recent releases made the new architecture default. So they are, they&#39;re seizing work on the legacy architecture, and this also brings support for React 19.1 as well. Now along with that, I believe the current version of the Expo SDK, version 53, does not have support for this directly yet.&lt;/p&gt;
&lt;p&gt;[08:41] If you want to use React Native 80 with Expo, they do have a canary version of the SDK that you can try out at the moment. But full support, I believe is. Or is planned that Expo SDK 54 coming out later this year would have support for React Native 0.81. So good luck trying to juggle those.&lt;/p&gt;
&lt;p&gt;[09:03] &lt;strong&gt;1-vcarl:&lt;/strong&gt; Yeah, I know Expo has visibly been like focusing on release cadence.&lt;/p&gt;
&lt;p&gt;[09:07] I feel like for the last year or so, it seems like they&#39;ve just been releasing something, being constant. And I know that Mo has talked previously about React Native working to have a more frequent release cadence, which is also has been very apparent. Kudos to Expo for like still being able to address this. Even if it&#39;s only in a pre-lease version, we can still test it out.&lt;/p&gt;
&lt;p&gt;[09:28] And also just like, it seems like it speaks well to the cadence that they&#39;re able to hit that they are, Expo is just saying like, yeah, we&#39;ll catch the next one because that&#39;s how fast it&#39;s gonna come out. I do wish Mo was here &#39;cause I feel like I see references here that make me curious to have an expert explain a little more.&lt;/p&gt;
&lt;p&gt;[09:45] They have a good post referenced in these release notes, moving towards a stable JavaScript API. I would love to hear Mo talk about how they are getting rid of JavaScript deep imports, so that, you know, basically just like saying, here&#39;s the public API stop importing things from deep within the project, which makes sense that if you let people import whatever the heck they want from inside of your package, then yeah, you just don&#39;t have a public API and you have to support literally everything. Everything is a break and change. Seems really cool. We&#39;ll have to have Mo catch us up next month.&lt;/p&gt;
&lt;h2 id=&quot;1015-webkit-26-beta&quot;&gt;[10:15] webkit 26 beta&lt;/h2&gt;
&lt;p&gt;[10:15] &lt;strong&gt;1-vcarl:&lt;/strong&gt; Yeah, this is a big one that is, I wish I had slightly more context for, but WebKit Safari version 26 is in beta. They&#39;re jumping from version 18, I believe it was all the way up to 26. So that all of the different, you know, iOS, whatever technology things can all be in sync.&lt;/p&gt;
&lt;p&gt;[10:33] This was announced of a WW BC 25 keynote. Yeah, so like Mac, os, iOS, iPad os, vision os and Watch OS are all now version 26. And so is Safari because the browser is also an operating system. Vision&#39;s a pretty large update and it has like all sorts of things from like cutting edge. Now you can use a model.&lt;/p&gt;
&lt;p&gt;[10:54] HTML tag, if you&#39;re Envision OS to render a 3D model all the way. So like that&#39;s very cutting edge, like future looking high tech, whatever. All the way back to you can also use SBGs as your favicon. A feature that like many other B browsers have had for a decade. So they&#39;re like both pushing the envelope and playing catch up.&lt;/p&gt;
&lt;p&gt;[11:14] Yeah. Safari has the di very different release cadence from other browsers. It&#39;s much closer to like the old style release. Cadence as opposed to how Chrome and Firefox and Edge are all like Evergreen, constantly updating. So I guess it makes sense that we&#39;re gonna have such a huge, massive dump of features, but like definitely check it out because they&#39;ve got all sorts of stuff.&lt;/p&gt;
&lt;p&gt;[11:34] HDR images, web GPU, lots of CSS changes, lots of, you know, new standardized APIs, standardized job J JavaScript, APIs, all sorts of stuff. Finally, Apollo client just shipped a release candidate for version four. The release notes for this version don&#39;t have like a consolidated list of everything that&#39;s changed, but if you scroll back some, and you look at some of the lists of the prior alphas, it&#39;s clear that the, the Apollo team has been very, very busy and I know that.&lt;/p&gt;
&lt;p&gt;[12:05] In some discussions with Lens, who is my fellow Redux maintainer, but also works on Apollo client as his day job. They&#39;ve been doing a lot of work to try to improve some of, and some of the packaging setup that had been, that had stuck around for years. One interesting side point out of this is that there&#39;s a good chance that Apollo client for might actually ship pre-compiled with the React compiler to try to optimize some of the internal hooks and components in the library.&lt;/p&gt;
&lt;p&gt;[12:34] There was a really interesting discussion thread on Blue Sky between Lens from Apollo and Josepha from the React team where they were discussing like, should libraries go ahead and ship like React compiler pre-compiled bundles already? Does it make sense to wait until some of the compiler runtime pieces are more stable, so clear, like.&lt;/p&gt;
&lt;p&gt;[12:58] This is very new and new and unusual territory for all of us library maintainers, and so it&#39;s interesting to see Lynn&#39;s trying to figure out some of these things that for the rest of us, yeah. That question of whether libraries should be pre-compiled with the React compiler definitely seems like a big open one in the ecosystem.&lt;/p&gt;
&lt;p&gt;[13:18] Cool. Alright. We are sponsored by Infinite Red. We are an expert React native consultancy that&#39;s been around since 2015. I. They&#39;re our only sponsor right now, in part because very few companies do as much as they do for the ecosystem. Just they, I don&#39;t know of anyone else who&#39;s done it quite so much for quite so long.&lt;/p&gt;
&lt;p&gt;[13:34] I&#39;ve been seeing the name Internet Red around for as long as I&#39;ve been in React and around React. React Native, which goes back all the way back to like 20 14, 20 15, they host the largest React Native podcast. They organized the largest React native conference in the us. They only do React native and have built over 75 apps for companies from startups to the biggest in the world, other than being great people who&#39;ve done the great things to the ecosystem.&lt;/p&gt;
&lt;p&gt;[14:00] It&#39;s a team of about 30, mostly developers, mostly with more than 10 years of experience, and something like half of them have been there since the company was created. So just, you know, dev shop with Longevity. A dev shop with loyalty to its employees. What wild, they aren&#39;t just a feature factory. They will work alongside your devs and help you develop your own expertise.&lt;/p&gt;
&lt;p&gt;[14:20] So if you&#39;re spinning up a new product, being React native and want some help in the ground running, definitely give them a ring intimate top red. Cool. Okay. Into our main content. Start us off with your posts and talk. Hi. Yes. This is the part where I go off on things for a while, so if you, if you&#39;ve been listening to the podcast for a while, you know, following me on Blue Sky or something, I&#39;ve been involved in a lot of discussions and had a lot of opinions about, I.&lt;/p&gt;
&lt;p&gt;[14:44] A number of the interactions between the React team and the community, as well as a lot of the common misconceptions that have been unfortunately running around in a lot of community threads for a while now. It seems like pretty much every time you open up a discussion, for example, about Next.JS, there&#39;s complaints that the React team has is, you know, too close to next.&lt;/p&gt;
&lt;p&gt;[15:06] Or that Elle invented server components just to, you know, just to make money. Or why is the React team doing all these server things? Does the React team even care about, you know, single page apps anymore? And. A lot of this stuff has been going on for a while, all the way back in January and February when some of the CRE React app deprecation stuff was going on.&lt;/p&gt;
&lt;p&gt;[15:28] I kind of got fed up for a while and I was writing an extremely long blog post that I never actually published. I did a lot of research. I wrote a lot of words. It was cathartic. In reviewing it, I concluded that publishing it probably would&#39;ve burned some bridges, even if the content there was accurate.&lt;/p&gt;
&lt;p&gt;[15:46] But there was, there was some good historical information in there and a number of folks said that it would be worth, you know, trying to publish that. Anyway, so I had a chance to speak at React Summit in Amsterdam a couple weeks ago, and my talk there was actually directly based on some of the content in the post and.&lt;/p&gt;
&lt;p&gt;[16:07] I decided it was worth trying to revisit the draft that I never published and extract the info that was relevant to the talk and hopefully make some of the points that I&#39;d originally tried to think of, but, you know, maybe in a slightly more tact, tactful and less inflammatory kind of way. So really the the post and the talk.&lt;/p&gt;
&lt;p&gt;[16:28] Are trying to push back on a lot of the myths and misconceptions and FUD that have floated around in the React community for the last few years, but also point out some places where I think the React team&#39;s communication has has kind of fallen down. So a lot of people get confused about. The relationship between the React team and the next team who actually invented server components, why they were invented.&lt;/p&gt;
&lt;p&gt;[16:55] So as usual, a good portion of the talk and the post are basically a history lesson. You know, I tried, I did my best to try to recap, as I understand it, the origin of server of server components, the timeline of when they were invented, basically that the React team invented them while they were still at Meta, before Versal ever got involved.&lt;/p&gt;
&lt;p&gt;[17:15] And that it was something the React team invented because they ultimately, they saw the infrastructure that Meta had for server side rendering and data fetching. That was always very specific to meta and it really couldn&#39;t be generalized. And so server components was an attempt to. Implement kinda like a generic version of what Meta had for its own infrastructure, but because Meta had that infrastructure, they really couldn&#39;t iterate and Alpha test the features the way that they had everything else.&lt;/p&gt;
&lt;p&gt;[17:47] They ended up reaching out to Versal and getting Versal to build out the React team&#39;s vision of what they wanted to do. So a lot of this was me attempting to push back on the Versal invented server components to make money narrative. But then I also ended up addressing some of my points of concern where the lack of documentation about server components.&lt;/p&gt;
&lt;p&gt;[18:11] Has been a point of confusion. People not understanding when do I use them, how much should I use them? Is the React telling me to use them or are they optional? As well as a lot of the, the back and forth about why are the docs pushing the concept of frameworks so hard. And so I went into some details on my understanding of the React team&#39;s rationales for actually trained to say frameworks should be the default way to use react.&lt;/p&gt;
&lt;p&gt;[18:39] I put a lot of effort into it. I hope it&#39;s been informative and the feedback to the post and the talk have been pretty good. Dan Abramov actually retweeted it and basically said that, you know, he, he had a couple nitpicks about the way I described some of the timelines and bits of info, and he actually passed me some corrections on the side, which I tried to, to fill in, but he seemed to think it was generally accurate, and also he said that he&#39;d been kind of stuck.&lt;/p&gt;
&lt;p&gt;[19:06] Debating whether to write his own history post, and he might end up being able to write one. Now that I&#39;ve done most of the heavy lifting on it, that at least tells me I was directionally accurate. I. Like I can&#39;t have been too far off if he wanted to correct me on. So I don&#39;t expect that my me writing a post and doing a conference talk is going to silence a lot of the confusion, but at least I&#39;ve done my best to try to clarify things.&lt;/p&gt;
&lt;p&gt;[19:33] So hopefully we&#39;ll see. Yeah, I think it&#39;s really valuable is to just check in every couple of years I&#39;m like, what is. True. What did happen? What, what were the facts here? Oral history is very, very valuable. Sometimes capture some of that local knowledge. You put it in the paper. Yeah. I would be very curious to see what kind of oral history Dan OV can write though.&lt;/p&gt;
&lt;p&gt;[19:52] That&#39;s, uh, you know, you and I have been paying attention for a long time, but we have not been. Operating anywhere near the same level as Dan has for as long as he has. I would say, I hope it doesn&#39;t feel unfair to make the same claim for you, but useful post. Interesting. I think it&#39;s interesting too, how I.&lt;/p&gt;
&lt;p&gt;[20:10] As big as reactors, you know, the millions of people using it and relying on it and affected by it. At its core, the people in control of it is still like very countable. You know, it&#39;s not like unaccountable machine of like hundreds of people turning knobs and dials and you know, like it is at the end of the day, very much a core group of a handful of people making a lot of these decisions and doing a lot of this work.&lt;/p&gt;
&lt;p&gt;[20:37] And I feel like that&#39;s maybe, I don&#39;t know, that feels relevant when we&#39;re discussing its evolution and such. There&#39;s a team page in the React Docs and that page Curie lists about 20 people. There&#39;s about 13 to 15 at Meta at the moment. There&#39;s about five people at Versal, and then there&#39;s two or three sort of independent slash emeritus people.&lt;/p&gt;
&lt;p&gt;[21:00] So for example, Dan Abramov is not directly on the team at this point, actually. I&#39;m not even sure if he&#39;s still listed on the page. I would&#39;ve to double check. Sophie Alpert, who was at Meta for a number of years is still listed on the team page. I don&#39;t think she does a lot of development at this point, but still involved in discussions.&lt;/p&gt;
&lt;p&gt;[21:19] So it&#39;s about 20 ish people that would be considered sort of the, the core team that&#39;s separate from, you know, whoever might be doing like React native or other pieces like that. Right. React native is its own court team, which I think is larger. Yeah, I can confirm. Dan Amont was still listed on the meet between page second, so very highly along with me giving my talk.&lt;/p&gt;
&lt;p&gt;[21:43] Earlier in the afternoon. Tanner Winsley did a talk about couple different things. Some of it was, you know, pitching the various 10 stack pieces. So router query the upcoming 10 Stack start framework as well. But part of his thesis was that. Single page apps are still by far the dominant way to build React, even if there&#39;s been more of an emphasis on server side pieces in the last few years.&lt;/p&gt;
&lt;p&gt;[22:10] He really likes single page apps and a lot of his goal is to build good tooling that would be used by single page apps. I don&#39;t think any of the talks from React Summit are are online yet. I think they said they would try to have &#39;em online within two to three weeks after the conference. I haven&#39;t seen a notification that any of &#39;em were up yet, but I would definitely recommend watching Tanner&#39;s talk once the video for that&#39;s available.&lt;/p&gt;
&lt;p&gt;[22:38] Yeah, maybe we can, oh wait. Oh wait, I see a playlist. No, there&#39;s only five videos on it. Yeah. Maybe we&#39;ll be able to share those out next month. Yeah, they, I believe they, they&#39;re generally put up directly on get nation.org or.com, I think, rather than being listed in the YouTube channel. But we&#39;ll have to see.&lt;/p&gt;
&lt;p&gt;[22:57] Okay. I do see a React Summit 2025 playlist that has a couple of videos with like children views, maybe a ways to watch. Yeah. Moving on. Remix React router, going back to last month. So we&#39;ve had a lot of. Back and forth between what is Remix, what is React Router? First we had React Router, the client side, LI Library.&lt;/p&gt;
&lt;p&gt;[23:21] Then we had Remix the SSR framework, and then we had Brian Forres announcement at React Conf, I think two years ago that most of the features in Remix we&#39;re going to migrate back to React router. And so React router gained things like loaders and a framework mode, and they announced that Remix was going into some kind of hibernation.&lt;/p&gt;
&lt;p&gt;[23:46] What was Remix is now basically all in React router, version seven I. And so Remix had kind of stopped development at version two last month. We talked about the announcement post where they said that Remix V three is coming. It&#39;s going to be very different. It&#39;s not just like, you know, upgrade to the latest version of React Features or something like that, but instead that it would be.&lt;/p&gt;
&lt;p&gt;[24:12] A new framework, one that actually is gonna use a fork of the pre-ACT alternative library, and with various emphasis on things like LLM based development and no bundling. That&#39;s the context for where things stand with Remix and react Router as a whole. So from there, Ryan for and Michael Jackson are both pr, you know, still pretty active on Twitter and they&#39;ve been making a lot of comments that are either teasing things in directions that they want to go with Remix, but also, I&#39;m not entirely gonna call them like clickbait or flame bait posts.&lt;/p&gt;
&lt;p&gt;[24:55] But kind of close stating a number of opinions about React itself that frankly make me very, very, very confused about what it is. Remix V three is actually even gonna look like. An example of this would be that Michael Jackson recently tweeted that he&#39;s now very disillusioned with React Hooks. You might even remember that Ryan Florence did one of the original talks at React Con 2018 where he helped, you know, demo React hooks for the first time.&lt;/p&gt;
&lt;p&gt;[25:22] And you know, granted, this is Michael&#39;s comment, not Ryan&#39;s, but I think it kind of shows their shift in mindset over the last seven years. Yeah, definitely big moves. I don&#39;t know, there&#39;s. They&#39;ve been such big figures throughout my career. Like when I was learning React, I learned React rather in parallel, in like literally 2014.&lt;/p&gt;
&lt;p&gt;[25:44] And it&#39;s a little bit funny to have like been there for the whole saga because I&#39;ve just watched them go like back and forth and back and forth on like what should be the API do. We care about data fetch at the router level. Just like watching them explore this and like watching their opinions shift and evolve and like double back and unfold in slightly different directions.&lt;/p&gt;
&lt;p&gt;[26:06] It&#39;s, I don&#39;t know, it is a bit of a surprise. I, I don&#39;t know. It is and isn&#39;t surprising to see Michael Jackson here come out against hooks. Also, I&#39;ll just say I was trying to confirm whether Michael Jackson still worked at Remix post Shopify acquisition, but I, I had a funny interaction years ago, managed to get enough of the profile in the ecosystem where Michael Jackson was following me on Twitter and we had a interaction during COVD about like lockdown stuff, where he was skeptical of lockdown.&lt;/p&gt;
&lt;p&gt;[26:36] And I was like, it&#39;s keeping people safe. And he ended up unfollowing me. So I don&#39;t know, like that felt like, that felt like a moment, that was a moment for me. I dunno, big famous person in the ecosystem unfollows you on Twitter. Like it stuck in my head and I don&#39;t know, it&#39;s just like, to me that feels like that feels relevant here as like point of contrarian and like, I don&#39;t know.&lt;/p&gt;
&lt;p&gt;[26:56] It&#39;s seemed since then that there was kinda like a closing off since then of him being like, Nope, I believe what I believe and I&#39;m very confident that it is right. And like, screw all you. So I don&#39;t know. This is interesting. On the one hand, like hell yeah. Know your principles live by them and put the work in and like he&#39;s doing that.&lt;/p&gt;
&lt;p&gt;[27:16] Heck yeah. It&#39;s interesting hearing him say like, I don&#39;t like hooks. They&#39;re not great. And also like I relate to that. I don&#39;t know, like I, I started like learning hooks and like rewriting a bunch of code and using them professionally for a number of years. It felt like there was a right way to solve the problem.&lt;/p&gt;
&lt;p&gt;[27:35] It felt like I was, it felt less like I was writing code and like doing a thing and more like I was figuring out a puzzle somebody else had made with a right answer. And if you didn&#39;t get just the right answer, like you kind of had to start over. You know, it felt video gamey in that way of like, you make a bunch of progress and then you realize that you&#39;re at a dead end and it&#39;s like, let me start over.&lt;/p&gt;
&lt;p&gt;[27:54] I think that, you know, that feels like what he&#39;s complaining about here. You know, everything about them just seems so unnecessarily complex. But then he is also like down on signals, which is what a lot of other people are very pro. I&#39;m also skeptical having used, I don&#39;t know there, I hear there are differences from event emitters, but I&#39;m skeptical that the differences are that significant.&lt;/p&gt;
&lt;p&gt;[28:16] I keep hearing similar trade offs about circular dependencies and like event storm type of stuff. So if he&#39;s rejected like pokes and signals, which are the two top of mind ways of dealing with reactivity in React. And he&#39;s also stated the intent to use a fork of a fork of react in Remix D three. Yeah, whatever that&#39;s gonna be called.&lt;/p&gt;
&lt;p&gt;[28:39] I don&#39;t know. It&#39;s interesting. Like it doesn&#39;t sound like it&#39;s react anymore. It sounds like it&#39;s, he&#39;s gonna try and explore. The same problem space that React has been exploring, but doing so while challenging some of the core assumptions. So I don&#39;t know, it&#39;s space to watch. Yeah. And, and to be clear, like I&#39;m, I&#39;m not sitting here and saying like, oh no, Michael Jackson hate hooks.&lt;/p&gt;
&lt;p&gt;[29:00] He&#39;s a bad person. And anyone who&#39;s actually. Excuse, react, understands that hooks have trade-offs. They are not perfect. They have a different set of trade-offs than class components did. There are a lot of pain points, depths, arrays, data flow, you know, reactivity, mental models, et cetera. I am certainly very well aware that.&lt;/p&gt;
&lt;p&gt;[29:21] Hooks have their own set of trade-offs and flaws. But yeah, like my point, looking at the thread and this discussion is basically what you were saying, like Remix was a react based framework in version one and version two, Remix V three is not a React based. Framework, but given that they don&#39;t seem to like hooks and they don&#39;t seem to like signals at this point, I just honestly have no idea what it is they&#39;re even trying to build or what the feature set is, what the.&lt;/p&gt;
&lt;p&gt;[29:56] Usage patterns are supposed to be. I, I am just, I, I, I don&#39;t have a good mental model for what it is they&#39;re trying to do at this point, just by reading the discussion and the tweets. I believe they said that, I think there&#39;s a, a Remix jam conference coming up later this year. I think possibly in Toronto, if I remember hearing correctly.&lt;/p&gt;
&lt;p&gt;[30:18] I don&#39;t have a date for that off the top of my head, but I think it&#39;s this fall, and I think I&#39;ve seen them say that they will have some announcements to make. At Remix Jam, which is understandable. I don&#39;t know, like I&#39;m curious to see what they&#39;ve got, but it, it doesn&#39;t seem like we&#39;ll really have a decent understanding until they make an actual announcement and then there&#39;s good documentation to look at, and then we could critique that.&lt;/p&gt;
&lt;p&gt;[30:39] Yeah. Right. So, I don&#39;t know. I&#39;m curious. If they have my attention, for sure. It feels like they&#39;re being coy about it too. I feel like they have a lot more of this banged out than they&#39;re talking about and you know, I feel like there&#39;s a private group chat or like a secret repo somewhere that it&#39;d be very fascinating to get access to.&lt;/p&gt;
&lt;p&gt;[30:57] Another little bit about this, they have posted about the open governance. Technical committee, steering committee that reactor adder will now have, I hold some skepticism, some level of skepticism just based on like the contents of this governance stock that you know, this governance announcement blog post, like notably the only people on the steering committee at inception, our existing Remix and react to router contributors, the announcement and the governance model.&lt;/p&gt;
&lt;p&gt;[31:28] Both focus very heavily on technical goals while discussing governance and how this is going to be open and like, you know, participant participatory from the ecosystem and whatever. They set up a lot of fences pretty early and strongly of this is what we care about. This is the direction we&#39;re gonna be going.&lt;/p&gt;
&lt;p&gt;[31:46] So like saying, not including outside people in the initial steering committee. And very aggressively setting direction while discussing open governance to me says this is visible governance, but I don&#39;t know if it&#39;s gonna be open to that, open to outside participators. Yeah. This feels reminiscent of like some of the working groups in the React ecosystem where they, we were just, you know, a little bit, they had blinders on.&lt;/p&gt;
&lt;p&gt;[32:11] They were gonna do their thing and they did their thing and that&#39;s great, but it&#39;s, it&#39;s not that open, it&#39;s not really that participatory. So this is, this is one that I&#39;ve only partly read, but it feels like there&#39;s some amount of relevance. So the RAD X UI is a headless UI library that is pretty popular, especially because it&#39;s been used by the Shad CN component library.&lt;/p&gt;
&lt;p&gt;[32:36] But RAD X UI has been borderline unmaintained for quite a while. I believe the library itself got bought out a while back by a company called Work Os. And there&#39;s now basically a, a halftime maintainer of the library. And I&#39;ve actually spoken to that maintainer before at a conference and he is like, yeah, I&#39;m, I&#39;m pretty burned out.&lt;/p&gt;
&lt;p&gt;[32:59] And I would almost rather like not even do anything with redix at this point. I. So there was some chatter in the last few weeks about whether people really ought to even be using it at this point. And apparently one of the original co-creators of Readex is now working on a competing package called Base ui.&lt;/p&gt;
&lt;p&gt;[33:20] And so basically saying that, look, Readex is unmaintained. Try using base ui, try using Aria kit. So I, I don&#39;t necessarily have a lot more feedback and thought and no, I have not seen Theo&#39;s video on it, so I have no opinions there. I will say that just because something is not getting active maintenance does not mean that the code is dead or suddenly more broken.&lt;/p&gt;
&lt;p&gt;[33:46] But I can definitely understand people&#39;s reluctance to use something that isn&#39;t getting, you know, like still getting active fixes. Yeah, I do have some opinions. I think that to some extent, like I don&#39;t really expect that much active maintenance from a like mature and wide used component library because there&#39;s not really that much changing in how you would develop a component library.&lt;/p&gt;
&lt;p&gt;[34:12] Like there has been so many component libraries. All like, you know, building on each other and exploring different directions and like pulling different types of abstractions and different types of like interactivity or whatever, different developer experiences. Going back for like long enough that it&#39;s pretty well trot ground at this point, and for a very long time it reacts life.&lt;/p&gt;
&lt;p&gt;[34:37] The patterns and the abstractions and the ecosystem they existed in were churning very heavily, and so it, it was not that surprising to see new component libraries coming out like every, you know, six months because there were meaningful differences. Every six months, you know, like, you know, is, is this written with higher order components or render props or hooks or, right.&lt;/p&gt;
&lt;p&gt;[35:00] Oh, you know, like when I first started, I started writing things with mix-ins, and then I was like, wow, mix-ins are, and then someone was like, oh, here&#39;s a higher order component. I was like, oh, that&#39;s cool. Let me try that. And then someone was like, here&#39;s a render prop. Here&#39;s a hook. You know? Now node and MPM support different modes of like consuming libraries.&lt;/p&gt;
&lt;p&gt;[35:21] And so now as a component library maintainer, I need to go refactor everything to support tree shaking or to be ESM only. So like there&#39;s just been so many big seismic shifts that like, yeah, we got used to that, but it&#39;s not really, that hasn&#39;t really been strongly the case for a minute now, like I would say, I.&lt;/p&gt;
&lt;p&gt;[35:44] 2022. I feel like it was when we had a, started getting, you know, as an ecosystem, the wisdom of how to use hooks had really settled down pretty well. Like we, we explored a lot of patterns and figured out things that did or did not work. And Hooks came out in 2018. 2022 is like four years of like playing with them.&lt;/p&gt;
&lt;p&gt;[36:06] And then that was three years ago. So like we&#39;ve been, we&#39;ve had a stable set of primitive tools within React. For doing abstractions for seven years now, which is absolutely, you know, that&#39;s longer than pre hooks. We only have three years before hooks existed. Four years, maybe five. No, it was 2013 when it came out.&lt;/p&gt;
&lt;p&gt;[36:25] So like that&#39;s more time with hooks than we had without hooks. So I don&#39;t know, like. I see this thread started with hot tape using Chad CN slash radix. The liability at this point, and maybe this is also an echo of a point that I try to drive home periodically on this podcast of like there are many different audiences using React and if you&#39;re an indie hacker than your constraints are extremely different from someone four years into maintaining a legacy application that&#39;s making tens of millions dollars for its parent company.&lt;/p&gt;
&lt;p&gt;[36:56] So like. This hot take sounds to me like someone doing small team build it and set it down projects, not somebody maintaining a legacy application. So like, sure, if you are trying to use the latest, greatest, sharpest leading edge tools, I. Is maybe that, not that name water, but I don&#39;t think it&#39;s getting rusty that quickly.&lt;/p&gt;
&lt;p&gt;[37:16] So like if you are not building a new thing every three months, I think it&#39;s probably fine. I dunno. Seems okay. And like, and you know, oh there was a really great, oh shoot, did I lose the link? There&#39;s a really great, I. Response that I saw from the maintainer of chat already, just baed it in. Lovely. Yes, thank you.&lt;/p&gt;
&lt;p&gt;[37:33] You just did that. Yeah. And he says, he says a lot of things that resonate with me that I think I have hit on here. Like here&#39;s what I&#39;d suggest already. There&#39;s a quote here, here&#39;s what I&#39;d suggest already using redix and prod. Stick with it. Starting a new project. Consider ics React Aria or Aria Kid.&lt;/p&gt;
&lt;p&gt;[37:49] All great choices. So like, yeah, that&#39;s, I would agree with all of that. And he closes this, what I&#39;d suggest section with Shae is built for this code. Your own code can approve, rewrite or replace and like, yeah, that&#39;s the whole like reason for Shae and being built in the way it was, is that like it&#39;s not a library if you&#39;re unhappy with it, it&#39;s your code, it&#39;s hidden, your repo, you committed it.&lt;/p&gt;
&lt;p&gt;[38:11] So change it, commit something else. So I don&#39;t know. It seems cool. This seems, not that I have a lot of opinions on this, but at the end of the day, my opinion is like chill out, care less. Do the thing that&#39;s right for you. I guess in a very broad level, the JS ecosystem is entirely too prone to saying Tool X is dead because tool Y exists.&lt;/p&gt;
&lt;p&gt;[38:34] Yeah, I could rant about that. The human trend towards X is dead long lives. The new X on with Y? Yeah. Okay. I think we&#39;ve beaten that to death now. Okay. Into our lightning round. I don&#39;t have too much to say on this, but I like it. This is a blog post. Of somebody writing React components. Enclosure, this is part three of his series, and that just seems to be, I don&#39;t know.&lt;/p&gt;
&lt;p&gt;[39:01] I love seeing people play around with server components more and playing around in different languages, in different room times. Is extra interesting, so that&#39;s cool. Just a great like use case, write up. There&#39;s been a subset of the closure script, whatever community that&#39;s used, react in their own way for many years now.&lt;/p&gt;
&lt;p&gt;[39:21] So seeing, seeing someone attempt to bring server components over in that direction&#39;s kind of cool. Dan Abramov has continued to crank out blog posts and he put out a couple more since we did our, our last podcast. He wrote one on progressive JSON, where he talks about how server components will progressively send over pieces of JSON and insert placeholders via suspense.&lt;/p&gt;
&lt;p&gt;[39:44] And then he did another post on how imports work with server components. And the majority of this post actually doesn&#39;t have anything to do with. Server components per se. It&#39;s really describing how the JavaScript module ecosystem works and then brings in some bits about how server components allow you to connect the dots between the client side and the server side, as well as enforce that certain code only exists on one side or the other.&lt;/p&gt;
&lt;p&gt;[40:13] We&#39;ve got new ES 2025 out, which seems pretty good. Man, I, it, it took me a little bit to catch up on. Order of operations and what came out when. So this is everything. This contains everything that went to stage four, more or less over the past year. The most recent stage four is going out in 2026. So this what&#39;s contained here is Sync Iterator Helpers Promise.&lt;/p&gt;
&lt;p&gt;[40:40] Try some new set methods. Methods on the set primitive. That is JSON modules for imports. Import attributes and then a couple of like Redex updates for escape and modifiers and main capture capture groups. Sync iterators. Sync Iterator helpers are definitely the most like, interesting thing on this list to me.&lt;/p&gt;
&lt;p&gt;[41:00] Just like they&#39;re the, the number of times that I&#39;ve taken a set or, you know, some iterable and then spread it out into an array so that it can map over. It is like constantly. I, every time I use an Iterable, I&#39;m doing stuff like that because I like using e. Map and four each more than I like doing four ofs, so that&#39;s cool.&lt;/p&gt;
&lt;p&gt;[41:19] I&#39;m excited to see that. Just being able to natively map over Iterable is lovely and I love it. One thing that&#39;s probably worth noting is that apparently the iterator support is, might be a little better for perf in some cases because it doesn&#39;t have to create a separate array every time you do like a filter or a map, right?&lt;/p&gt;
&lt;p&gt;[41:37] That&#39;s the main thing I think about every time I do that. Oh man, I&#39;m just iterating a new array for no reason. New RA for no reason and kind of related promise that try is sort of a similar type of performance optimization, you know, performance micro optimization. This, the last time I was reading about it, the advantage I saw is that it lets you, it lets you ignore whether something is or is not a promise without skipping a tick.&lt;/p&gt;
&lt;p&gt;[42:03] If it is a promise, you know, and you do a dot, then like, okay, it&#39;s gonna consume a tick. But if it&#39;s not a promise and you wanna just run something afterwards. All of the like poly fills for something like promise try that would let you exit. Whether or not it returns, a promise would consume a tick. So now that, that&#39;s the advantage here is if it, if you&#39;re looking for that, it just is a little bit faster.&lt;/p&gt;
&lt;p&gt;[42:27] It&#39;s a little bit less talking. Then the, the set methods are a very nice, convenient thing. Sets now have built-in methods for intersection union difference, and a couple other things, which is something that really should have been in there from the beginning. Yeah. Definitely, there&#39;s so many more details on Axel Meyer&#39;s blog, so like definitely the dive into that and yeah, little teaser of ES 2026 is they have already sh shipped.&lt;/p&gt;
&lt;p&gt;[42:57] Well, they&#39;ve already landed. Error is error, like an identity function for errors. So you can actually get like type safety in catch blocks. More easily. That is stage four, but it did not make the cutoff for S 2025, so that&#39;ll be out in 2027. There was a post on the Shopify engineering blog about the future of React Native Graphics Web GPU, SKIA and beyond.&lt;/p&gt;
&lt;p&gt;[43:21] The land of low level 2D graphics toolkits is complex with. Wrappers and abstractions and cross compat and all kinds of other layers of complexity. And so the post goes into into details on the existing React Native ski, a package for 2D graphics, how they&#39;ve been able to add web GPU support to React native so they can do things like running three JS inside and some of the other upcoming improvements to React Native Skia as well.&lt;/p&gt;
&lt;p&gt;[43:51] Yeah, I, I know I&#39;ve heard Mo talk about Yeah. A couple of times. See it getting, I don&#39;t know, broader. It seems cool. It&#39;s neat to see it still going, still chugging along. Cool. This is a personal plug. I wrote a blog post for the node js blog. I. It&#39;s June, it&#39;s Pride month. I&#39;m proud. I have not always, I have accepted within the last couple of years that I am queer and began understanding what the heck that actually means.&lt;/p&gt;
&lt;p&gt;[44:18] I was asked to write a blog post for Pride and I pulled together one discussing open source and it&#39;s parallels with queer identity and how you know, we all take the labels that exist. Learn from them, incorporate them into our understanding of ourselves and use those as a springboard to find new things.&lt;/p&gt;
&lt;p&gt;[44:38] So, I don&#39;t know. I&#39;m proud of it. I like it. It&#39;s a good post if you&#39;re interested. Check it out. Yeah, I, I&#39;ve been checking the Twitter replies on the announcement and yeah. Yep. Those people still exist. They don&#39;t like it. So anyway, it&#39;s all I&#39;ll say on that. Closing with conferences, we have a quite a number of conferences coming up, like basically next week, July 3rd through fifth.&lt;/p&gt;
&lt;p&gt;[45:00] Is React Nexus in Bangalore, India. There is Big Sky devcon out in Bozeman, Montana. Which seems cool. I don&#39;t know. I I appreciate that. It&#39;s called Big Sky. I know that there&#39;s a, I think there&#39;s a big Sky National Park and I, I used to do astrophotography, so big skies are like near and dear to my heart. So this one just looks sweet.&lt;/p&gt;
&lt;p&gt;[45:22] I don&#39;t know. I don&#39;t have any, there&#39;s not no other reason beyond that for me to have an affinity foot, but I like it. So if you can get up to Bozeman, Montana. There&#39;s Kansas City Developer Conference, August 13th through 14th of Kansas City, Kansas. KCBC. 2025, which made me assume from the label that Kent c Dodds might be affiliated, but he is not.&lt;/p&gt;
&lt;p&gt;[45:42] It is not. Kent c Dodds conference. It&#39;s Kansas City Developer Conference. There is React Universe, September 2nd through fourth in Poland. Then September 16th and 17th, Wacon also in Poland back to back pretty much after Wacon. There&#39;s Cascadia Js up in Seattle, Washington, September 18th and 19th. So I think Squiggle conf is happening in Boston the exact same time.&lt;/p&gt;
&lt;p&gt;[46:07] I. Yeah, you&#39;ve got SW Con, September 18th, 19th, Boston, Massachusetts. They are great. I plan to be there. This is slightly further afield for further down the line, but React Cons will be back in LA in Las Vegas. I. October 7th and eighth. So yeah, I was there last year and it was a pretty great time.&lt;/p&gt;
&lt;p&gt;[46:26] Definitely check it out. Although tickets are expensive and lottery system, so good luck. That&#39;s everything we got for you this month. Thank you so much for joining us. We will be back next month. I hesitate to promise on Wednesday because we have not done that in a minute, but maybe next month on Wednesday here in the live stage, or we&#39;ll be back in your podcast feed just as soon as we can after that.&lt;/p&gt;
&lt;p&gt;[46:46] Scheduling is hard. Yo scheduling is so hard. We gather sources from this week in React Bites. Do Dev React status, Next.JS Weekly the React JS subreddit. And here in react to plugs from the Tech News Andres channel. If you have any news that you wanna share with us. Tech Reads and News is a great place to do so, or you can send it to us at &lt;a href=&quot;mailto:hello@reactiveflex.com&quot;&gt;hello@reactiveflex.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;[47:09] If this is a show that you get value from and would like to support, one of the best ways you can do so is give it a review on whatever platform you listen to, listen to it on, and just share it with friends, share it with coworkers. Go to a meetup and say, Hey, there&#39;s this great podcast. I like. Yeah, thanks so much for listening.&lt;/p&gt;
&lt;p&gt;[47:25] We&#39;ll see you next month. Take care.&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2025-06</link><guid isPermaLink="false">reactiflux-tmir-2025-06</guid><pubDate>Sun, 29 Jun 2025 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>TMiR 2025-05: Dan explains RSC. Remix v3? React core team WIP?</title><description>&lt;iframe src=&quot;https://creators.spotify.com/pod/show/reactiflux/embed/episodes/TMiR-2025-05-Dan-explains-RSC--Remix-v3--React-core-team-WIP-e33nc5a/a-abvq82p&quot; height=&quot;102px&quot; width=&quot;400px&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#quick-hits&quot;&gt;00:54&lt;/a&gt;]&lt;/code&gt; Quick hits
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#job-market-fred-data-layoffsfyi-trueupio&quot;&gt;00:57&lt;/a&gt;]&lt;/code&gt; Job market: &lt;a href=&quot;https://fred.stlouisfed.org/series/IHLIDXUSTPSOFTDEVE&quot;&gt;FRED data&lt;/a&gt;, &lt;a href=&quot;https://layoffs.fyi/&quot;&gt;Layoffs.fyi&lt;/a&gt;, &lt;a href=&quot;https://www.trueup.io/job-trend&quot;&gt;Trueup.io&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#conferences-react-javascript&quot;&gt;01:19&lt;/a&gt;]&lt;/code&gt; Conferences (&lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://confs.tech/javascript&quot;&gt;Javascript&lt;/a&gt;)
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#react-summit-june-13-17-amsterdam-nl&quot;&gt;01:20&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactsummit.com/&quot;&gt;React Summit&lt;/a&gt; June 13-17 Amsterdam, NL&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#render-atl-june-11-13-atlanta-ga-usa&quot;&gt;01:57&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.renderatl.com/&quot;&gt;Render ATL&lt;/a&gt; June 11-13 Atlanta, GA, USA&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#sponsored-by-infinite-red&quot;&gt;02:12&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://infinite.red/&quot;&gt;Sponsored by Infinite Red&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#new-releases&quot;&gt;02:59&lt;/a&gt;]&lt;/code&gt; New releases
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#tanstackdb&quot;&gt;03:01&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/TanStack/db&quot;&gt;TanStack/db&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#legend-list-10-released&quot;&gt;05:28&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/jayz.us/post/3lni5ofbuvs2s&quot;&gt;Legend List 1.0 released&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#redux-toolkit-v280-and-bugfixes-after&quot;&gt;06:48&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/reduxjs/redux-toolkit/releases/tag/v2.8.0&quot;&gt;Redux Toolkit v2.8.0&lt;/a&gt; (and bugfixes after)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#mui-v71&quot;&gt;07:37&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/mui/material-ui/releases/tag/v7.1.0&quot;&gt;MUI v7.1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#jest-has-a-v30-beta3-4-out-first-alpha-of-it-was-published-october-2023&quot;&gt;08:30&lt;/a&gt;]&lt;/code&gt; Jest has a v30 &lt;a href=&quot;https://github.com/jestjs/jest/releases/tag/v30.0.0-beta.3&quot;&gt;beta.3&lt;/a&gt; + 4 out. &lt;a href=&quot;https://github.com/jestjs/jest/releases/tag/v30.0.0-alpha.1&quot;&gt;First alpha&lt;/a&gt; of it was published October 2023&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#zustand-505-jotai-2124-and-5&quot;&gt;09:11&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/pmndrs/zustand/releases&quot;&gt;Zustand 5.0.5&lt;/a&gt;, &lt;a href=&quot;https://github.com/pmndrs/jotai/releases&quot;&gt;Jotai 2.12.4 and .5&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#devstore-deprecated&quot;&gt;09:17&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/jotaijs/status/1919778234037878919&quot;&gt;devstore deprecated&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#radix-has-new-primitives-onetimepasswordfield-and-passwordtogglefield&quot;&gt;09:28&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.radix-ui.com/primitives/docs/overview/releases&quot;&gt;Radix&lt;/a&gt; has new primitives: &lt;a href=&quot;https://www.radix-ui.com/primitives/docs/components/one-time-password-field&quot;&gt;OneTimePasswordField&lt;/a&gt; and &lt;a href=&quot;https://www.radix-ui.com/primitives/docs/components/password-toggle-field&quot;&gt;PasswordToggleField&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#ant-design-525&quot;&gt;09:38&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://ant.design/changelog#5250&quot;&gt;Ant Design 5.25&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#react-aria-may-19-2025-release&quot;&gt;10:02&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react-spectrum.adobe.com/releases/2025-05-19.html&quot;&gt;React Aria May 19, 2025 release&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#relay-19-with-react-19-support&quot;&gt;10:21&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/facebook/relay/releases/tag/v19.0.0&quot;&gt;Relay 19&lt;/a&gt; with React 19 support&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#storybook-9&quot;&gt;10:29&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v9.0.0&quot;&gt;Storybook 9&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#main-content&quot;&gt;10:38&lt;/a&gt;]&lt;/code&gt; Main Content
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#expo-sdk-53-release&quot;&gt;10:45&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://expo.dev/changelog/sdk-53&quot;&gt;Expo SDK 53 release&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#packagejson-imports-support&quot;&gt;16:01&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/satya164/status/1916095938604548366&quot;&gt;Package.json imports support&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#react-router-rsc-preview-and-other-rsc-topics&quot;&gt;17:32&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://remix.run/blog/rsc-preview&quot;&gt;React Router RSC preview&lt;/a&gt; and other RSC topics:
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#vite-community-pr-to-add-rsc-support&quot;&gt;20:49&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/facebook/react/pull/33152&quot;&gt;Vite community PR to add RSC support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#leerobs-list-of-other-rsc-explorations&quot;&gt;21:33&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/leerob.com/post/3lo4l2rmy7k2b&quot;&gt;Leerob’s list of other RSC explorations&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#more-dan-posts-like-static-as-a-server-and-one-roundtrip-per-navigation&quot;&gt;21:44&lt;/a&gt;]&lt;/code&gt; More Dan posts, like &lt;a href=&quot;https://overreacted.io/static-as-a-server/&quot;&gt;Static as a Server&lt;/a&gt; and &lt;a href=&quot;https://overreacted.io/one-roundtrip-per-navigation/&quot;&gt;One Roundtrip Per Navigation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#redwoodsdks-your-react-framework-feels-broken&quot;&gt;22:33&lt;/a&gt;]&lt;/code&gt; RedwoodSDK’s &lt;a href=&quot;https://rwsdk.com/blog/your-react-meta-framework-feels-broken&quot;&gt;“Your React Framework Feels Broken”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#remix-v3-announcement&quot;&gt;23:20&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://remix.run/blog/wake-up-remix&quot;&gt;Remix v3 announcement&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#discussion-between-evan-you-and-michael-jackson-about-bundling-hmr-approach-and-tradeoffs&quot;&gt;26:04&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/mjackson/status/1928297364726632499&quot;&gt;Discussion between Evan You and Michael Jackson about bundling / HMR approach and tradeoffs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#react-core-wip&quot;&gt;29:56&lt;/a&gt;]&lt;/code&gt; React Core WIP
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#react-mcp-server&quot;&gt;30:08&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/facebook/react/tree/main/compiler/packages/react-mcp-server/src&quot;&gt;React MCP server&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#concurrent-store-skeleton-pr-a-concurrent-compatible-integration-for-external-libraries&quot;&gt;34:08&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/facebook/react/pull/33215&quot;&gt;“Concurrent store” skeleton PR&lt;/a&gt; a concurrent-compatible integration for external libraries&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#suspenselist-being-worked-on-again&quot;&gt;35:49&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/search?q=repo%3Afacebook%2Freact%20SuspenseList&amp;amp;type=pullrequests&amp;amp;s=created&amp;amp;o=desc&quot;&gt;&amp;lt;SuspenseList&amp;gt; being worked on again&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#compiler-integrations-with-swc-and-oxc&quot;&gt;36:29&lt;/a&gt;]&lt;/code&gt; Compiler integrations with &lt;a href=&quot;https://github.com/swc-project/swc/pull/10475&quot;&gt;SWC&lt;/a&gt; and &lt;a href=&quot;https://github.com/oxc-project/oxc/issues/10048&quot;&gt;OXC&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#apple-app-store-epic-games-saga-30-apple-cut-ruled-unlawful-in-the-us&quot;&gt;37:19&lt;/a&gt;]&lt;/code&gt; Apple App Store Epic Games Saga 30% &lt;a href=&quot;https://www.macrumors.com/2025/05/19/epic-asks-judge-apple-approve-fortnite-app-store/&quot;&gt;Apple cut ruled unlawful in the US&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#next-reducing-vercel-mentions-in-docs&quot;&gt;40:59&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/vercel/next.js/pull/78557&quot;&gt;Next reducing Vercel mentions in docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#-lightning-round-&quot;&gt;45:52&lt;/a&gt;]&lt;/code&gt; ⚡ Lightning round ⚡
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#shared-element-transitions-in-reanimated&quot;&gt;45:54&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/software-mansion/react-native-reanimated/pull/7466&quot;&gt;Shared Element Transitions in Reanimated&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#v8-explicit-compiler-hints&quot;&gt;46:56&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://v8.dev/blog/explicit-compile-hints&quot;&gt;V8 explicit compiler hints&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#ts-native-previews-usable-build-of-the-go-based-compiler&quot;&gt;48:05&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-native-previews/?s=33&quot;&gt;TS Native Previews&lt;/a&gt; (usable build of the Go-based compiler)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#vite-rolldown-preview-build&quot;&gt;48:26&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://voidzero.dev/posts/announcing-rolldown-vite&quot;&gt;Vite + Rolldown preview build&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#seeded-pseudo-random-number-proposal-advances-to-stage-2&quot;&gt;49:10&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/did:plc:w227epg3attqnssfdkx6ex6a/post/3lqcugizbls2g&quot;&gt;Seeded pseudo-random number proposal advances to Stage 2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#3-layer-data-data-fetching-for-complex-react-apps-rscs-react-query-optimistic-ui&quot;&gt;50:34&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.trevorlasn.com/blog/fetching-data-for-complex-next-and-react-apps&quot;&gt;3-layer data data fetching for complex React apps&lt;/a&gt; (RSCs, React Query, optimistic UI)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#johannes-schickling-announces-livestore-reactive-sqlite-sync-layer&quot;&gt;51:05&lt;/a&gt;]&lt;/code&gt; Johannes Schickling announces &lt;a href=&quot;https://bsky.app/profile/schickling.dev/post/3lq5gucxsj22a&quot;&gt;LiveStore (reactive SQLite + sync layer)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-05#outro&quot;&gt;53:02&lt;/a&gt;]&lt;/code&gt; Outro&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Hello everyone. Thank you for joining us for the May edition of this month in React, where we recap and digest the ever evolving react and web ecosystem. We are coming to you live from Reactiflux, the place for professional react developers, and we are supported by infinite red uh, consultancy that exclusively works in React Native. [00:00]&lt;/p&gt;
&lt;p&gt;I am Carl. I&#39;m a staff product developer and freelance community leader here at Reactiflux, where I run community programs like this and build other tools to keep the community operating. [00:18]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Hi, I&#39;m Mark. My day job is with Replay io, where we&#39;re building a time traveling debugger and trying to find ways to make AI chat bots smarter with time travel. And also I spend a lot of time working on redux and ranting about the React teams communication. [00:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; my name is. I had the mobile team at Theodo and I&#39;m an active member of the React Native community, a core contributor, and I organized the React Native London Meetup and conference. [00:42]&lt;/p&gt;
&lt;h2 id=&quot;quick-hits&quot;&gt;Quick hits&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Quick job market news new releases. [00:54]&lt;/p&gt;
&lt;h2 id=&quot;job-market-fred-data-layoffsfyi-trueupio&quot;&gt;Job market: &lt;a href=&quot;https://fred.stlouisfed.org/series/IHLIDXUSTPSOFTDEVE&quot;&gt;FRED data&lt;/a&gt;, &lt;a href=&quot;https://layoffs.fyi/&quot;&gt;Layoffs.fyi&lt;/a&gt;, &lt;a href=&quot;https://www.trueup.io/job-trend&quot;&gt;Trueup.io&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Generally it looks like this Fred data source that looks at Indeed, I&#39;m starting to doubt whether it&#39;s an accurate reflection of the current market. It&#39;s just been continuously trending down which I think may just indicate that people are hiring fewer software engineers on Indeed, since that&#39;s the only source of data for it. [00:57]&lt;/p&gt;
&lt;p&gt;Drew up dot iOS job trends shows a different direction. It&#39;s been a little bit better, but you know, it&#39;s not categorically different. [01:11]&lt;/p&gt;
&lt;h2 id=&quot;conferences-react-javascript&quot;&gt;Conferences (&lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://confs.tech/javascript&quot;&gt;Javascript&lt;/a&gt;)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; upcoming conferences. [01:19]&lt;/p&gt;
&lt;h2 id=&quot;react-summit-june-13-17-amsterdam-nl&quot;&gt;&lt;a href=&quot;https://reactsummit.com/&quot;&gt;React Summit&lt;/a&gt; June 13-17 Amsterdam, NL&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; We&#39;ve got React Summit in about two weeks, so if you are looking for something to do that&#39;s gonna be June 13th through 17th in Amsterdam. In Netherlands, [01:20]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; as usual, they&#39;re doing one day of an actual in-person conference, and then there&#39;s a remote only streaming set of talks. I think like the, the following Monday or something. I&#39;ll be speaking there in person. If you&#39;ve heard me I said I&#39;ve been doing routine. If you&#39;ve heard me talking about things like, you know, the community misunderstanding reacts development or the React team having opinions about frameworks and stuff, I will be talking about that sort of thing, live on the main stage. [01:29]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Very nice. Excellent. Well, I will be at a different conference. [01:54]&lt;/p&gt;
&lt;h2 id=&quot;render-atl-june-11-13-atlanta-ga-usa&quot;&gt;&lt;a href=&quot;https://www.renderatl.com/&quot;&gt;Render ATL&lt;/a&gt; June 11-13 Atlanta, GA, USA&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; There&#39;s also gonna be render Atlanta June 11th through 13th. they seem to have really good vibes. It looks like it&#39;s pretty well attended in general. So this is my first time attending the event, but yeah, I&#39;ll, I&#39;ll be there June 11th through 13th. [01:57]&lt;/p&gt;
&lt;h2 id=&quot;sponsored-by-infinite-red&quot;&gt;&lt;a href=&quot;https://infinite.red/&quot;&gt;Sponsored by Infinite Red&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; We are sponsored by Infinite Red. They are an expert react native consultancy that&#39;s been around since 2015. So very long running. They do a lot for the ecosystem, including hosting podcasts. The hosting, the largest React native podcast hosting, I believe the largest or organizing, I believe the largest React native specific conference in the us. [02:12]&lt;/p&gt;
&lt;p&gt;And they only do React native and have built over 75 apps for companies ranging from startups to the biggest in the world. And they generally will work with a team in order to develop expertise, you know, within that team rather than just being a airdrop in Build the Thing and leave kind of consultancy. [02:34]&lt;/p&gt;
&lt;p&gt;So if you are working at a company looking to develop some React native expertise, definitely reach out to them. they&#39;re good people. [02:52]&lt;/p&gt;
&lt;h2 id=&quot;new-releases&quot;&gt;New releases&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Into some new releases. [02:59]&lt;/p&gt;
&lt;h2 id=&quot;tanstackdb&quot;&gt;&lt;a href=&quot;https://github.com/TanStack/db&quot;&gt;TanStack/db&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; a new TanStack sync engine that looks like it ties in pretty well with TanStack Query. I haven&#39;t played with this, but it looks pretty interesting. [03:01]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Looks like Kyle Matthews is working on it. Kyle&#39;s probably best known as having created Gatsby, but he&#39;s currently working at Electric sql, which, which is a syn engine company, so probably making use of some of his expertise there. I. [03:10]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Very cool. Definitely nice to see that kind of expertise being brought a little more broadly into some other projects. I think local first and like syn engine kind of stuff seems like. A very powerful area of exploration right now. I don&#39;t think we really know what it&#39;s gonna shake out to. But yeah, I&#39;ve seen a couple of apps developed in this way over the years and they always, it just strikes me as a really powerful way to do it. [03:23]&lt;/p&gt;
&lt;p&gt;I think a great example of Local First is actually Gmail. They&#39;ve been very local first forever in a mobile app, you know, you can just functionally use it and then you come back online and it actually executes all the things you did. That&#39;s just generally how I think most apps should work. So seeing a lot more exploration and how to support that with different types of tools definitely looks really cool. [03:47]&lt;/p&gt;
&lt;p&gt;And then coupling that, tying it very closely in with the query engine as it appears that this Tan Stack DB does. Definitely makes a ton of sense. Definitely really interesting there. [04:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; It&#39;s quite interesting &#39;cause I was having a chat with a fellow mobile developer just a few days ago, and he was telling me how he uses TanStack Query as like really like the central data store. Of his application on a React native app. But then the challenge is that things working locally is always a real pain and things working offline is a real pain because taking that either means you have to just like store the entire cache inside of like adjacent blob living somewhere on the device disc. [04:19]&lt;/p&gt;
&lt;p&gt;It&#39;s quite messy and it, doesn&#39;t follow those like asset principles that you would want to make sure that the data&#39;s intact and there&#39;s no sort of conflicts when you do reconnect. This looks pretty cool. I know it&#39;s only for react at this point, as far as I can tell, and it doesn&#39;t necessarily seem to be targeting React native support, but I think a lot of people in the React native ecosystem would probably love to use something like this so that these things are just synced onto a SQL like DB somewhere on the phone, which is kind of a way to do local first stops in React native. [04:50]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; network is so much more unpredictable on a phone than it is on, on the web. So yeah, that, that makes sense. That&#39;s maybe a little underwhelming, but it&#39;s not targeting React native support. [05:18]&lt;/p&gt;
&lt;h2 id=&quot;legend-list-10-released&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/jayz.us/post/3lni5ofbuvs2s&quot;&gt;Legend List 1.0 released&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Mo you want to tell us about Legend List? [05:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Yes. So this is super exciting because legend list, for those of you who&#39;ve been following along with the podcast for the last few months has been something that we&#39;ve been talking about on and off, but it&#39;s been sort of in that alpha beta phase. So Jay Meistrich, he used to be a game developer, so I say that because. [05:29]&lt;/p&gt;
&lt;p&gt;Game development is super, super hard and you optimize for performance as much as you can. So he has that background and worked on a bunch of sort of low level OS stuff for a while. And so he&#39;s been a active member of the React native community. Made a library that was the most performant, well by his metrics, one of the most performant state management tools called Legend State. And and so Legend List is sort of, taking that experience and putting it into React native lists, which is one of the most challenging parts of the React native sort of development workflows, making performance lists. [05:45]&lt;/p&gt;
&lt;p&gt;And it is by far on all accounts of different people testing it in the ecosystem. The fastest React native list implementation. And it is a hundred percent js. It is very stable. At this stage. I know a lot of actual production apps that have been using it before 1.0. And so I would highly recommend you, you&#39;d give it a try. [06:14]&lt;/p&gt;
&lt;p&gt;It&#39;s pretty straightforward to replace any existing list that you have, whether that&#39;s flat list or flash list. [06:31]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Very cool. Yeah. List performance while like rapidly scrolling is one of those really visible things in an app, so definitely, definitely really cool to see a great, low level primitive for use there. [06:36]&lt;/p&gt;
&lt;h2 id=&quot;redux-toolkit-v280-and-bugfixes-after&quot;&gt;&lt;a href=&quot;https://github.com/reduxjs/redux-toolkit/releases/tag/v2.8.0&quot;&gt;Redux Toolkit v2.8.0&lt;/a&gt; (and bugfixes after)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; If you&#39;ve been listening for a while, you&#39;ve also heard me ranting about the complexities of publishing JavaScript packages and ESM and CommonJS compatibility. We shipped Redux Toolkit 2.8, which was primarily intended to improve our compatibility with the Metro Bundler and React Native. It did that and then it promptly started breaking tests with just environment js dumb due to reasons. we shipped a fix for that and then a process we act, we found out that the release had also ended up messing up some of our bundling so that the different and things weren&#39;t getting shaken out properly. And oops, our nested imports were actually like three times as big as they were supposed to be, so we had to fix that. So RTK 2 8 2 is out, and if you&#39;re going to upgrade, please use that one. [06:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; For sure. Yeah, we&#39;ve got a bunch of smaller releases or like beta stuff, so I&#39;m just gonna kind of fly through some of these. [07:30]&lt;/p&gt;
&lt;h2 id=&quot;mui-v71&quot;&gt;&lt;a href=&quot;https://github.com/mui/material-ui/releases/tag/v7.1.0&quot;&gt;MUI v7.1&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Material UI has version 7.1 out. It looks like it&#39;s mostly bug fixes. We talked about the new like slot pattern that they introduced in 7.0 in the last episode. Interestingly, they also talk about Tailwind V four support, which is a little bit surprising for a component library of this complexity. [07:37]&lt;/p&gt;
&lt;p&gt;I don&#39;t know exactly what Tailwind support means in this context, but it does appear that you can use a styled engine provider with a, like CSS layer not quite clear on whether this is doing all of the compile time tailwind optimization kind of stuff, or. Right. The implementation details here are not totally clear to me from the release notes but definitely interesting. [07:55]&lt;/p&gt;
&lt;p&gt;Yeah. I know that Tailwind V four support has been kind of a sticking point for some projects, so it&#39;s interesting to see such a large and complex style library take advantage of. It [08:20]&lt;/p&gt;
&lt;h2 id=&quot;jest-has-a-v30-beta3--4-out-first-alpha-of-it-was-published-october-2023&quot;&gt;Jest has a v30 &lt;a href=&quot;https://github.com/jestjs/jest/releases/tag/v30.0.0-beta.3&quot;&gt;beta.3&lt;/a&gt; + 4 out. &lt;a href=&quot;https://github.com/jestjs/jest/releases/tag/v30.0.0-alpha.1&quot;&gt;First alpha&lt;/a&gt; of it was published October 2023&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Jest has a new V 30 beta beta three. I was checking the release notes for it and alpha one of version 30 was first published in October of 2023. [08:30]&lt;/p&gt;
&lt;p&gt;So this has been a long time coming. It looks like beta three introduced a lot more new things than the re the other alphas or, you know, many more fixes and whatever. So yeah, I don&#39;t know exactly what to think about that, Jest has been generally a kind of finished project in my experience. But yeah, they&#39;ve got a new version turning its way through. [08:43]&lt;/p&gt;
&lt;p&gt;Although with two years, a year and a half since the first Alpha, I&#39;m not sure if this is gonna be released anytime soon. Mark, tell us about Zustand and Jotai. [09:03]&lt;/p&gt;
&lt;h2 id=&quot;zustand-505-jotai-2124-and-5&quot;&gt;&lt;a href=&quot;https://github.com/pmndrs/zustand/releases&quot;&gt;Zustand 5.0.5&lt;/a&gt;, &lt;a href=&quot;https://github.com/pmndrs/jotai/releases&quot;&gt;Jotai 2.12.4 and .5&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Just a couple minor bug fix releases. Probably not in much meaningful, but you know, always worth looking at updates. [09:11]&lt;/p&gt;
&lt;h2 id=&quot;devstore-deprecated&quot;&gt;&lt;a href=&quot;https://x.com/jotaijs/status/1919778234037878919&quot;&gt;devstore deprecated&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Jotai is also switching from whatever previous standalone dev tool support they had to their own built-in dev tools. [09:17]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Deprecating whatever internal tooling they had for that. [09:25]&lt;/p&gt;
&lt;h2 id=&quot;radix-has-new-primitives-onetimepasswordfield-and-passwordtogglefield&quot;&gt;&lt;a href=&quot;https://www.radix-ui.com/primitives/docs/overview/releases&quot;&gt;Radix&lt;/a&gt; has new primitives: &lt;a href=&quot;https://www.radix-ui.com/primitives/docs/components/one-time-password-field&quot;&gt;OneTimePasswordField&lt;/a&gt; and &lt;a href=&quot;https://www.radix-ui.com/primitives/docs/components/password-toggle-field&quot;&gt;PasswordToggleField&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Radix has a new release that has a couple of new primitives if you&#39;re using that. It&#39;s got a generally password adjacent. There&#39;s a one time password field and a password toggle field, so neat. [09:28]&lt;/p&gt;
&lt;h2 id=&quot;ant-design-525&quot;&gt;&lt;a href=&quot;https://ant.design/changelog#5250&quot;&gt;Ant Design 5.25&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Ant design also has a new release with a, a new. [09:38]&lt;/p&gt;
&lt;p&gt;Timer statistic component. I&#39;ve never used ant design. It was interesting to me. Well, I was looking to read more of the, you know, release details on this, but an awful lot of the contribution is in Chinese and I do not read Chinese. I know that&#39;s, been a bit of a bifurcation in the React ecosystem is, you know, language barriers are challenging. [09:41]&lt;/p&gt;
&lt;p&gt;they got a new thing. It looks cool. [10:00]&lt;/p&gt;
&lt;h2 id=&quot;react-aria-may-19-2025-release&quot;&gt;&lt;a href=&quot;https://react-spectrum.adobe.com/releases/2025-05-19.html&quot;&gt;React Aria May 19, 2025 release&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; React Aria has a new dated release, you know, they don&#39;t do versions, they do dates. So this is the May 19th release. It looks like it&#39;s pretty much just small bug fixes, although they do also say they have support for the React 19 ref cleanup call that was introduced. [10:02]&lt;/p&gt;
&lt;p&gt;So yeah. Neat. Cool. [10:19]&lt;/p&gt;
&lt;h2 id=&quot;relay-19-with-react-19-support&quot;&gt;&lt;a href=&quot;https://github.com/facebook/relay/releases/tag/v19.0.0&quot;&gt;Relay 19&lt;/a&gt; with React 19 support&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; relay GraphQL version 19 is out. It&#39;s got support for react 19 as well as they&#39;ve been working on their documentation. [10:21]&lt;/p&gt;
&lt;h2 id=&quot;storybook-9&quot;&gt;&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v9.0.0&quot;&gt;Storybook 9&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And then storybook version nine is out, and it looks like they&#39;ve made a really big effort to try to shrink the bundle size of their own tooling. [10:29]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool. Alright, so that&#39;s all the new releases. [10:36]&lt;/p&gt;
&lt;h2 id=&quot;main-content&quot;&gt;Main Content&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; We got so many small ones this month into our main content. Mo let&#39;s start off with expo. [10:38]&lt;/p&gt;
&lt;h2 id=&quot;expo-sdk-53-release&quot;&gt;&lt;a href=&quot;https://expo.dev/changelog/sdk-53&quot;&gt;Expo SDK 53 release&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Cool. So we have a major release of a new expos DK. So expos, DK 53 is out, and this has been under the, the, the works for a very. Very long time. So Expo usually historically would release a version of an SDK with every React native release that would come out. So, you know, react native dot 72 comes out. [10:45]&lt;/p&gt;
&lt;p&gt;And then SDK version 40. I can&#39;t remember the corresponding, but you get the point. Every single version is tied to a specific SDK version. But as the React native team has been releasing more frequently the expo team found that it was actually probably a good time to stop tying those things together and sort of bunch some of these SDK releases into larger releases so that they can make. changes to the actual SDKs rather than having to keep up with React native and the versions that are being released every few months. So SDK 53 is a big one primarily because now the new architecture is default everywhere. So if you were paying attention, the last release that they had, the new architecture was default for new projects. [11:05]&lt;/p&gt;
&lt;p&gt;What they&#39;ve now done is they set the new architecture even for existing projects when you update test SDK 53. And this fits with sort of the larger push that the React Native Core team is doing to push people onto the new architecture. And so React native version 79, as an example, has the same thing where, you know, existing apps will also be in the new architecture by default, and you need to opt out. [11:45]&lt;/p&gt;
&lt;p&gt;And as of yesterday as well meta announced at app js that they&#39;re going to be freezing the old architecture. So they&#39;re not really gonna be doing and adding any new features into the new architecture either. So very much going down the deprecation path with eventual sort of removal from React Native Core, which is kind of as we would expect it. [12:06]&lt;/p&gt;
&lt;p&gt;Other things to mention. So. Android developers will know about a requirement that came in to the Android ecosystem a few years ago called Edge to Edge support, which meant that your app needs to cover the full sort of corners and notches of an app of an Android phone. And this was sort of opt in for the longest time, but as of the next Android version that&#39;s soon to be released, I believe it&#39;s Android 16, edge to Edge support will be required. [12:23]&lt;/p&gt;
&lt;p&gt;On all apps. So if you submit an app that doesn&#39;t have Edge, edge to Edge support, they will reject it. So a bunch of people in the community have been working on getting this up and running because it&#39;s not trivial, it&#39;s actually quite complicated. So Zoom Tech who&#39;s well known in the React native ecosystem&#39;s, been working on this. [12:47]&lt;/p&gt;
&lt;p&gt;So he&#39;s worked with the expo team to get that implemented by default in SDK 53. So once you update to SDK 53, your app will already have Edge to Edge support. This is not the case yet for React Native Core. So if you have a non expo app, that won&#39;t necessarily be the case and you&#39;re gonna need to add it in manually yourself. [13:02]&lt;/p&gt;
&lt;p&gt;The goal is that eventually this will be merged and upstreamed into React Native Core anyway, and will just be handled as a core part of, RNs functionality. [13:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; That makes sense. So I&#39;m thinking of like instead of safe area, it&#39;s gotta be edge to edge. I. [13:27]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; It&#39;s adjacent to that, but not directly related. So safe area views in react native, typically, historically were more of an iOS thing because iOS introduced the notch and then they introduced the dynamic island. So that safe area view was for that more than anything. &#39;cause Android app devices typically were a little bit more uniform, albeit not the exact same. [13:31]&lt;/p&gt;
&lt;p&gt;And then. Android devices followed suit with that. Edge to edge is more sort of how the app interacts underneath the notch or like in the corners of your, of your, of your screen. So, you know, you have a bunch of things in the Android world, like curved screens, and you have screens that, you know, have a a rounding on the corners and so on and so forth. [13:51]&lt;/p&gt;
&lt;p&gt;And edge to edge support is to basically make sure that it covers the full sort of portions of that which wasn&#39;t there by default. it&#39;s, I&#39;m not an Android developer, so it&#39;s not necessarily my specialty, but I do know that it is a requirement there, and I think it&#39;s certain Android screens can be a little wacky and edge stage support is necessary to make sure that things are behaving correctly on all Android devices. [14:12]&lt;/p&gt;
&lt;p&gt;I. A few other things to mention with Expo SDK 53. Background tasks. If anyone&#39;s been building rack native apps since the beginning, he&#39;ll know that doing background tasks is really, really hard and making sure that they actually execute and you have some level of confidence that things are gonna be run in the background when your app&#39;s not sort of front and center in the foreground of, of the user&#39;s phone. [14:33]&lt;/p&gt;
&lt;p&gt;It&#39;s challenging. So Expo actually like went through this. They had a background tasks module. They went through just re-architecting it all because it was fundamentally flawed in the way that it was trying to tackle the problem. So they&#39;re actually using they, they&#39;ve released the expo background task module and it uses sort of the up-to-date latest APIs on both Android and iOS. [14:54]&lt;/p&gt;
&lt;p&gt;And so they recommend you use this for different things, like let&#39;s say if you need to download data in the background. Or if you need to run over the air updates, so you wanna check, see if there&#39;s over the updates, and then actually download it in the background. You can do that, or, you know, garbage cleanup and so on and so forth. [15:12]&lt;/p&gt;
&lt;p&gt;If you need to do that in the background of your app. So this is quite useful. It&#39;s one of those things that happens behind the scenes, but I think is incredibly important to make an app really perform and, and feel like a native app would. Another sort of minor thing is expo audio. [15:27]&lt;/p&gt;
&lt;p&gt;So there&#39;s an expo audio update within this release. And expo audio is generally the replacement of Expo av, but the audio portion of that library. So that library was quite complicated And so they&#39;ve split it off into expo audio and expo video and expo video came first. [15:41]&lt;/p&gt;
&lt;p&gt;Whilst they were working on audio, and now audio is, being released at this point, which is quite cool. [15:57]&lt;/p&gt;
&lt;h2 id=&quot;packagejson-imports-support&quot;&gt;&lt;a href=&quot;https://x.com/satya164/status/1916095938604548366&quot;&gt;Package.json imports support&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Last point on SDK 53, that&#39;s kind of adjacent to SDK 53, more of a React native thing, but it&#39;s part of SDK 53 as well is package json import support, which is great because it&#39;s oftentimes quite a big in React native projects with. [16:01]&lt;/p&gt;
&lt;p&gt;Babel and TypeScript working together for these package imports. So now React native has this feature built in, so you just define imports within your package js. You update your ts config to just resolve package JS imports and that&#39;s it. Which is a really good standardization. So, if you&#39;re using the older way of doing sort of aliases for your imports go ahead and change that because I think it&#39;ll make your life a lot easier in the long run. [16:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I do kind of object to the use of the word just in that sentence. [16:39]&lt;/p&gt;
&lt;p&gt;that&#39;s basically what we were trying to, trying to get compatibility for with, our RTK 2.8 release. [16:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I&#39;m glad to see this standardization rolling out. I remembered this coming through in node. I went and looked it up. It was originally released in node 14, which came out April, 2020. So this has been a pretty decent long time coming though, you know? a lot of ducks to get in a row to make it work. [16:48]&lt;/p&gt;
&lt;p&gt;But definitely really nice to have alias resolution happen just from package. Jason, instead of needing to, I just, I can just remember all of the various pain I&#39;ve had with like, trying to keep the aliases between like web pack and Babel and jest and storybook in, you know, all of the different parallel configuration that each needed, its own different way of configuring aliases. [17:05]&lt;/p&gt;
&lt;p&gt;So I love that standardization around that is settling out. [17:29]&lt;/p&gt;
&lt;h2 id=&quot;react-router-rsc-preview-and-other-rsc-topics&quot;&gt;&lt;a href=&quot;https://remix.run/blog/rsc-preview&quot;&gt;React Router RSC preview&lt;/a&gt; and other RSC topics:&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; we&#39;ve got a bunch of different things happening related to server components this month. Probably the biggest one is that React Router has announced a server components preview. this is probably a big deal for multiple reasons. We&#39;ve already had at least one other tool parcel put out what it considers like a, a fully production ready release of server component support. [17:32]&lt;/p&gt;
&lt;p&gt;So we, we are getting more tools other than just next supporting it. But in terms of usage, react router, you know, even if you&#39;re, and you&#39;re just looking at the client side functionality has always been one of the biggest packages in the ecosystem. And part of the point of the whole React router, remix, react router back and forth was to try to make more of those pieces available in React router itself so that you could just turn on the framework mode flag and start to get server side rendering bundling type support. [17:55]&lt;/p&gt;
&lt;p&gt;And so having RSC support there. Is really going to be, from my perspective, the first widely available usage outside of next. So that feels like a big deal. It&#39;s also a big deal because I think most of our understanding of how to use server components has been very heavily shaped by the fact that next was the only real implementation. And so there&#39;s sort of been this, well, the way that the next app router works must be the, the way that server components have to work. [18:26]&lt;/p&gt;
&lt;p&gt;And instead here we see that the React router team has made some very different implementation choices in how you use server components. So in particular, they&#39;ve got the ability to actually return server components as individual fields from your loader functions. So you can return some, data. You can return some components, and then your actual component on the client side just receives the loader data and you receive the elements much like you would props dot children, and you just include that in the output. They&#39;ve also got some more options for server components, routes, and intermixing them support for server functions and then still doing things on the client side. So this looks like a pretty big deal release if you want to try that out, sort of adjacent to that. one of the complexities for server components in general is that they require tight integration with a bundler. And so the React team had specifically most of their initial work was around implementing integration for Webpac because Webpac is so widely used across ecosystem. And they&#39;ve repeatedly stated that Vite&#39;s internal architecture just did not support the proper module graph handling to make real server components support possible. [19:01]&lt;/p&gt;
&lt;p&gt;so the, the React team has tried to keep the packages for the Bundler integrations in the React repo so that they can more easily iterate on changes to the core functionality versus what&#39;s specific to the bundlers. Like there isn&#39;t really like, kinda like a, a publicly defined API for that sort of thing, easier to all have it in one repo. But that&#39;s also meant that they didn&#39;t have the expertise or knowledge to do the Vite integration properly. [20:24]&lt;/p&gt;
&lt;h2 id=&quot;vite-community-pr-to-add-rsc-support&quot;&gt;&lt;a href=&quot;https://github.com/facebook/react/pull/33152&quot;&gt;Vite community PR to add RSC support&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So there is now a PR from the community to try to add, quote, unquote, proper Vite and RSC integration. And there&#39;s been some back and forth on that. Don&#39;t know how long it&#39;ll take to get that landed, but that does seem like a fairly big step. [20:49]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, it definitely does, right? The lack of public API and general documentation for this is definitely, we&#39;ve talked a little bit about how that&#39;s a pretty big barrier for people looking to explore this. You really have to reverse engineer it yourself if you wanna look into it. Seriously. [21:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; so at this point, we&#39;ve got Next has been out for a while. Parcel just released its own quote, production ready, RSC support. We&#39;ve got React Router coming out with a preview. So it, the, the ecosystem is starting to flesh out. [21:19]&lt;/p&gt;
&lt;h2 id=&quot;leerobs-list-of-other-rsc-explorations&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/leerob.com/post/3lo4l2rmy7k2b&quot;&gt;Leerob’s list of other RSC explorations&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Lee Robinson from CEL has been collecting a list of some different frameworks that are experimenting with RSE support in various alpha and, and, you know, test preview approaches. [21:33]&lt;/p&gt;
&lt;h2 id=&quot;more-dan-posts-like-static-as-a-server-and-one-roundtrip-per-navigation&quot;&gt;More Dan posts, like &lt;a href=&quot;https://overreacted.io/static-as-a-server/&quot;&gt;Static as a Server&lt;/a&gt; and &lt;a href=&quot;https://overreacted.io/one-roundtrip-per-navigation/&quot;&gt;One Roundtrip Per Navigation&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; meanwhile Dan Abramov has cranked out several more blog posts trying to. Pitch the mental model of es. A couple folks have said that, you know, he&#39;s kind of hitting the same theme from different ways he&#39;s basically trained to start from different mental models and work backwards to, &quot;and here&#39;s how RSCs address all these different problems.&quot; I think he actually put out four different posts this month. Two in particular one talks about how RSCs allow you to do static site generation and don&#39;t even require a, like a running application server to do the work. As well as how rses help handle the need to fetch multiple different pieces of data in one round trip. So there&#39;s those couple posts plus a couple others. So, as usual, worth reading, [21:44]&lt;/p&gt;
&lt;h2 id=&quot;redwoodsdks-your-react-framework-feels-broken&quot;&gt;RedwoodSDK’s &lt;a href=&quot;https://rwsdk.com/blog/your-react-meta-framework-feels-broken&quot;&gt;“Your React Framework Feels Broken”&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; One other sort of related post. So we previously mentioned that Redwood pivoted from their previous, very GraphQL based framework and they, they deprecated or archived that framework entirely, and they&#39;ve come out with a new tool called Redwood, SDK which is based on CloudFlare and RSCs. And they, they put out a post called your React Meta Framework Feels Broken, which is both a, a kind of a critique of other frameworks as well as a sales pitch for their particular approach to dealing with server components. So we really are seeing different parts of the ecosystem trying to figure out how to actually make use of server components and ship those as actual features. [22:33]&lt;/p&gt;
&lt;h2 id=&quot;remix-v3-announcement&quot;&gt;&lt;a href=&quot;https://remix.run/blog/wake-up-remix&quot;&gt;Remix v3 announcement&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Well, yeah, that leads us sort of into new remix. They have released, or they&#39;ve announced a version three which is somewhat surprising to me because I had understood it as a deprecated brand that was being merged back into React Router. But actually I, you know, reached out to them to be like, huh. And, you know, reached out in the remix Discord just to express confusion. And I had my attention directed back to the blog post that was released around when they actually did that talk at React Con last year revealing that they would be merging remix back into React router. And they, they were very clear about this from the beginning. [23:20]&lt;/p&gt;
&lt;p&gt;I don&#39;t really remember it in the talk and I&#39;m not sure that I went back and read the announcement blog post after hearing the talk. So that may have been why I missed this. But yeah, they do talk about how this is, you know, that was their plan. They were going to re remix was a, a Fork of React router, I guess. They did a big thing with V two and merged that back into React router V seven. And in that blog post they talk about how V three is gonna be something totally brand new, but it will be coming, it was in progress. So it&#39;s here and remix is not dead despite reports to the contrary. [24:03]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Or at least it&#39;s, it&#39;s far enough long that they were actually, ready to announce it. I don&#39;t know if any of this is available or visible in any way yet, but at least they&#39;re saying we&#39;re, we&#39;re working on it. [24:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, true. [24:45]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So, yeah, this is. it&#39;s confusing. I&#39;ve seen a lot of people pushing back on, you know, like there&#39;s already been lots of people complaining over the years about the various React Rider major versions and changes and, you know, Ryan and Michael can&#39;t seem to settle on a single API design. I, I will say that the bouncing back and forth is kind of confusing. And then having a version three of an existing package that seems to throw all the existing, previous pieces out the window, is also kind of confusing. You can sort of make the parallel between the angular one or angular JS one versus angular two changeover that happened like a decade ago. [24:46]&lt;/p&gt;
&lt;p&gt;The general sales pitch, looking at the announcement blog post and some of the comments by Ryan and Michael on Twitter. So. They&#39;re, taking inspiration from, you know, tools like Rails and Express and whatever. You know, , they&#39;re sort of trying to apply like best lessons learned from all the other tools out there. [25:29]&lt;/p&gt;
&lt;p&gt;They really seem to be, want, seem to, want to go for simplicity and a non bundling approach. Like they seem to want their tool to minimize the number of actual dependencies that it needs to run. And they want to avoid having a bundling step in both development and production. [25:44]&lt;/p&gt;
&lt;h2 id=&quot;discussion-between-evan-you-and-michael-jackson-about-bundling--hmr-approach-and-tradeoffs&quot;&gt;&lt;a href=&quot;https://x.com/mjackson/status/1928297364726632499&quot;&gt;Discussion between Evan You and Michael Jackson about bundling / HMR approach and tradeoffs&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; In fact there was a, a conversation between Evan Yu from, you know, from V and View who is saying that, you know, modern apps really need HMR, they need bundling even in development. [26:04]&lt;/p&gt;
&lt;p&gt;That&#39;s why, you know, that&#39;s part of why VIT is redoing its internals. And Michael replied and said. Yeah, we are, we, we want to minimize the number of tools that are involved. We want to minimize the number of transformation steps. We want things to be able to run without needing to do a bunch of compilation. And we&#39;re actually not going to ship HMR, we are going to rely on page reloads in Dev, and we think we can make it fast and work. [26:15]&lt;/p&gt;
&lt;p&gt;So they clearly have a vision, it&#39;s definitely a bit of a zigzag from where the ecosystem has gone over the years. One of the other interesting points is that it&#39;s not even going to use React as the UI layer. It&#39;s going to use Preact and in fact, apparently it&#39;s going to use a fork of Preact so that they can do some additional customizations. I don&#39;t have any additional details on what those customizations will be, but that&#39;s the direction they&#39;re going. I think, check me in this Jason Miller, who originally created Preact also now works at Shopify, right? [26:40]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; That sounds right to me. [27:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So both, you know, Ryan and Michael, you know, like Remix got bought by Shopify a couple years ago and Jason Miller is there. So that, that presumably makes it easier for them to potentially collaborate on some of that work. I. [27:17]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yes, his Twitter bio lists him as platform developer experience at Shopify. So, right, like that job title is exactly this kind of work, like making developer tools and frameworks easier to use. So interesting [27:31]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; One of the other bullet points was they, they want to have an emphasis on LLM model based development. Ryan has made some comments recently that he&#39;s using LLMs in his day-to-day work, and it&#39;s helping to make him more productive. And I think I saw him mention that like the first line of the draft new docs for this version three is &quot;disregard all previous remix versions&quot; as an instruction. [27:46]&lt;/p&gt;
&lt;p&gt;So I, I don&#39;t know what all they have in mind there other than, being able to organize the docs in such a way that it&#39;s LM friendly, but it&#39;s something that they have in mind. So no ETA on when any of this will be available. But given how influential React Rider and remix have been, this is certainly something to keep an eye on. [28:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; there&#39;s sort of two thoughts on the, like the LLM friendliness that stands out to me. The first one is, ironically, I think by naming this remix, they&#39;ve actually shot themselves a little bit in the foot because it&#39;s gonna be a fun challenge trying to teach an LLM how to disregard a version two versus version three documentation or stack overflow question that has been trained on, [28:34]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; That&#39;s actually a really good point. [28:55]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I do wonder if inherently by building on top of web APIs and like staying as close, which, which has kind of been the philosophy with remix, old remix slash react router anyway, by trying to stick to web APIs and standardized sort of W3C primitive, so to speak, that are so well defined in terms of documentation, more so than probably anything else on the web. [28:57]&lt;/p&gt;
&lt;p&gt;Plus them adding some good documentation that is LLM friendly in very, very loose air quotes. If that just makes it a little bit more predictable, because I feel like. Having gone through a lot of the W3C docs, it is so well structured and so logical. Obviously it&#39;s quite convoluted a lot of times for people who aren&#39;t used to it, but it&#39;s, it&#39;s very like organizationally structured and I wonder if that can help an LLM understand it better than anything else. [29:20]&lt;/p&gt;
&lt;p&gt;But that&#39;s just a, that&#39;s just a personal guess. Could be very wrong. [29:45]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Well, I was gonna say that kind of leads us into our next topic, which is react core work in progress. [29:49]&lt;/p&gt;
&lt;h2 id=&quot;react-core-wip&quot;&gt;React Core WIP&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And one thing that they have checked into the repo that I, I don&#39;t think has been really discussed or publicized anywhere, is they have a MCP server work in progress. [29:56]&lt;/p&gt;
&lt;h2 id=&quot;react-mcp-server&quot;&gt;&lt;a href=&quot;https://github.com/facebook/react/tree/main/compiler/packages/react-mcp-server/src&quot;&gt;React MCP server&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And so MCP is model context protocol, I believe. It&#39;s basically a generally standardized way of authoring tools for LLMs to make use of. I think this react core MCP server is mostly around the compiler. So Lauren has done a lot of work on the compiler and is now doing, it looks like some work on this MCP server. I don&#39;t really have a great grasp of what MCP servers are good at, but as far as like tools that LLMs can take advantage of, like sure. Having your IDE be able, your, you know, the LLM and your IDE to query, react, to say, please run this through the compiler and tell, you know, check the performance optimization, see if it&#39;s better than it, you know, this other attempt that seems interesting and potentially useful in a, relatively limited capacity, but connecting it back to the remix v3 and LLM friendliness, I could imagine a world where like there&#39;s an MCP server that looks up documentation for your specific version that you have installed. [30:08]&lt;/p&gt;
&lt;p&gt;I don&#39;t know if that&#39;s, you know, a direction that they&#39;re going to explore, but that def, that sounds plausibly workable to me. I don&#39;t know. That&#39;s interesting. [31:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; specifically like an MCP server. Is is more for the LLM to be able to externally call tools rather than just generating text. So it gives it like a way to interact with the outside world. And I guess going through the code of this specific MCP server they&#39;ve defined a few different tools to compile with the React compiler. [31:21]&lt;/p&gt;
&lt;p&gt;If you give it a set of code basically but also then run performance tests. And sort of go through this process of assessing what, the LCP is, I-N-P-C-L-S, and also the core web vitals. And so looking through the actual source code, it seems to me what they kind of want you to be able to do is to use the, use this MCP server to basically compile some of your code, open up a browser and run core web vital scores. [31:43]&lt;/p&gt;
&lt;p&gt;Run the react compiler, see if it improves it, and then sort of do that in a loop, almost in an age agentic fashion, so that you can optimize a react component until it&#39;s kind of at a state where things are performance, as performance as they get. So it&#39;s almost like write your react component. It&#39;s fine if it&#39;s crap, and then leave it to the model to go in and optimize. [32:09]&lt;/p&gt;
&lt;p&gt;Measure, optimize, measure, optimize until it&#39;s at a state where, things are working as expected and is as performing as it gets. [32:29]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. There&#39;s also some mark, I think this is more of a you question, but they&#39;ve got a skeleton PR for a concurrent store. I. [32:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yeah. So this is a topic that&#39;s been discussed for a while. So one of the big limitations that limitations thus far around suspense and concurrent rendering and transitions has been that React needs to own the state in order to be able to postpone or interrupt or reschedule work in progress state updates, which means that for external libraries, Redux, Zustand, Jotai, you know, X State, you know, take your pick here. We&#39;ve had to rely on the use Sync external store hook as our integration with React so that when the external store updates, react gets notified and it can trigger or re-render. [32:42]&lt;/p&gt;
&lt;p&gt;But the limitation is that used syn external store can quote unquote det, which the React team has never done a great job of defining that term. But as best as I understand it, what it means is that if React was in the middle of a concurrent render and something happens with the external store, like say a Redux action gets dispatched while React was paused, rendering halfway down the tree, it ends up having to throw away the entire work in progress render and do a full synchronous render start to finish in order to ensure that the whole tree has access to the right data. And, you know, from their point of view, that&#39;s, that&#39;s a bad thing, which is understandable. [33:24]&lt;/p&gt;
&lt;h2 id=&quot;concurrent-store-skeleton-pr-a-concurrent-compatible-integration-for-external-libraries&quot;&gt;&lt;a href=&quot;https://github.com/facebook/react/pull/33215&quot;&gt;“Concurrent store” skeleton PR&lt;/a&gt; a concurrent-compatible integration for external libraries&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So. They&#39;ve put up a PR for what they&#39;re calling a concurrent store, and this appears to be a react built-in object that you can create and then you can pass it to the use hook to extract the value. And somehow the internals of this will be concurrent compatible. And it looks like that will allow external libraries to interact with that instead of use syn external store and potentially allow them to be concurrent transition compatible in a way that use syn external store is not. Now, thus far, what we have is a draft PR that just adds the skeleton of this to the code base feature flags and some tests, no implementation details, nothing we can run or try out. But based on some of the stated comments on social media and this draft PR and then the last React lapse blog post, it looks like that&#39;s the idea of what this could do. So at some point we may have to put out React Redux version 10, which which is over to this, it&#39;s good to see that they&#39;re iterating on this, on this concept. [34:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; well you, you certainly would know a lot better the context behind that than I would having maintained redux for so long. But it seemed like the, you know, use concurrent or, you know, concurrent store or whatever the various things they&#39;ve tried, it seems like none of them have quite solved the problem they were hoping it would. So. [35:17]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; External store avoids the tearing problem. But at the cost of, if you happen to have that sequence of events occur, then you, it has to, you know, take the time to do a full render, which could be costly &#39;cause it can&#39;t interrupt itself. [35:32]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Trade offs not ideal. [35:48]&lt;/p&gt;
&lt;h2 id=&quot;suspenselist-being-worked-on-again&quot;&gt;&lt;a href=&quot;https://github.com/search?q=repo%3Afacebook%2Freact%20SuspenseList&amp;amp;type=pullrequests&amp;amp;s=created&amp;amp;o=desc&quot;&gt;&amp;lt;SuspenseList&amp;gt; being worked on again&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Along with that, Sebastian has done some more work on view transitions and they&#39;re working on resurrecting the suspense list component idea, which had been prototyped quite a while ago. And they&#39;re found Trying to bring it back. This is apparently meant to try to allow you to define intended order for multiple different, like adjacent or nested suspense components to reveal themselves. Say maybe like you have a, I guess like a list of items or something. Admittedly as usual, it&#39;s outside the scope of what I&#39;ve actually ever tried to use, but it&#39;s a thing that had been sitting around for a while and it was unclear when they would get back to trying to work on it. [35:49]&lt;/p&gt;
&lt;h2 id=&quot;compiler-integrations-with-swc-and-oxc&quot;&gt;Compiler integrations with &lt;a href=&quot;https://github.com/swc-project/swc/pull/10475&quot;&gt;SWC&lt;/a&gt; and &lt;a href=&quot;https://github.com/oxc-project/oxc/issues/10048&quot;&gt;OXC&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And, and then finally the React compiler is currently implemented as a Babel plugin. And given how the ecosystem has been shifting away from Babel, that was a bit of a pain point. The core of it does not rely on Babel. Like Babel was just sort of used as the way to get it into your build tool. And so they&#39;ve been working on, in, they have a semi working integration with the SDC compiler, which is what next and other tools use. And they&#39;re also talking with the folks from OXC, which is what the New V implementation will use about the best ways to try to integrate. So still early days there, but it&#39;s good to see that we are, they&#39;re trying to find better ways to integrate with both, you know, with the latest generations of build tooling so that we hopefully don&#39;t have to have Babel in our build tool chains. [36:29]&lt;/p&gt;
&lt;p&gt;After all. [37:19]&lt;/p&gt;
&lt;h2 id=&quot;apple-app-store-epic-games-saga-30-apple-cut-ruled-unlawful-in-the-us&quot;&gt;Apple App Store Epic Games Saga 30% &lt;a href=&quot;https://www.macrumors.com/2025/05/19/epic-asks-judge-apple-approve-fortnite-app-store/&quot;&gt;Apple cut ruled unlawful in the US&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Next up a little bit of a segue. Not specifically React news, but I think reasonable enough to call out here because it does affect React native apps. So if you&#39;ve been following the news, apple and Epic games have been locked in a feud for the last. Several, several years. Apple basically taxes any company on in-app purchases for digital goods of 30%, which is quite a significant revenue hit for any app developers that are out there. [37:19]&lt;/p&gt;
&lt;p&gt;There&#39;s some provisions for startups and so on and so forth to bring that down to a lower number. But once you hit a certain amount of revenue, I think it&#39;s around 1 million or 1.5 million a year on the app store, you have to pay 30%. And so. Epic games and Apple have been going to court over this for a very, very long time. [37:48]&lt;/p&gt;
&lt;p&gt;And Fortnite was off of the app store for a while several years ago now. So it&#39;s been going back and forth. If you use Netflix on your phone as an example, you&#39;ll notice that you can&#39;t actually purchase or change your subscriptions on the app. You need to go onto a website. And there&#39;s no sort of link from the app whatsoever to manage anything related to your subscriptions. [38:05]&lt;/p&gt;
&lt;p&gt;And that&#39;s kind of by design because they don&#39;t really wanna pay the 30% to Apple. So, in a sort of shocking turn of events a court came in and basically said that apple&#39;s 30% tax is actually unlawful in the us. Which is kind of a. nobody kind of expected this to come out especially because the EU didn&#39;t even go this far. [38:23]&lt;/p&gt;
&lt;p&gt;And so, the EU basically went in and said, Hey, you should be able to have a, you know, alternative app store rather than just the Apple app store available, but didn&#39;t say that, you know, 30% tax should be removed and it&#39;s unlawful. in the first sort of events that happened in May. Epic Games won and basically they, courts ruled that Apple should reduce the 30% tax or remove the 30% tax. [38:44]&lt;/p&gt;
&lt;p&gt;And how they do that is basically you can use in-app purchases. Basically use another external payment platform for it so you can use Stripe or whatever else you want to take payments for digital goods inside of your app. The next day, apple basically blocked Fortnite from the app store in a sort of weird turn of events saying, no, we don&#39;t, we don&#39;t accept this. [39:08]&lt;/p&gt;
&lt;p&gt;Only to then get overruled with a judge asking Apple to approve the app store submission for Fortnite. So now if you&#39;re in the US you might see some apps. Having a big warning on the app store from Apple saying, Hey, this app is unsafe in terms of transactions and you&#39;re not gonna be protected by the App store, so proceed at your own risk, which is quite funny. [39:29]&lt;/p&gt;
&lt;p&gt;So still doing anything that they can to stop people from doing this. But for React native developers, that basically means that you can now use Stripe only for the US market. So if this. If this is functionality that you have for any locale outside of the us, your app will still be rejected because this is on a US only ruling. [39:50]&lt;/p&gt;
&lt;p&gt;But you can use Stripe or any other payment provider for digital goods inside of your app, circumventing in-app purchases, and still have your app approved in the us which is a big, big deal for a lot of people in this ecosystem. And folks like Charlie Cheever have been speaking about this being a big day for, for mobile developers. [40:08]&lt;/p&gt;
&lt;p&gt;A bit of an aside, but it&#39;s relevant to react native developers to be in the loop about what&#39;s happening in the ecosystem. [40:27]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; that&#39;s like half of a seismic shift for native apps. the fact that it&#39;s only in the US locale is, you know, definitely dampens that quite a bit, but [40:32]&lt;/p&gt;
&lt;p&gt;for such a large market to now be required to accept. Different payment methods that don&#39;t have a 30%, you know, cut removed that is still quite large. [40:43]&lt;/p&gt;
&lt;p&gt;Still quite significant. [40:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Hopefully this kind of reverberates to other markets as well and I can kind of see that happening. [40:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; All right. [40:59]&lt;/p&gt;
&lt;h2 id=&quot;next-reducing-vercel-mentions-in-docs&quot;&gt;&lt;a href=&quot;https://github.com/vercel/next.js/pull/78557&quot;&gt;Next reducing Vercel mentions in docs&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Our last main, you know, topic here, kind of small, but sort of speaks to the general undercurrent, the vibes that people have felt around next and react. next has reduced how many mentions Vercel gets in the next documentation. Lee Rob in the PR for this says some of the mentions were egregious and unneeded. [40:59]&lt;/p&gt;
&lt;p&gt;Others were documenting specific behavior for how next runs on Vercel, which is better suited for Vercel documentation. That seems good. I would certainly agree that some of the mentions were egregious. Some of the behavior being documented was better suited to the platform documentation rather than the project. [41:20]&lt;/p&gt;
&lt;p&gt;The next project documentation, you know, it&#39;s just such a persistent topic of discussion that like next verse and react are all just like so tightly coordinating and whatever. This is definitely a small but positive change on that. I appreciate seeing it. I. [41:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I think we even also put up a similar PR to tweak the phrasing that where next is listed in the React op docs set up an installation page. I think it used to have a phrase like, next or next is hosted by Vercel, or developed by Vercel or something. And they specifically tweaked that to remove some of that reference. And like it all, like, it also kind of goes along with, Vercel being intentional about reaching out to like the Open Next folks and trying to more standardize how next actually can be hosted. think people&#39;s complaints have been valid. Like this has been both a pain point technically as well as it has it, it&#39;s looked bad, but I think we ought to give credit to them for saying, okay, yeah, we, we agree, we kinda screwed up here and we&#39;re going to try to improve the documentation and the actual usage to make it more generic. [41:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Looking at this a slightly different lens as well. I mean, props of them for this goes without saying, but I think Vercel is also starting to reach this realization that they can&#39;t just rely on being a next hosting platform to monetize. Because, you know, you see in the last you. Few months how their business model has kind of shifted into three spaces, which is, you know, hosting for next and, and other things. [42:49]&lt;/p&gt;
&lt;p&gt;But also observability has become a lot more of a mention on their sort of product listing pages. And more recently, I think they&#39;re really going hard on the AI space. So a few days ago, I think they announced that you can use Vercel. Sort of ISDK as a proxy to call 40 plus different LLMs without needing to set up different billing with each of these different platforms. [43:10]&lt;/p&gt;
&lt;p&gt;So I get a sense they&#39;re trying to go for a larger cloud play, which means that they&#39;re probably less reliant on next Js being sort of their guarded secret. And, you know, their tool that only runs on Vercel. And they can open it up a little bit more without worrying about it being sort of their only lever for business. [43:32]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, that&#39;s interesting. I hadn&#39;t thought about how they were, they were super early on the ai SDK, they definitely have first mover advantage there, I&#39;d say, and that is, that does position them well for like, if they are a point of entry for LLM based APIs, then that I could imagine a world where they then try and be like host their own models. [43:49]&lt;/p&gt;
&lt;p&gt;And then you are paying them for that hosting as well, which is adjacent to hosting your, your web app, but not quite the same maybe. Yeah. That&#39;s interesting. Yeah, they definitely own a pretty significant front door there and so where that door goes could certainly lead to stronger monetization for them in the future. [44:12]&lt;/p&gt;
&lt;p&gt;I also want to, you know, since in the last couple of episodes we&#39;ve, one of the topics of discussion has been Vercel, and its. Collaboration or lack thereof with other adjacent hosting providers. noticed at the bottom of this PR it says Netlify has confirmed they&#39;re okay with a specific feature matrix link included, and I did my best to include the CloudFlare and Amplify versions based on their documentation, which I&#39;m going to read into and say they do not have open lines of communication with CloudFlare and AWS which is maybe not ideal. I feel like they should have, you know, the, the head of dx, head of, I don&#39;t know. [44:30]&lt;/p&gt;
&lt;p&gt;I don&#39;t know exactly what Lee Robb&#39;s title is, but he is highly active, engaging with many individuals throughout the ecosystem. And for him to reveal that they do not have, you know, maybe not a red phone, but like any means of getting in touch with people within CloudFlare or AWS somewhat surprising. [45:06]&lt;/p&gt;
&lt;p&gt;I don&#39;t know. [45:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; CloudFlare, yes, I agree with you. Amplify. Oh boy. I&#39;ve, used Amplify on and off to host various applications. I&#39;m instinctually going to say that that might be more on the Amplify team, just by virtue of how they deal with their own users, let alone with other community leaders. But that&#39;s just a guess. [45:24]&lt;/p&gt;
&lt;p&gt;CloudFlare is probably a different, [45:45]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I have very briefly used Amplify and that is approximately my read of things too. Fair enough. [45:47]&lt;/p&gt;
&lt;h2 id=&quot;-lightning-round-&quot;&gt;⚡ Lightning round ⚡&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Alright Should we go to the lightning round? [45:52]&lt;/p&gt;
&lt;h2 id=&quot;shared-element-transitions-in-reanimated&quot;&gt;&lt;a href=&quot;https://github.com/software-mansion/react-native-reanimated/pull/7466&quot;&gt;Shared Element Transitions in Reanimated&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I&#39;ll kick it off with shared element Transitions, a very, very exciting prospect that we&#39;ve been waiting on in the React native ecosystem So there&#39;s a draft PR going into React native reanimated for shared element transitions on the new architecture. I. Shared element transitions very quickly is basically what happens when you navigate from a screen to another screen in the React native or in a mobile app, and some element is taken, expanded, or animated onto the next screen. [45:54]&lt;/p&gt;
&lt;p&gt;So, you know, Instagram, you click on a post, it navigates you to that post, but it opens it up so you see a transition of that post expanding or something like that. There&#39;s been a lot of sort of POCs of this in the React native ecosystem, but nothing standardized that people can use easily and consistently in their apps. [46:22]&lt;/p&gt;
&lt;p&gt;So, Bart from Software Mansion has been working on this for a while and we&#39;ve seen some really good promise of, of things actually working out for it to be available. So keep an eye out, keep an eye out on that. But it&#39;s still early stages, but I think that the new architecture can enable stuff like that, which is really, really exciting. [46:38]&lt;/p&gt;
&lt;h2 id=&quot;v8-explicit-compiler-hints&quot;&gt;&lt;a href=&quot;https://v8.dev/blog/explicit-compile-hints&quot;&gt;V8 explicit compiler hints&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; This is extremely niche. But V8 now has, or is providing a new way of ge improving startup time by using comments to hint to the compiler what will be used and what should be compiled. So this is like very deep in the weeds of the runtime engine and like how it gets compiled and when it will compile things. [46:56]&lt;/p&gt;
&lt;p&gt;So this is certainly not something that I think most of us will need to use, if optimizing startup time is something that you care about, V eight is now giving you some new things, some new ways to play with that. I don&#39;t super duper understand all the, you know, twists and turns of this, but the gist of this blog post is saying that you can add a comment you know, slash slash. [47:18]&lt;/p&gt;
&lt;p&gt;Hash bang or no, not a hash bang, just a hash slash slash ash. All functions called on load. And that will signal to V eight that it should compile it differently than it would otherwise, which will improve startup time so that it, you know, because it doesn&#39;t have to guess so much at what is being compiled. [47:40]&lt;/p&gt;
&lt;p&gt;I always appreciate seeing some of these runtime optimizations. It&#39;s just like a little window into the black box. [47:58]&lt;/p&gt;
&lt;h2 id=&quot;ts-native-previews-usable-build-of-the-go-based-compiler&quot;&gt;&lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-native-previews/?s=33&quot;&gt;TS Native Previews&lt;/a&gt; (usable build of the Go-based compiler)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; All right. we&#39;re always talking about tools that are, and putting out, you know, faster releases, rewrites and native languages. And this month we&#39;ve got a couple of previews. We&#39;ve previously a announced that TypeScript is being rewritten in Go, and the TypeScript team has put out preview builds of the go based tooling. So you can try those out and see how fast it is. [48:05]&lt;/p&gt;
&lt;h2 id=&quot;vite--rolldown-preview-build&quot;&gt;&lt;a href=&quot;https://voidzero.dev/posts/announcing-rolldown-vite&quot;&gt;Vite + Rolldown preview build&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Similarly, Vite just announced like right before we, we, we started recording this, that they&#39;ve got a preview build of their roll down based. Bundle. So the idea right now, v uses a mixture of es build in development modes and roll up, which is a, which is written in JavaScript for their production builds. And so roll down is a rust based reimplementation of roll up, but they&#39;re going to use it for both dev and prod. And they&#39;re also going to look at, start doing bundling in dev rather than just shipping standalone ES modules to the browser. So it&#39;s preview, you can try it out. They&#39;ve got some stats saying builds have gotten a lot faster as a result. [48:26]&lt;/p&gt;
&lt;h2 id=&quot;seeded-pseudo-random-number-proposal-advances-to-stage-2&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/did:plc:w227epg3attqnssfdkx6ex6a/post/3lqcugizbls2g&quot;&gt;Seeded pseudo-random number proposal advances to Stage 2&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Another deep in the weeds. update, but this is pretty early too, TC 39. But a seated pseudorandom number generator proposal has advanced to stage two. You know, math, that random is useful for many things, but cryptographically secure random generation is not really one of them. [49:10]&lt;/p&gt;
&lt;p&gt;Although actually this is sort of adjacent to that. This is one of the problems of math thought random is it doesn&#39;t let you provide a seed for the randomness, which has various drawbacks where sometimes you, you know, you want something that appears random, but is actually deterministic so that you can, you know. [49:29]&lt;/p&gt;
&lt;p&gt;Have other parallel computation that will produce the same output regardless of what the random is. some specific example tying in a CSS feature that I am not familiar enough with to speak at length to. But yeah, just like generally this is a huge expansion in the functionality, the randomness support in the web, in JavaScript. [49:46]&lt;/p&gt;
&lt;p&gt;I, I think it said it&#39;s like 17 new various random functions. So that&#39;s, that seems very nice. [50:10]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; a couple times where I needed to do some seated ran number generation, even if it was just for something like a, a, a tutorial example app and had had to rely on various third party libraries for that. So, I mean, definitely a useful thing to add to the platform. [50:17]&lt;/p&gt;
&lt;p&gt;Okay. And wrapping things up, a couple, couple bits around data fetching. [50:29]&lt;/p&gt;
&lt;h2 id=&quot;3-layer-data-data-fetching-for-complex-react-apps-rscs-react-query-optimistic-ui&quot;&gt;&lt;a href=&quot;https://www.trevorlasn.com/blog/fetching-data-for-complex-next-and-react-apps&quot;&gt;3-layer data data fetching for complex React apps&lt;/a&gt; (RSCs, React Query, optimistic UI)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I saw one article that gave and gave some suggestions around a way to manage your data fetching at a a three tiered approach where you can use server components on the server to do some initial fetching. Pass some of that as props into components and use it to seed react query on the client and then set up React Query to do some optimistic UI updates for faster behavior. Not necessarily new and groundbreaking, but it was nice to see a reasonably detailed article that suggested some ways to tie all three pieces of those together. [50:34]&lt;/p&gt;
&lt;h2 id=&quot;johannes-schickling-announces-livestore-reactive-sqlite--sync-layer&quot;&gt;Johannes Schickling announces &lt;a href=&quot;https://bsky.app/profile/schickling.dev/post/3lq5gucxsj22a&quot;&gt;LiveStore (reactive SQLite + sync layer)&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And finally Johannes Schickling, who I believe originally co-founded Prisma has been doing some work over the last few years around a local first sync engine called Live Store. He gave me a demo in person when I was, in a conference a couple years ago. And then he gave me and David corse a preview of his talk for local First conf a couple weeks ago. And this is really interesting. So he is running SQ Lite in the browser. He&#39;s got a reactive layer around SQ Lite. [51:05]&lt;/p&gt;
&lt;p&gt;So you would have like a, a, a data-fetching-like hook that you&#39;d use in your components, except it&#39;s talking to sq l under the hood. But then the sq LI instance itself is being based on. A series of descriptive events. One might almost call them actions that describe a thing that happened that ultimately define how the data ends up in SQL eight in the first place. And so he actually very intentionally drew parallels to the, the redux mindset and architecture in his talk. So he, he just put that, I put that out and announced it at local first conf. it genuinely looks very interesting. Like, would all apps need it? No, but it looks like it would be extremely useful for things like a, like a local first setup needing to work offline. [51:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I know Johannes Schickling is also very involved in effect, which is a interesting, like massive, huge API scope, like functional programming library. So like, man, he&#39;s doing a lot of stuff. He is really shooting his shot in a lot of different directions. Very cool. I somehow feel like he was involved in organizing the local first con. [52:24]&lt;/p&gt;
&lt;p&gt;Trying to confirm that. Yes. Okay, cool. He is in fact one of the organizers of Local First Comp, so that, that [52:47]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Oh, that&#39;s cheating. Accepting your own talk. [52:52]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right. [52:55]&lt;/p&gt;
&lt;p&gt;it feels like he&#39;s very all in on building the future of local first. So Very cool. [52:55]&lt;/p&gt;
&lt;h2 id=&quot;outro&quot;&gt;Outro&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Alright, that&#39;s all we got for you this month. Thank you so much for joining us. We will be back on. I&#39;d say we&#39;ll be back on the last Wednesday of the month, but I think we haven&#39;t hit that for a minute, [53:02]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I can already say that I, I&#39;m still traveling. In fact, I will probably, I&#39;m pretty sure I will be at a conference on the last Wednesday of next month. So we, we may need to bump it back a few days. [53:12]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; recording time, TBD usually the last week of the month. and we will be back in your podcast feed just as soon as we can after that. I hopefully will get it up on Monday. We gather sources from this week in React bites.dev react status next JS weekly, the React JS subreddit and herein Reactiflux from the Tech news and reads channel. [53:22]&lt;/p&gt;
&lt;p&gt;And also sometimes directly from people publishing, but that&#39;s a, that&#39;s an noisier signal. If this is a show that you get value from and would like to support, best way to do so is by submitting a review on whatever platform you listen to and by telling your friends and coworkers about it. Thanks so much for listening. See you next month. [53:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Take care. [53:56]&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2025-05</link><guid isPermaLink="false">reactiflux-tmir-2025-05</guid><pubDate>Thu, 29 May 2025 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>TMiR 2025-04: React 19.1 helps debug owner stacks</title><description>&lt;iframe src=&quot;https://creators.spotify.com/pod/show/reactiflux/embed/episodes/TMiR-2025-04-React-19-1-helps-debug-owner-stacks-e324h0g/a-abtmiec&quot; height=&quot;102px&quot; width=&quot;400px&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;Quick hits
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#job-market-fred-data-layoffsfyi-trueupio&quot;&gt;00:52&lt;/a&gt;]&lt;/code&gt; Job market: &lt;a href=&quot;https://fred.stlouisfed.org/series/IHLIDXUSTPSOFTDEVE&quot;&gt;FRED data&lt;/a&gt;, &lt;a href=&quot;https://layoffs.fyi/&quot;&gt;Layoffs.fyi&lt;/a&gt;, &lt;a href=&quot;https://www.trueup.io/job-trend&quot;&gt;Trueup.io&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#conferences-react-javascript&quot;&gt;01:50&lt;/a&gt;]&lt;/code&gt; Conferences (&lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://confs.tech/javascript&quot;&gt;Javascript&lt;/a&gt;)
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#appjs-conf-may-28-30-krakw-poland&quot;&gt;01:53&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://appjs.co/&quot;&gt;App.js Conf&lt;/a&gt; May 28-30 Kraków, Poland&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#cityjs-athens-may-27-31-athens-greece&quot;&gt;01:59&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://athens.cityjsconf.org/&quot;&gt;CityJS Athens&lt;/a&gt; May 27-31 Athens, Greece&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#react-summit-june-13-17-amsterdam-nl&quot;&gt;02:04&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactsummit.com/&quot;&gt;React Summit&lt;/a&gt; June 13-17 Amsterdam, NL&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#react-conf-is-back-oct-7-8&quot;&gt;02:09&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/react.dev/post/3lmcp4mhmfk2l&quot;&gt;React Conf is back&lt;/a&gt; Oct 7-8&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#squiggleconf-2025-cfp-closes-may-23&quot;&gt;02:22&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://2025.squiggleconf.com/cfp&quot;&gt;SquiggleConf 2025 CFP&lt;/a&gt; closes May 23&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#sponsored-by-infinite-red&quot;&gt;02:37&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://infinite.red/&quot;&gt;Sponsored by Infinite Red&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#new-releases&quot;&gt;03:24&lt;/a&gt;]&lt;/code&gt; New releases
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#animejs-v4&quot;&gt;03:27&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://animejs.com/&quot;&gt;Anime.js v4&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#rn-v79&quot;&gt;04:03&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactnative.dev/blog/2025/04/08/react-native-0.79&quot;&gt;RN v79&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#nextjs-153&quot;&gt;05:00&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://nextjs.org/blog/next-15-3&quot;&gt;Next.js 15.3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#rspack-joins-the-nextjs-ecosystem&quot;&gt;05:20&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://rspack.dev/blog/rspack-next-partner&quot;&gt;Rspack joins the Next.js ecosystem&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#react-aria-april-11th&quot;&gt;06:29&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react-spectrum.adobe.com/releases/2025-04-11.html&quot;&gt;React Aria April 11th&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#redux-toolkit-27&quot;&gt;07:13&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/reduxjs/redux-toolkit/releases/tag/v2.7.0&quot;&gt;Redux Toolkit 2.7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#vitest-31&quot;&gt;07:44&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/vitest-dev/vitest/releases/tag/v3.1.0&quot;&gt;Vitest 3.1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#main-content&quot;&gt;07:55&lt;/a&gt;]&lt;/code&gt; Main Content
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#react-labs-view-transitions-activity-and-more&quot;&gt;07:57&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react.dev/blog/2025/04/23/react-labs-view-transitions-activity-and-more&quot;&gt;React Labs: View Transitions, Activity, and more&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#react-191&quot;&gt;22:04&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/facebook/react/releases/tag/v19.1.0&quot;&gt;React 19.1&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#one-react-mistake-thats-slowing-you-down&quot;&gt;22:53&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.epicreact.dev/one-react-mistake-thats-slowing-you-down&quot;&gt;One React mistake that&#39;s slowing you down&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#advanced-react-component-patterns&quot;&gt;26:12&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://kentcdodds.com/blog/advanced-react-component-patterns&quot;&gt;Advanced React Component Patterns&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#improvements-in-expo-using-owner-stack&quot;&gt;26:54&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/expo/expo/pull/35866&quot;&gt;Improvements in Expo using owner stack&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#dan-abramov-is-writing-again&quot;&gt;27:48&lt;/a&gt;]&lt;/code&gt; Dan Abramov is writing again
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#react-for-two-computers-complement-to-his-react-conf-talk&quot;&gt;29:09&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://overreacted.io/react-for-two-computers/&quot;&gt;React for Two Computers&lt;/a&gt; (Complement to &lt;a href=&quot;https://www.youtube.com/watch?v=ozI4V_29fj4&quot;&gt;his React Conf talk&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#jsx-over-the-wire&quot;&gt;29:26&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://overreacted.io/jsx-over-the-wire/&quot;&gt;JSX Over The Wire&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#impossible-components&quot;&gt;30:11&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://overreacted.io/impossible-components/&quot;&gt;Impossible Components&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#dont-ruin-his-process&quot;&gt;35:28&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/danabra.mov/post/3lmi3gpiluk2m&quot;&gt;don’t 👏 ruin 👏 his 👏 process&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#-lightning-round-&quot;&gt;35:47&lt;/a&gt;]&lt;/code&gt; ⚡ Lightning round ⚡
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#nextjs-rfc-deployment-adapters-api&quot;&gt;35:48&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/vercel/next.js/discussions/77740&quot;&gt;Next.js RFC: Deployment Adapters API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#flightcontroldev-from-last-year-secret-knowledge-to-self-host-nextjs&quot;&gt;36:23&lt;/a&gt;]&lt;/code&gt; flightcontrol.dev from last year: &lt;a href=&quot;https://www.flightcontrol.dev/blog/secret-knowledge-to-self-host-nextjs&quot;&gt;Secret knowledge to self-host Next.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#styled-components-in-maintenance-mode&quot;&gt;36:38&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://opencollective.com/styled-components/updates/thank-you&quot;&gt;Styled-Components in maintenance mode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#rip-styled-components-now-what&quot;&gt;37:15&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://fadamakis.com/rip-styled-components-now-what-a8717df86e86&quot;&gt;RIP Styled-Components. Now What?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#redwood-announces-new-cloudflare-based-rsc-sdk-existing-framework-in-community-maintenance-mode&quot;&gt;38:50&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://redwoodjs.com/&quot;&gt;Redwood announces new Cloudflare-based RSC SDK&lt;/a&gt;, existing framework in community maintenance mode&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#tc39-kills-records-and-tuples-proposal-possible-alternative-is-composites&quot;&gt;40:18&lt;/a&gt;]&lt;/code&gt; TC39 kills &lt;a href=&quot;https://github.com/tc39/proposal-record-tuple/issues/394&quot;&gt;Records and Tuples proposal&lt;/a&gt;. Possible alternative is &lt;a href=&quot;https://github.com/tc39/proposal-composites&quot;&gt;“Composites”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#react-compiler-rc&quot;&gt;41:36&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react.dev/blog/2025/04/21/react-compiler-rc&quot;&gt;React Compiler RC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#just-use-vite-with-the-workers-runtime-vite-on-cloudflare&quot;&gt;42:29&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://blog.cloudflare.com/introducing-the-cloudflare-vite-plugin/&quot;&gt;&quot;Just use Vite”… with the Workers runtime&lt;/a&gt; (Vite on Cloudflare)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#silk-library---native-like-swipeables-for-the-web&quot;&gt;44:21&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://silkhq.co/&quot;&gt;Silk Library - native-like swipeables for the web&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#transitions-fstate&quot;&gt;45:22&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://jordaneldredge.com/blog/transitions-f-of-state/&quot;&gt;{transitions} = f(state)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#tailwind-4-bun-and-old-macs-a-supermarket-bag-and-a-truckload-of-fomo&quot;&gt;45:51&lt;/a&gt;]&lt;/code&gt; Tailwind 4, Bun, and old Macs: &lt;a href=&quot;https://blog.julik.nl/2025/03/a-little-adventure-in-modern-frontend&quot;&gt;A Supermarket Bag And a Truckload Of FOMO&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#introducing-firebase-studio&quot;&gt;46:47&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://firebase.blog/posts/2025/04/introducing-firebase-studio/&quot;&gt;Introducing Firebase Studio&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#gumroad-is-open-source&quot;&gt;49:05&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://gumroad.gumroad.com/p/gumroad-is-now-open-source&quot;&gt;Gumroad is open source!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-04#automattic-laid-off-16-of-staff&quot;&gt;49:50&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://automattic.com/2025/04/02/restructuring-announcement/&quot;&gt;Automattic laid off 16% of staff&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Thank you for joining us for the April edition of this month in React, where we recap and digest the recent developments in the ever-evolving reactive web ecosystem. [00:07]&lt;/p&gt;
&lt;p&gt;We are coming to you live from Reactiflux, the place for professional react developers, and we are supported by Infinite Red, a consultancy that works exclusively in React Native. I am Carl. I&#39;m a staff product developer and freelance community manager here at Reactiflux, where I do community programs like these and build tools to help keep the community operating. And I might oversee a hackathon next month. So yeah, keep an eye out. [00:30]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I&#39;m Mark. My day job is working at Replay io and in my free time I spend entirely too much stuff and time working on Redux and griping about the React docs. [00:39]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; And I am Mo, I had the mobile team at Theodo. And I am an active member of the React Native ecosystem and organized the React Native London Meetup and the React Native London Conference. Happy to be here as always. [00:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Heck yeah. [00:52]&lt;/p&gt;
&lt;h2 id=&quot;job-market-fred-data-layoffsfyi-trueupio&quot;&gt;Job market: &lt;a href=&quot;https://fred.stlouisfed.org/series/IHLIDXUSTPSOFTDEVE&quot;&gt;FRED data&lt;/a&gt;, &lt;a href=&quot;https://layoffs.fyi/&quot;&gt;Layoffs.fyi&lt;/a&gt;, &lt;a href=&quot;https://www.trueup.io/job-trend&quot;&gt;Trueup.io&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Very quick overview of job market stuff. I found a new data source that I don&#39;t know how I hadn&#39;t heard of it before &#39;cause it is not super new. trueup.io has a job trend page that looks pretty good. similar but distinct from layoffs.fyi. [01:05]&lt;/p&gt;
&lt;p&gt;They are saying that there&#39;s been a little uptick of open tech jobs. But you know, there&#39;s also been a bunch of layoffs. Although this month most of the layoffs are coming from Intel, which yesterday had a bunch of reports filter out saying they&#39;re gonna lay off 20% of staff. [01:23]&lt;/p&gt;
&lt;p&gt;But like 20% of staff in Intel probably means a lot of manufacturing jobs, not like software tech. So I don&#39;t know what that means, but yeah. I don&#39;t know. Vibes are still bad. One thing I like about TrueUp is that they have a, like remote index where it estimates what percentage of available jobs are remote friendly And that has been trending down, sadly. [01:45]&lt;/p&gt;
&lt;p&gt;It&#39;s slightly sub 20% right now, which is, not great. Yeah. [01:50]&lt;/p&gt;
&lt;h2 id=&quot;conferences-react-javascript&quot;&gt;Conferences (&lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://confs.tech/javascript&quot;&gt;Javascript&lt;/a&gt;)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; So upcoming conferences in May! [01:53]&lt;/p&gt;
&lt;h2 id=&quot;appjs-conf-may-28-30-kraków-poland&quot;&gt;&lt;a href=&quot;https://appjs.co/&quot;&gt;App.js Conf&lt;/a&gt; May 28-30 Kraków, Poland&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; At the end of May, May 28th through 30th in Krakow Poland, we have App.Js conference [01:59]&lt;/p&gt;
&lt;h2 id=&quot;cityjs-athens-may-27-31-athens-greece&quot;&gt;&lt;a href=&quot;https://athens.cityjsconf.org/&quot;&gt;CityJS Athens&lt;/a&gt; May 27-31 Athens, Greece&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; . There&#39;s also City JS Athens around the same time. May 27th through 31st. [02:04]&lt;/p&gt;
&lt;h2 id=&quot;react-summit-june-13-17-amsterdam-nl&quot;&gt;&lt;a href=&quot;https://reactsummit.com/&quot;&gt;React Summit&lt;/a&gt; June 13-17 Amsterdam, NL&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Then in June we&#39;ve got a React Summit in Amsterdam. [02:09]&lt;/p&gt;
&lt;h2 id=&quot;react-conf-is-back-oct-7-8&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/react.dev/post/3lmcp4mhmfk2l&quot;&gt;React Conf is back&lt;/a&gt; Oct 7-8&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; This is very early, but the React core team has announced that React Conf will be back this year. last year. It was when I was in May. this time last year I was in Vegas for that, but yeah, they&#39;re doing it you know, mid-October. So that&#39;s cool. [02:22]&lt;/p&gt;
&lt;h2 id=&quot;squiggleconf-2025-cfp-closes-may-23&quot;&gt;&lt;a href=&quot;https://2025.squiggleconf.com/cfp&quot;&gt;SquiggleConf 2025 CFP&lt;/a&gt; closes May 23&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; there&#39;s an open CFP that closes one month from now for squiggle conf, which I am on staff for. if you would like to maybe speak at a conference. It&#39;s a great conference. I love it. It&#39;s organized by a, you know, a good buddy of mine. Yeah, definitely check that out. [02:37]&lt;/p&gt;
&lt;h2 id=&quot;sponsored-by-infinite-red&quot;&gt;&lt;a href=&quot;https://infinite.red/&quot;&gt;Sponsored by Infinite Red&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And of our sponsor read, we are sponsored solely right now by Infinite Red, which is an expert React native consultancy that&#39;s been around since 2015. [02:46]&lt;/p&gt;
&lt;p&gt;They&#39;re our only sponsor, partly because very few companies do as much as they do for the whole React and React native ecosystem. They host podcasts. They run conferences, they sponsor all sorts of different organizations generally just seem like really great people. They&#39;re a team of about 30 people, mostly developers, mostly with more than 10 years of experience. [03:06]&lt;/p&gt;
&lt;p&gt;And they will work with your team to help you develop react native expertise rather than just doing contract engineering and then saying, here you go, this is your problem now. So if your company is looking to start working on a React Native app in the near future, definitely reach out to them and give them a shout. Yeah. Cheers. [03:24]&lt;/p&gt;
&lt;h2 id=&quot;new-releases&quot;&gt;New releases&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Okay, running through some new releases. [03:27]&lt;/p&gt;
&lt;h2 id=&quot;animejs-v4&quot;&gt;&lt;a href=&quot;https://animejs.com/&quot;&gt;Anime.js v4&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; This is only tangentially react related, but anime js a animation library, or they describe it as an animation engine. Just had a V four release and the website is super slick. Definitely a phenomenal advertisement for what you can do with the tool. [03:46]&lt;/p&gt;
&lt;p&gt;Very impressive. And animations are always, I don&#39;t know, doing high level animations with like a bunch, you know, interactive and different layers, and it, it&#39;s always complicated. So this looks like a pretty great tool. So wanted to give it a shout out. Yeah. Mo, can you tell us a bit about the latest React native. [04:03]&lt;/p&gt;
&lt;h2 id=&quot;rn-v79&quot;&gt;&lt;a href=&quot;https://reactnative.dev/blog/2025/04/08/react-native-0.79&quot;&gt;RN v79&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; react native version 0.79 has been released. There&#39;s. Sort of some small changes here. The big one is that the JavaScript engine, JSC that previously used to be the default is now actually being removed completely from react Native Core and being moved to a community package and is effectively really being deprecated. [04:21]&lt;/p&gt;
&lt;p&gt;The few other changes some improvements to performance with Android, but all in all, as we&#39;ll see, and as we&#39;ve seen in the past few months with React native releases, they&#39;re getting slimmer and a lot more frequent. So this whole idea of sort of continuously releasing React Native rather than having a few Big Bang releases, so good to see that it&#39;s chugging along. [04:40]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Very cool. I saw this is their third release this year, whereas in the past , they&#39;ve generally done like three releases in any given year, [04:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I think the trend is going towards doing a release every two months or so. [04:52]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; That&#39;s a pretty solid cadence. [04:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Yeah. I think they&#39;ve really taken a lot of steps over the last two years to try to bring down that release time and it&#39;s starting to pay off. [05:00]&lt;/p&gt;
&lt;h2 id=&quot;nextjs-153&quot;&gt;&lt;a href=&quot;https://nextjs.org/blog/next-15-3&quot;&gt;Next.js 15.3&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Next 15.3 is out. Biggest news for this one is they now have alpha level support for using the turbo pack bundler for production builds. Previously, it had only been available for dev mode. So it looks like there&#39;s alpha level version for that. they have it passing most of their tests, but it&#39;s apparently not ready yet. [05:20]&lt;/p&gt;
&lt;h2 id=&quot;rspack-joins-the-nextjs-ecosystem&quot;&gt;&lt;a href=&quot;https://rspack.dev/blog/rspack-next-partner&quot;&gt;Rspack joins the Next.js ecosystem&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Also 15.3 now has support for optional using the third party RS Pac Bundler. I. For builts RS Ppac is a rust based re-implementation of Webpac and basic compatible with web pack&#39;s configs. So given that the existing version of Next still uses Webpac under the hood, the next and web and RS Ppac teams were able to collaborate and figure out how to get a plugin that would essentially allow it to use RsPack instead of Webpack as one possible alternative way to try to speed things up. [05:55]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, I did see that the performance improvement from using RsPack and Next is like not that great and like in some circumstances could actually be worse than Webpac, which seems confusing to me. [06:07]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; some of it was due to things like JS based plugins and, and some of the, the interrupt back and forth between. Uhland and JS land. [06:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right. I mean, hey, similar problem is how React Native had with the, parsing data back and forth. kind of goes to show you how even once you have a tool that is written in native, it&#39;s, you know, it&#39;s not a silver bullet. It doesn&#39;t fix all the problems. [06:29]&lt;/p&gt;
&lt;h2 id=&quot;react-aria-april-11th&quot;&gt;&lt;a href=&quot;https://react-spectrum.adobe.com/releases/2025-04-11.html&quot;&gt;React Aria April 11th&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, react Aria by Adobe had a release. [06:32]&lt;/p&gt;
&lt;p&gt;They don&#39;t, I guess they don&#39;t do versions, they do just date releases. So this is the April 11th release. One thing that caught my eye that I thought was pretty interesting, so they have a calendar tool and they now allow custom calendar support. So it lets you implement your own like calendar schedule in re rendering this calendar thing, which, you know, they, they shout it out, for instance, using a 4 5, 4 fiscal calendar, which I had to Google because I&#39;d never heard of it. [07:01]&lt;/p&gt;
&lt;p&gt;So this seems like a very, like, deep in the weeds kind of feature edition for, I don&#39;t know that that goes to show how seriously they are exploring the problem space. And I, I take that as a pretty positive sign. [07:13]&lt;/p&gt;
&lt;h2 id=&quot;redux-toolkit-27&quot;&gt;&lt;a href=&quot;https://github.com/reduxjs/redux-toolkit/releases/tag/v2.7.0&quot;&gt;Redux Toolkit 2.7&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Last week I shipped Redux Toolkit 2.7 as I was on my flight to React Miami. [07:18]&lt;/p&gt;
&lt;p&gt;the main feature outta this is that RTK query now supports use of standard schema definitions for both validating requests and responses and errors, as well as potentially inferring the TypeScript types for those errors so that you don&#39;t have to hand rate those when you&#39;re defining the endpoints. As well as a bunch of other, other bug fixes and improvements. [07:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; That&#39;s super cool. I love generated types. [07:44]&lt;/p&gt;
&lt;h2 id=&quot;vitest-31&quot;&gt;&lt;a href=&quot;https://github.com/vitest-dev/vitest/releases/tag/v3.1.0&quot;&gt;Vitest 3.1&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And then Vitest 3.1 is out. Doesn&#39;t look like there&#39;s a, a huge standout feature, but a, a bunch of, again, small fixes and performance improvements, obligatory. [07:55]&lt;/p&gt;
&lt;h2 id=&quot;main-content&quot;&gt;Main Content&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, into our main content. [07:57]&lt;/p&gt;
&lt;h2 id=&quot;react-labs-view-transitions-activity-and-more&quot;&gt;&lt;a href=&quot;https://react.dev/blog/2025/04/23/react-labs-view-transitions-activity-and-more&quot;&gt;React Labs: View Transitions, Activity, and more&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; So conveniently, like 35 minutes ago, the core team put out a new blog post a new React Labs post. React Labs are posts where they write about projects in active research and development. So this is like, definitely, this is like, you know, leading edge. What is the core team working on? [08:14]&lt;/p&gt;
&lt;p&gt;They do like what, maybe two of these a year? [08:18]&lt;/p&gt;
&lt;p&gt;a solid year since the actual React Labs post. They did have like the, the React 19 release announcements in that since then, I. [08:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; dated React Labs, March, 2023, react Labs, February, 2024, and now April, 2025. [08:31]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So the headline out of this one is that they have been working over the last few in couple months on official support for the browser view transitions. API now. Going backwards. A lot of folks have asked over the years for some kind of official animation support in React itself. I know that people have compared, versus something like Svelte, which has apparently has the ability to declare some animations directly in your templates. And they&#39;ve pointed at React and said like, why can&#39;t I do the same thing? Or like, you know, animating elements in and out is, is really, really difficult. And there&#39;s been lots of, you know, different animation libraries for React over the years, react Transition Group, react Spring, et cetera. But this is the first time we&#39;ve ever had anything related to animations baked into the React core itself. Now as usual, I&#39;m not actively ready in a lot of React myself these days. And when I have, I&#39;ve never done anything animation related, so I&#39;ll be honest. I still don&#39;t even fully know what a view transition actually is, but I see a lot of people really, really excited about it. My, my vague understanding is that it&#39;s taking elements that are within the page and being able to move them back and forth. [09:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; As far as I know, it&#39;s largely about like page transitions, like when you navigate it will let you emulate like the kind of a native style of like, oh, this new, you know, new pane slides in over top [09:57]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I mean, there, there&#39;s a few different types of transitions. There&#39;s like a fade transition that&#39;s native sort of there. But there&#39;s also the, the one that you&#39;re referring to, I think Carl, is the shared element transition, which is you have one element that exists on the first page and then the second, that element kind of persists, changes shape. [10:13]&lt;/p&gt;
&lt;p&gt;So the best example of that is like Instagram when you open up a a post and it kind of expands to take up the whole screen. That&#39;s what we call shared element transition in the mobile world. [10:22]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yeah, that, that makes sense. And I can definitely see how something like that would be difficult to do in React, where, you know, normally you stop rendering A and you start rendering B. [10:32]&lt;/p&gt;
&lt;p&gt;So the React team has been working on an official actual view transition component which has a number of different. Pieces of functionality, being able to, to label the transitions animate navigations, do some customization of these behaviors. the blog post goes into some examples of what these different capabilities are and how you would actually try to use them in practice. So it is still experimental. You have to specifically switch over from a production stable build of react to using the latest experimental channel release. But it&#39;s gotten to the point where they think it&#39;s actually ready for folks to try out. [11:09]&lt;/p&gt;
&lt;p&gt;on a similar note the React team has been working on and off for the last three or four years on a component that they originally called off screen. And the idea for this is that, as we all know, when you unmount a React component, everything about that component goes away. The effects are cleaned up. [11:27]&lt;/p&gt;
&lt;p&gt;The state that was unique to that component instance goes away, and that&#39;s made some things like, you know, building tabbed UIs difficult because you either have to do some work to hide the other tab contents, you know, maybe using like display none in CSS. But, and or you actually have to unmount them. [11:49]&lt;/p&gt;
&lt;p&gt;But in that case, state that was there goes away. And so the intent of this offscreen component. Was that you could wrap it around a section of your UI and you could tell React to toggle the display, but it would keep those components around and preserve their state. And then when you make it visible again, everything&#39;s still there. So they have since renamed this to be called the activity component. And they&#39;ve also, and so now that is all at a point where it&#39;s officially ready for trial in an experimental form as well. And I think this is actually gonna be kind of a big deal. , we&#39;ve actually used the predecessor offscreen component in replays UI for a while, which is why we&#39;re stuck on an old experimental build of react. And it, it really does prove pretty useful. [12:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; this like scratch an itch in the back of my brain because it, I, remember talking about this previously, so I was just googling like the, you know, offscreen and oh my God, like they&#39;ve, they&#39;ve been talking about this in both of the last two labs posts that we just mentioned. [12:50]&lt;/p&gt;
&lt;p&gt;So like, you know, they&#39;ve got a tab called offscreen Rendering in 2023. &quot;Offscreen rendering is an upcoming capability and react for rendering screens in the background.&quot; Like, okay. Alright. So they&#39;ve been looking at this for over two years, I guess. It does seem really useful. Like I have definitely used every trick in the book to make things, you know, deprioritized. But yeah, I&#39;m a little surprised to see that this is still in progress [13:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; The other two interesting bits out of the blog post about this, and they were not things that I, I had thought about in relation to this component. Another use for this is that if you start off with the activity labeled as Hidden, React will pre-render that content even before it&#39;s been displayed at all. But using concurrent capabilities, it&#39;ll be done in the background. So this can be useful for, you know, maybe you have like a more expensive piece of the UI that you know will be shown eventually, but maybe it doesn&#39;t need to be part of the initial render. And then that also ties into SSR capabilities as well. [13:54]&lt;/p&gt;
&lt;p&gt;And based on the initial value, react might like, include it in the content and then hydrate it later, or, do it in the background. And they also mentioned the possibility of adding some additional modes to this. Right now, currently it&#39;s, it&#39;s an nu that is just hidden or visible and they may actually have some other alternative behaviors down the road as well, which is why it&#39;s not a bullion. [14:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yep. Love flags rather than Boolean. That&#39;s great. Yeah. Interesting. I guess. I guess I&#39;ll keep an eye on it, but like, man, I guess I&#39;ve been keeping an eye on it for two and a half years now. [14:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; The post covers a few other things. There&#39;s some performance tracking stuff they&#39;re working on. They are talking about trying to have the compiler automatically insert dependencies into use effect dependency arrays. there was one phrase in there in the post that I thought was kind of understandable, but also slightly oddly phrased. They, they gave a classic example of like a, a chat room connection in a use effect. they had a sentence to the effect that &quot; Some hooks can be hard to think of in function instead of life cycles, developers get confused,&quot; da da da. &quot; We think one of the reasons for the confusion is that developers think of effects from the components perspective, like a life cycle instead of the effects point of view, what the effect does.&quot; [15:10]&lt;/p&gt;
&lt;p&gt;And it basically what that&#39;s trying to say is. You know, the, the entire Rack React community looked at the use effect hook when it came out and we said, ah, this is the replacement for component. Did Mount and Component did update from class components to the point that, you know, often people even even create their own abstractions with those names. [15:28]&lt;/p&gt;
&lt;p&gt;I. And the React team has been valiantly trained to get us to stop thinking in those terms for years. And so I think this paragraph is basically saying, we&#39;ve been trying to convince people not to think this way and failed. But it also like, it&#39;s, phrased slightly, like they&#39;re almost surprised. [15:45]&lt;/p&gt;
&lt;p&gt;People still think of it that way. [15:47]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. it feels like a documentation problem. I feel like so many people are learning, react from a mishmash of strange places that they&#39;re learning, not what the core team would like. And you fix that by writing really good docs. [16:00]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So anyway, the ul ultimately they&#39;re trying to work towards making the compiler be able to insert all those dependencies for you, and then maybe someday we get to stop thinking about this entirely. [16:08]&lt;/p&gt;
&lt;p&gt;They are also working on an early version of a compiler ex or extension for IDs, which has the potential to act as maybe like a super winter or show you what the transformed component might look like or even like what dependencies it would insert into use effect array automatically. [16:29]&lt;/p&gt;
&lt;p&gt;A couple other tidbits. And then one, the last item is very short, but as a library maintainer, it caught my eye. We all know that React has component-based state and that this has the strength that it&#39;s isolated to that component and the portion of the component tree, it has the weakness that you can&#39;t easily share it across different portions of the component tree. And we also know that Reacts concurrent behavior really only works with state that React owns, which is why external libraries like Redux and Zustand rely on the used sync external store hook, which works, but also kind of forces react to give up on doing things like transitions in the most optimized way. [17:13]&lt;/p&gt;
&lt;p&gt;So they&#39;ve talked on and off for years about what if we were to add some sort of like a reusable store primitive to react. there&#39;s discussions about this going back to like 2015 and the blog post hasn&#39;t mentioned that they are working on something called concurrent stores. And it gives sort of a one line example that you would pass this to the use hook, and it does say, our goal is to allow external state to be read during render without caring and to work seamlessly with all the concurrent features that React offers. There&#39;s no further details. It&#39;s something they&#39;re just starting to think about. But it sounds like maybe down the road, react-redux and Zustand could use this and still work the same way, but better without the limitations. I don&#39;t know. I&#39;m interested. I. [18:05]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right. I&#39;ve never used used sync external store, partly because of the warnings they gave of like, this is gonna break stuff. So yeah. That&#39;s interesting. That&#39;s cool. [18:12]&lt;/p&gt;
&lt;p&gt;I&#39;ll also shout out, they mentioned, two other things very tangentially, like, we are looking at this, or we intend to look at this. [18:21]&lt;/p&gt;
&lt;p&gt;I&#39;m curious about fragment refs. So like, you know, if you want to get a reference to the underlying dom node and react, you can do that with a ref. And you can use fragments to group elements, as a single top level rendered item rather than like wrapping it in a diviv or something like that. [18:35]&lt;/p&gt;
&lt;p&gt;But you cannot grab a reference to that group of nodes. But now they&#39;re looking, they &quot;intend to research&quot; refs on node groups like that, which is definitely interesting. I could see that being valuable in something like rendering a table or a list of something else. [18:55]&lt;/p&gt;
&lt;p&gt;Like especially if you&#39;re trying to do drag and drop kind of things. I could understand why being able to access a reference to a list of rendered nodes might be useful. But yeah, so I, I&#39;m, I&#39;m curious about that, but also given how long we&#39;ve waited for some of these other things that are being researched with maybe clearer use cases, I will not be holding my breath on that. [19:17]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; will say that I&#39;ve, I&#39;ve watched them put up and merge several prs that are input, are trying to implement fragment refs. So it&#39;s, it&#39;s definitely not just a theoretical research project. They&#39;re actively trained to work out the implementation deals and details. At the moment, [19:33]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; That makes sense. Yeah. [19:34]&lt;/p&gt;
&lt;p&gt;Likewise for gesture animations gestures are generally just like a pain in the butt. I have never found anything that worked super well for that. So they say we&#39;re researching ways to enhance new transitions to support gesture animations, such as swiping to open a menu or scroll through a photo carousel. [19:50]&lt;/p&gt;
&lt;p&gt;That&#39;s cool. I will be excited to see if they get something working there. Just &#39;cause gestures are always annoying and part of why they&#39;re annoying is because it&#39;s such a, I don&#39;t know, they&#39;re just very far from like the rendering model. The way you have to think about gestures is very far from the way that React asks you to think about rendering a tree of components with like, self-contained state. It&#39;s just like fundamentally outside of a component. It&#39;s at the level of the browser, the device. [20:17]&lt;/p&gt;
&lt;p&gt;So, figuring out a way to, I don&#39;t know, reduce the distance between those is definitely interesting and sounds valuable and useful. But they also say for now we&#39;re focused on shipping view transition and we&#39;ll revisit gestures afterwards. So this definitely sounds a little bit more like intent to explore than active exploration. [20:34]&lt;/p&gt;
&lt;p&gt;They say they, they also say, we believe we found an approach that works well and may introduce a new API. So cool. They&#39;ve done some research, they&#39;ve got an idea, but it&#39;s not their immediate focus right now. [20:44]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; the other sort of big picture thing that I took away from this post. So there&#39;s been a lot of. Complaints and concerns from the community over the last couple years that the React team kind of stopped caring about the client side. That, you know, all their effort was going into building server components and pushing people towards frameworks and all this other stuff, which I. There&#39;s definitely been a push. The React team has noted that part of it is just how much, how hard everyone went in on single page apps over the last several years, and so there, there has been a swing back towards server-side rendering and ess, but even like React 19 had a bunch of client-centric features for, for forms and whatnot. it is interesting that basically all the things that they&#39;ve got in this blog post are client side pieces, you know, view transitions, activities compiler stuff. Sort of there is a real focus on stuff that works on the client and adding like fairly meaningful core level functionality to the library itself. And so I think this actually kinda counterbalances some of the concerns people had that, you know, they were focusing on the server too much as well as noting that, okay, like, okay, now that the big React 19 push is done, now they&#39;ve got some room to actually pick up with some of the features that they were trying to work on. [22:04]&lt;/p&gt;
&lt;h2 id=&quot;react-191&quot;&gt;&lt;a href=&quot;https://github.com/facebook/react/releases/tag/v19.1.0&quot;&gt;React 19.1&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Let&#39;s move on to React 19.1. [22:07]&lt;/p&gt;
&lt;p&gt;literally the headline in the post itself is the owner stack. They&#39;re introducing development mode only stack trace to help identify what components are rendering, which. And this really brought the, the whole concept of the owner staff back to mind for me. [22:23]&lt;/p&gt;
&lt;p&gt;Like this was something that I remember learning about and thinking about, thinking in terms of a lot in the first several years that I worked with React. And I think it&#39;s been slightly deprioritized in people&#39;s minds, like it&#39;s lost mind share. But it is super valuable for a ton of different things. [22:41]&lt;/p&gt;
&lt;p&gt;So surfacing it better in the developer tools and such I think will be really powerful. I wanted to bring in a couple of like, old, old, old posts that I remember reading and remember being, you know, instructive for me. [22:53]&lt;/p&gt;
&lt;h2 id=&quot;one-react-mistake-thats-slowing-you-down&quot;&gt;&lt;a href=&quot;https://www.epicreact.dev/one-react-mistake-thats-slowing-you-down&quot;&gt;One React mistake that&#39;s slowing you down&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Kent C Dodds, put out a, you know, one react mistake that&#39;s slowing you down blog post a while back and it talks about like component composition and like how you structure the tree and it doesn&#39;t name owner stack. [23:07]&lt;/p&gt;
&lt;p&gt;I So it doesn&#39;t name the owner stack, but like really that&#39;s what it&#39;s talking about. It talks about like, you know, context and like prop drilling and how you can avoid it and why it&#39;s painful. And really what they&#39;re talking about, what Kent is talking about in this post is mindfully managing your owner stack. [23:23]&lt;/p&gt;
&lt;p&gt;Because the reason you have to prop drill is because the owner stack is weird and you need to go through intermediate components between data source and data usage. But if you restructure that owner stack so that you&#39;re, instead of passing a prop through one component so that it gets rendered in another component rendered by that component, you can just render children and then you don&#39;t need to pass the prop through. You just render them all at the same level. [23:52]&lt;/p&gt;
&lt;p&gt;Or, you know, you maybe not all at the same level, but you can collapse that you can make the tree broader and shallower. And prop drilling is like a developer experience, you know, convenience. It&#39;s nice to not have to remember, you know, if you think about it as like the length of a pipe, it makes the pipe a lot shorter and you, you know, there&#39;s fewer places for things to go wrong and you have to think about fewer twists and turns. [24:13]&lt;/p&gt;
&lt;p&gt;So like, that&#39;s great. But also a flatter, broader owner stack is just naturally good for performance because when you have a deep tree, something at the top re rendering will cause like everything to re-render underneath it. Whereas when you have it flatter and broader, then just you can re-render in smaller batches, like smaller units of components will be forced to re-render when things [24:39]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I will caveat that one. [24:40]&lt;/p&gt;
&lt;p&gt;So rendering does work at the direct parent child level. So like if I have parent component, I. Inside of its own JSX, it renders a child of A, and then it inserts B as children inside of A. So like both the tag A and the tag B are inside of parent. There is still a three component level parent-child relationship tree. So root is the parent of of A, A is the parent of B. But the root is the owner of both A and B. [25:19]&lt;/p&gt;
&lt;p&gt;There&#39;s still three levels of components that have to get rendered, but it does flatten , the logic needed to generate those. And that&#39;s kind of like , the distinction that a lot of people haven&#39;t quite seen as they&#39;re learning. [25:31]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right, right. I guess let, yeah, maybe I&#39;ll, I&#39;ll revise that a little bit. So it&#39;s at that root level, if the root level component is re rendering, sure. All of the children still need to re-render, but the deeper the tree, the more parents that&#39;re in the loop there are. So this has been like moving components so that it&#39;s, the owner tree is flatter, has been like the number one, general approach I&#39;ve done when there are performance problems in a code base, , which generally comes from, like, you can think in smaller units. I don&#39;t know. feel like I&#39;m going deep in the weeds and not stating anything clearly. [26:07]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; generally speaking Composition is a good thing that more developers would benefit from taking advantage of. [26:12]&lt;/p&gt;
&lt;h2 id=&quot;advanced-react-component-patterns&quot;&gt;&lt;a href=&quot;https://kentcdodds.com/blog/advanced-react-component-patterns&quot;&gt;Advanced React Component Patterns&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Another, old, old old post that I&#39;ll just shout out. Uh, again had a phenomenal post from 2017 talking about advanced react component patterns and like, okay, some of these are no longer like super duper relevant anymore, like higher aortic components. [26:27]&lt;/p&gt;
&lt;p&gt;Like, hmm, probably just use a hook. But these types back in this era of blogging about React stuff like owner stack was a little bit more, closer to the surface, it was still not on the surface. People are not referencing the owner stack. But yeah, just like when. I feel like owner stack is secretly the other option when people are talking about like prop drilling versus context like, well also what if you just restructured it so it&#39;s simpler? [26:52]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yep. [26:52]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Anyway, super cool to see it surfaced. [26:54]&lt;/p&gt;
&lt;h2 id=&quot;improvements-in-expo-using-owner-stack&quot;&gt;&lt;a href=&quot;https://github.com/expo/expo/pull/35866&quot;&gt;Improvements in Expo using owner stack&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; one of the things that this owner stack, change is actually powering is some updates to the expo CLI for when you run your app in dev mode because one of the challenges in the React native world is that you get these massive log, massive log spans. [27:10]&lt;/p&gt;
&lt;p&gt;The stack trace is not at all discernible because it&#39;s kind of interacting in between the native world and, and the react world. but with this, the expo team actually ran a p and I think it&#39;s been actually merged now into hopefully the next release of, of Expo where they&#39;re actually showing you where in the react tree, the, the, the specific component is being rendered. [27:31]&lt;/p&gt;
&lt;p&gt;So it makes discerning some of these error messages a lot simpler. So I think we&#39;ll start to see some, maybe some improvements on like the framework level as a result of this. [27:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Okay. That&#39;s all we got for React 19.1. Really. I don&#39;t know. There&#39;s just, there&#39;s not that much in 19.1. [27:48]&lt;/p&gt;
&lt;h2 id=&quot;dan-abramov-is-writing-again&quot;&gt;Dan Abramov is writing again&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; This is kind of small, this is maybe just like commenting on the ecosystem, but Dan Abramov is writing again, and That&#39;s nice. He was writing a lot. I don&#39;t know how many hours of text do you think he&#39;s written, mark? [28:00]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Many, many hours. Like I, I read fairly fast and there, there is a lot of content there. [28:06]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; One of the newsletters I subscribed to that shared this out you know, does share estimated reading time. And it was, you know, one of the posts was estimated reading time of an hour. And like, that&#39;s just if you&#39;re scanning your eyes over the words, I think, not trying to digest and understand it, but like broadly what he&#39;s writing about is server components. [28:25]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Dan is fascinated with server components at like a technical concept, architectural. Where did this come from? How did we get here? What does this, how is this similar to old approaches? How is this different? What does it enable that you couldn&#39;t do before, kind of a level. [28:47]&lt;/p&gt;
&lt;p&gt;And he&#39;s, not even officially on the React team anymore. Like, think of him as like a, private citizen expressing his own opinions at this point. But the different posts are going through different aspects of. Server components from like a, very conceptual level and trained to explain from first principles, how did we get here? [29:09]&lt;/p&gt;
&lt;h2 id=&quot;react-for-two-computers-complement-to-his-react-conf-talk&quot;&gt;&lt;a href=&quot;https://overreacted.io/react-for-two-computers/&quot;&gt;React for Two Computers&lt;/a&gt; (Complement to &lt;a href=&quot;https://www.youtube.com/watch?v=ozI4V_29fj4&quot;&gt;his React Conf talk&lt;/a&gt;)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So like react for two computers is taking some of the concepts of, well, we have code that runs on the client and code that runs the server. How do we sort of figure out how to intermingle those? How can we shift pieces of that code back and forth and still have all this work together? [29:26]&lt;/p&gt;
&lt;h2 id=&quot;jsx-over-the-wire&quot;&gt;&lt;a href=&quot;https://overreacted.io/jsx-over-the-wire/&quot;&gt;JSX Over The Wire&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; JSX over the wire, I believe looks at, you know, if we, like we started with rest APIs, but rest APIs often end up growing special cases to handle data that the UI needs. And there&#39;s precedent for server driven UIs where you specify, here&#39;s a list of components in a JSON format. And then you know, the. All your different UI layers, you know, mobile, web, whatever, can just, you know, figure out on the fly what components you&#39;re talking about and render those and that RSCs take that sort of idea form a backend for front end pattern, but it&#39;s one that has more flexibility. And being able to send the list of components to render over the wire in a rather dynamic way. [30:11]&lt;/p&gt;
&lt;h2 id=&quot;impossible-components&quot;&gt;&lt;a href=&quot;https://overreacted.io/impossible-components/&quot;&gt;Impossible Components&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I always skimmed the most recent one, impossible components, but it&#39;s, it&#39;s kind of expanding on some of this, like where can the logic live? What are some of the capabilities of things you could do, like having a server component read blog files off disk and estimate the reading time rather than like having to insert them into a database somewhere. So. The first couple were very, very abstract and you know, that was a complaint that a lot of people had. the last one was more concrete. He&#39;s also kind of trying to be careful to, I. Explain concepts without literally invoking the word react server component. So like think through the mindset without getting caught up in the trap of, well, this is like a thing I can only use with next, or whatever other complaints people have, [31:00]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; funny, I just saw a meme that was like, name something that you can describe and people will agree with until you call it what it is called, and I was like, server components. [31:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yeah. So. I&#39;ve seen a number of reactions. You know, some folks are just saying like, look, Dan, your blog posts are too long. They need a table of content, or at least a, a summary upfront of what is the point I&#39;m trying to make here? And Dan&#39;s like, that&#39;s not the way I write, and I&#39;m sort of ready for myself at this point, which I totally get and good for him. I&#39;ve, I&#39;ve seen a number of comments where people have said like, well, I followed the train of thought and now I&#39;m actually sort of getting. What the point of server components are, and I&#39;ve seen a couple other folks say that like, you know, if, it&#39;s taking this much explanation to try to convince me of what server components do, maybe the React team really needs to like come up with like a 500 word summary, which are, which are all I think, are all very valid reactions. But it&#39;s , Dan loves explaining things from first principles. he&#39;s a very like, logical, think it through. Why does this exist kind of a person. On a personal level, I&#39;m just very happy that he&#39;s gotten past his writer&#39;s block and feels good about writing the stuff he wants to say, the way he wants to say it. And also, there is some value in reading through these to try to understand like, what is the point of all this? [32:12]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And like at the end of the day, this is not, I think the, I think &quot; feature in a JavaScript tool&quot; is the wrong mental model for thinking about server components. I really do think that they are exploring a new. Compute paradigm, like it&#39;s a blending of the client server modes and they&#39;re constrained by, you know, technical aspects, everything in JavaScript in the browser is based around like batch and requests, it&#39;s hardcore based around a client server model. And they&#39;re trying to blur those lines and they do not really have platform support for doing it. So they are, you know, that&#39;s where things like the &quot;use client&quot; / &quot;use server&quot; directives, I think like they&#39;re kind of a hack fix because they don&#39;t have better primitives in the language, in the runtime to work with. [33:02]&lt;/p&gt;
&lt;p&gt;to me, yes, it&#39;s taking a lot of words to explain this and to explore it and to try and make it digestible and comprehendible, but it was also really hard to convince people that like, like I, you know, I, I remember early in my career there were a lot of words written about like pets versus livestock servers because like, you should be able to like, kill and restart any server and it shouldn&#39;t cause a problem and that&#39;s a livestock server, rather than one that you like very gently take care of and, you know, evolve over, over time and love and dote on. [33:34]&lt;/p&gt;
&lt;p&gt;And similarly when serverless became more of a thing, like these are different models for thinking about how your code executes and they&#39;re complicated and they&#39;re hard and I feel like this is cutting edge in so many different ways and so many, I dunno, I, I appreciate Dan really occupying this space at the bleeding edge, especially now that he&#39;s not, you know, professionally obligated to as a member of the core team. [33:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; last thought real fast. when the new React Docs came out, there was nothing in there about server components, and for a while the only official docs about server components were over in the next framework documentation that Vercel&#39;s devrel team had written, I still thought there was absolutely nothing in the React docs all, about server components until about a week and a half ago. [34:21]&lt;/p&gt;
&lt;p&gt;When I made that statement, after searching to try to confirm that there were nothing, and I missed that, there had been a page added about server components to the docs about a year ago, and I flat out missed that it existed. Having said that I do feel that the React docs would really benefit from having a much more concrete set of pages that describe server components. Ideally I would like to see an intro page, an overview, and in fact, there was actually a Versel blog post about server components that I think should just be literally copy pasted into the official React docs as the intro. I&#39;d like to see kinda like a modest technical explanation. Like what are they architecturally, where do they fit in? [35:02]&lt;/p&gt;
&lt;p&gt;What does running a server component output? Maybe some kind of an FAQ because there&#39;s an awful lot of questions people still have about them, including some pretty stupid ones. And then maybe even like some kind of like a adoption or migration page. Like I would like to start using them. [35:17]&lt;/p&gt;
&lt;p&gt;I feel like having those pages would, it wouldn&#39;t solve all people&#39;s complaints, but it, it would at least centralize and make some of the information more official to reference. [35:28]&lt;/p&gt;
&lt;h2 id=&quot;dont--ruin--his--process&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/danabra.mov/post/3lmi3gpiluk2m&quot;&gt;don’t 👏 ruin 👏 his 👏 process&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Last thing I&#39;ll say on the subject of Dan writing again about server components. he posted on blue sky. &quot;I kind of wanna write a dozen more posts about react server components. But I also feel like it&#39;s inviting endless takes about Dan trying to explain RSC means RSC is bad and it kind of ruins some of the process for me.&quot; [35:44]&lt;/p&gt;
&lt;p&gt;So don&#39;t ruin the process. [35:45]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Be nice Dan, please. [35:47]&lt;/p&gt;
&lt;h2 id=&quot;-lightning-round-&quot;&gt;⚡ Lightning round ⚡&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Okay. Lightning round. [35:48]&lt;/p&gt;
&lt;h2 id=&quot;nextjs-rfc-deployment-adapters-api&quot;&gt;&lt;a href=&quot;https://github.com/vercel/next.js/discussions/77740&quot;&gt;Next.js RFC: Deployment Adapters API&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; There is an RFC from next to do deployment adapters which is pretty cool. Like one of the big endless complaints about next is how hard it is to run anywhere other than versal. So they are meaningfully exploring what it would take to make that easier. [36:09]&lt;/p&gt;
&lt;p&gt;Yeah, it was post put up three weeks ago. I, I haven&#39;t seen a ton of like movement yet on what exactly that means, but yeah, it&#39;s seems cool here for it. Interested. Very excited to see what comes out of that. [36:23]&lt;/p&gt;
&lt;h2 id=&quot;flightcontroldev-from-last-year-secret-knowledge-to-self-host-nextjs&quot;&gt;flightcontrol.dev from last year: &lt;a href=&quot;https://www.flightcontrol.dev/blog/secret-knowledge-to-self-host-nextjs&quot;&gt;Secret knowledge to self-host Next.js&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And I also wanted to shout out a blog post from October of last year from Brandon Bayer of Flight Control, secret Knowledge to Self-Host Next js. [36:33]&lt;/p&gt;
&lt;p&gt;So that seems like a relevant read in, in conjunction with this new deployment adapters. [36:38]&lt;/p&gt;
&lt;h2 id=&quot;styled-components-in-maintenance-mode&quot;&gt;&lt;a href=&quot;https://opencollective.com/styled-components/updates/thank-you&quot;&gt;Styled-Components in maintenance mode&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I don&#39;t think we mentioned this last month. the style components CSS and JS library has announced that it is officially going into maintenance mode. Part of this is the amount of work needed to do it, and part of it is the shifts in the ecosystem such as relying on context when server components don&#39;t support context on the client. So that&#39;s both A FYI. This library is going into maintenance mode and also like more evidence that CSS and JS is sort of both falling out of favor and kind of being discouraged by technical changes in React itself. [37:15]&lt;/p&gt;
&lt;h2 id=&quot;rip-styled-components-now-what&quot;&gt;&lt;a href=&quot;https://fadamakis.com/rip-styled-components-now-what-a8717df86e86&quot;&gt;RIP Styled-Components. Now What?&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; One sort of interesting like experience from my side on this specific thing was we actually migrated on a project of mine that was on the web that was using Next js. They went into the app router and tried to embrace all things server components and part of that process was they had a styled component library, like a shared component library that they had internally, which was all in components and, immediately they hit a brick wall and they had like 80 plus components that were all styled components and they couldn&#39;t use any of that there. So to throw in a little bit of AI magic what we actually did was created a custom prompt in like two hours that took styled components and converted it into their choice SaaS modules. [37:54]&lt;/p&gt;
&lt;p&gt;Which is going back to basics, but you know, a good technology choice nonetheless, if you want zero js runtime styles. And it worked shockingly well. So if you give it a good set of rules and you define the problem and you give it a nice workflow to follow, as if it was a developer did a shockingly good job, it reduced like the time for each component from like two hours to 15 minutes, 10, 15 minutes with a review process, like manually looking through the code it would generate. [38:22]&lt;/p&gt;
&lt;p&gt;So if you&#39;re stuck in style components world and need a little bit of help, try to use gen AI and the reasoning models shockingly worked very well because. With CSS, things cascade and it needs to have an internal representation of how styles cascade down. So your four OS in chat, GPT wouldn&#39;t work very well, but your O ones and O threes would work quite well. bit of a weird guideline, but it was quite a fun experience and I think it&#39;s a good use case for it. Trying to play around with gen ai. [38:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I would not have thought about that. [38:50]&lt;/p&gt;
&lt;h2 id=&quot;redwood-announces-new-cloudflare-based-rsc-sdk-existing-framework-in-community-maintenance-mode&quot;&gt;&lt;a href=&quot;https://redwoodjs.com/&quot;&gt;Redwood announces new Cloudflare-based RSC SDK&lt;/a&gt;, existing framework in community maintenance mode&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Redwood has announced that they are now doing a CloudFlare based react server components, SDK. So like they used to be more of a framework and now they&#39;re like, it&#39;s kind of a reduced scope. I don&#39;t know. This connects back to, part of the headline of our January episode was &quot;RedwoodJS, dead?&quot; [39:12]&lt;/p&gt;
&lt;p&gt;We caught word that like some other person who had been involved in the project early but hadn&#39;t been involved recently, came back out outta the woodwork and basically what Redwood JS has been for the last, I don&#39;t know, two years, it is not anymore and it is now something else. That&#39;s, strange. [39:31]&lt;/p&gt;
&lt;p&gt;the SDK looks neat. I haven&#39;t played with it yet. I had been pretty interested in Redwood js because I thought they were trying to be like a Laravel for JavaScript and React Universe, and I thought that was cool. Something that is more narrowly like about doing the rendering is a lot less interesting to me. [39:48]&lt;/p&gt;
&lt;p&gt;For me, the value of a framework like that is more like, when they were trying to be the Laravel of reactive, I was excited because I would love somebody to make things like authentication and toast messages and all those kinds of things. Easier to do, easier to build a product rather than, I dunno, a rendering model. So this is now kind of going back into rendering model. [40:13]&lt;/p&gt;
&lt;p&gt;So it, it seems like an interesting, worthwhile exploration, but it&#39;s not what got me excited about Redwood in the first place. [40:18]&lt;/p&gt;
&lt;h2 id=&quot;tc39-kills-records-and-tuples-proposal-possible-alternative-is-composites&quot;&gt;TC39 kills &lt;a href=&quot;https://github.com/tc39/proposal-record-tuple/issues/394&quot;&gt;Records and Tuples proposal&lt;/a&gt;. Possible alternative is &lt;a href=&quot;https://github.com/tc39/proposal-composites&quot;&gt;“Composites”&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yep. Meanwhile in, not directly react, but very related news, the TC 39 JavaScript Specification Committee has officially killed the records and two polls proposal. This was intended to add. Deeply comparable immutable objects directly into the JavaScript language, both in terms of runtime and specific syntax for declaring them. The idea was this would sort of like replace all your.dot object spreads and be able to have two objects and deeply compare them with the triple equals sign. [40:53]&lt;/p&gt;
&lt;p&gt;And apparently there was pushback from JavaScript engine, you know, developers who were concerned about the impacts this would have on like internal performance. So that proposal&#39;s dead. There is a new proposal called composites, which is sort of lighter weight, like it looks like you would construct objects use, like using like a new composite class that could then have like a composite equals comparison, possibly. So sort of the same direction, but like less deeply embedded in the language itself. So I know a lot of folks had a lot of interest in records and tuples, and we&#39;re hoping that one would really come to pass and it didn&#39;t happen. [41:36]&lt;/p&gt;
&lt;h2 id=&quot;react-compiler-rc&quot;&gt;&lt;a href=&quot;https://react.dev/blog/2025/04/21/react-compiler-rc&quot;&gt;React Compiler RC&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; React Compiler just came out, it was in beta and they&#39;ve now gone rc. so number one, they, you know, they think it&#39;s, it&#39;s pretty good. It&#39;s almost ready. Number two, they&#39;ve rearranged some of the lint rules previously. The React. The React compiler lint rules were in their own package, and I believe they&#39;re moving them into the existing rules of Hooks package. then they, they also announced experimental support for integrating the compiler with the SWC build tool, which is, you know, conveniently what&#39;s actually used by next. the compiler is primarily exposed as a babble plugin, even though the, all the implementation is not babble specific. they&#39;ve found a way to integrate it into SWC, even if it&#39;s maybe not the most optimized way and are continuing to work on, you know, different approaches for configuring it as well. [42:27]&lt;/p&gt;
&lt;p&gt;So it&#39;s getting fairly close. [42:29]&lt;/p&gt;
&lt;h2 id=&quot;just-use-vite-with-the-workers-runtime-vite-on-cloudflare&quot;&gt;&lt;a href=&quot;https://blog.cloudflare.com/introducing-the-cloudflare-vite-plugin/&quot;&gt;&quot;Just use Vite”… with the Workers runtime&lt;/a&gt; (Vite on Cloudflare)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Nice. Yeah, CloudFlare has announced better support for Vite with the Workers&#39; runtime while also throwing a little bit of shade, I think, at the React ecosystem by titling it quote, just use Vite dot dot dot, with the workers&#39; runtime. I don&#39;t know. It just feels like they&#39;re throwing a little bit of shade out there. [42:47]&lt;/p&gt;
&lt;p&gt;it looks pretty neat. I would like to play with this a little bit more, like yeah, they say &quot;we&#39;re announcing release of the CloudFlare v plugin as well as official support for the React Router v7.&quot; So that&#39;s cool. I am currently running a React router v7 app. [43:01]&lt;/p&gt;
&lt;p&gt;That would be interesting to connect to CloudFlare in that way. I guess like the big distinction here is that previously I. They say, &quot;the V dev server would always run your server code in node js, even if you were deploying the CloudFlare workers.&quot; in local development. Previously if you were using workers it would just run in node and that&#39;s not the same. [43:21]&lt;/p&gt;
&lt;p&gt;There are node APIs that are not available in the workers&#39; time. So now taking advantage of the environment, API that we talked about a couple of months ago they are able to run your local development workers in an identical environment to what they will have in production. So that&#39;s cool. [43:40]&lt;/p&gt;
&lt;p&gt;Definitely very neat. And I generally, I think workers are super cool and just like an interesting programming paradigm. Like talk about, you know, exploring new paradigms for executing code workers are the most exciting other than server components [43:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Last month we announced one of the major pieces of news was a vulnerability in Next&#39;s middleware implementation that could potentially have author related concerns. And there was a, you know, a major CVE vulnerability announced around that. This month it was react routers turn something was announced to have to do with some of the the path parsing definitions. [44:12]&lt;/p&gt;
&lt;p&gt;There are fixes out for both React Rider and remix. Please upgrade appropriately. [44:17]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, this one looks a lot less major than the next one, but yeah, they did get a CVE. [44:21]&lt;/p&gt;
&lt;h2 id=&quot;silk-library---native-like-swipeables-for-the-web&quot;&gt;&lt;a href=&quot;https://silkhq.co/&quot;&gt;Silk Library - native-like swipeables for the web&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; So next up, I just a library that I saw floating about in the, blue Sky and Twitterverse. Silk is a pretty cool library that takes in sort of these like native swipeable sheets that you&#39;re used to in the native world and brings it to the web in a React library. [44:37]&lt;/p&gt;
&lt;p&gt;So, you know, native feeling sidebars or bottom sheets or sort of like a, a, expandable bottom sheet for things like media players and stuff like that. All of that is quite difficult to do in the web world but very easy to do in the native world. And so they&#39;ve created a React library and it works delightfully, like, it&#39;s very hard to tell that it&#39;s not native, which is really, really cool. [44:58]&lt;/p&gt;
&lt;p&gt;The. I guess the, the caveat is that it&#39;s not open source for anything that&#39;s commercial. So any like hobby projects that you&#39;re using or open source projects that you&#39;re using, it&#39;s free. But you need to pay around 300 euros if you want to use it in any commercial projects [45:17]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; reminds me of like sublime text, sublime merge, like the, the shareware. Please, please pay us. [45:22]&lt;/p&gt;
&lt;h2 id=&quot;transitions--fstate&quot;&gt;&lt;a href=&quot;https://jordaneldredge.com/blog/transitions-f-of-state/&quot;&gt;{transitions} = f(state)&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Jordan Eldridge, who is possibly best known for having created the React reimplementation of the Winamp music player from the good old days. wrote a post a month or two ago about transitions, RA function of state. it&#39;s not talking about the new React transitions, API, but rather kinda that mindset of viewing the contents and the logic of your component as state machines. It&#39;s kinda short, but some good thoughts there that are useful to put into practice. [45:51]&lt;/p&gt;
&lt;h2 id=&quot;tailwind-4-bun-and-old-macs-a-supermarket-bag-and-a-truckload-of-fomo&quot;&gt;Tailwind 4, Bun, and old Macs: &lt;a href=&quot;https://blog.julik.nl/2025/03/a-little-adventure-in-modern-frontend&quot;&gt;A Supermarket Bag And a Truckload Of FOMO&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And then tossing out one more There was a very interesting article from someone who is trying to switch from using Tailwind three to Tailwind four. [45:58]&lt;/p&gt;
&lt;p&gt;I. But they were doing it on an old Mac, and as usual, I haven&#39;t used Tailwind, tailwind much myself, but apparently the latest version of Tailwind now uses a customized version of the BUN runtime to do its build steps. BUN is distributed as a native binary, and apparently the bun binary requires some of the latest CPU instructions. So it wouldn&#39;t even run on this Mac, even though it was a perfectly valid functional laptop. And so this person kind of got stuck, like, how can I even use Tailwind on this laptop when the latest version of tailwind&#39;s, compiler won&#39;t run on the laptop? And so it&#39;s well written, but also it&#39;s, just interesting to see how upgrades can cause problems sometimes. [46:47]&lt;/p&gt;
&lt;h2 id=&quot;introducing-firebase-studio&quot;&gt;&lt;a href=&quot;https://firebase.blog/posts/2025/04/introducing-firebase-studio/&quot;&gt;Introducing Firebase Studio&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; if you are somewhat following the world of Gen AI and the whirlwind of different tools and stuff that comes up every day some of them good, some of them not so good. There&#39;s been these sort of app builders that have been appearing, right? So things like V zero is the, is the big one that you&#39;ll probably be familiar with because of Sha Cian and, you know, the Versal ecosystem. [47:08]&lt;/p&gt;
&lt;p&gt;But you know, there&#39;s other ones like Repli lovable Dev Bolt and, and many, many more I&#39;m sure. It&#39;s a problem that a lot of people are trying to solve, which is, you know, how can we enable non-technical people to build out apps or maybe accelerate developers to actually build them out in some sort of agent tech model. [47:25]&lt;/p&gt;
&lt;p&gt;And so, Firebase. the classic sort of toolkit that was there for mobile and front-end devs to be able to create backends without being real backend developers and needing to worry about things like infrastructure and whatnot, has thrown its hat into the ring and created Firebase studio. [47:41]&lt;/p&gt;
&lt;p&gt;So the whole idea with Firebase Studio is that it&#39;s it&#39;s kind of giving you the full stack. So, you know, Firebase already existed to help you build backends without really building backends. And so they&#39;re thinking of building on top of that. They&#39;ve released this using sort of the Gemini models that Google has to allow you to also build the front end so you know, in one sort of prompt or set of prompts. [48:02]&lt;/p&gt;
&lt;p&gt;So you can generate a screen and then that goes all the way back and creates the sort of the backend for you as well in, in Firebase world, which is an interesting approach because they already have sort of a backend as a service. That people love and use quite often. And I, I still see it being used on a lot of sort of passion projects and even on some production applications. [48:22]&lt;/p&gt;
&lt;p&gt;One of the reasons I thought it was interesting to mention here was because if you look at some of the examples that they&#39;ve released they don&#39;t actually, they have a lot of react examples and not as many angular examples, albeit you can use it to generate angular apps as well. And that makes me think that they&#39;re sort of coming around to this fact that it&#39;s, you know, there&#39;s a lot more react and next js open source code on the internet, which means gen AI is probably better at generating it than something like Angular. [48:49]&lt;/p&gt;
&lt;p&gt;But that&#39;s just a, that&#39;s just a take that I have and it&#39;s not grounded on any reality. So take that with a grain of salt. But that&#39;s my thought process as to why they&#39;re, showing a lot of react examples. Of course, they&#39;re showing flutter and some angular as well. So it&#39;s not like it&#39;s just react, but it&#39;s definitely interesting. [49:05]&lt;/p&gt;
&lt;h2 id=&quot;gumroad-is-open-source&quot;&gt;&lt;a href=&quot;https://gumroad.gumroad.com/p/gumroad-is-now-open-source&quot;&gt;Gumroad is open source!&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; maybe further afield from React and such, but Gumroad, for their 14th anniversary of being a product in the world is going open source. So they are, I guess, open sourcing their entire product which is cool. I like that. I&#39;m confused about why, because like, you know, like fundamentally, usually people guard their source code if they&#39;re a like, functioning business that like makes revenue, you know, having the source code is a decent moat. [49:34]&lt;/p&gt;
&lt;p&gt;But yeah, it&#39;s cool. I, I like that. I like to see it. I love seeing real production code bases made open source because like, that&#39;s such a, that&#39;s such a common request that I see people asking for is like, okay, cool, I&#39;m learning all of this, but how do I know if it&#39;s good, if it&#39;s real? [49:50]&lt;/p&gt;
&lt;h2 id=&quot;automattic-laid-off-16-of-staff&quot;&gt;&lt;a href=&quot;https://automattic.com/2025/04/02/restructuring-announcement/&quot;&gt;Automattic laid off 16% of staff&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And my last link also a little further afield, kind of at the intersection of our first job market section and our lightning rounds. But checking in on some of the WordPress drama that we had covered a couple months back; Automattic. The company that maintains WordPress and led by Matt of much drama, the last six months is laying off 16% of its staff. It&#39;s a little bit, this like restructuring announcement from earlier this month is a little bit goofy to me to read because it, it&#39;s, you know, it&#39;s just like why we&#39;re making changes. We&#39;ve reached an important crossroads. While revenue continues to grow, we operate in a highly competitive market. It&#39;s like, well, yeah, and you also alienated your entire, like, product base and like open source ecosystem and customer base. [50:37]&lt;/p&gt;
&lt;p&gt;so just like seeing them talk about laying off one, one out of every six people who works there without talking about how, like, this was a total self own where the CEO just like burned every bridge he could find is like, alright buddy, good luck. [50:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; It&#39;s kind of poetic in some. [50:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; it would feel more like poetic justice if Matt was the one losing his job. [50:56]&lt;/p&gt;
&lt;p&gt;Not people unrelated, but Yes. Ugh. [50:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; But you know, I, I, I hope that other tech executives think twice and it becomes a learning lesson before they try to take open source products and monetize it in their favor when they have control over an ecosystem. I hope that people uh, think twice after this. [51:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, right. I feel like this is gonna be some kind of business case study somewhere. So that&#39;s, you know, hopefully [51:20]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I hope he also loses any bonuses that he was banking on getting this year [51:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; anyway, That&#39;s all we got for you this month. Thank you so much for joining us. We will be back on the last Wednesday of the month, next month here in the live stage or back in your podcast feed just as soon as we can. [51:34]&lt;/p&gt;
&lt;p&gt;We gather sources from this we in React Bites, dev React status, next JS Weekly, the React JS subreddit here in Reactiflux, and those direct from those publishing articles. If you see anything newsworthy, definitely let us know in the Tech News and reads channel here in Reactiflux or shoot me an email at &lt;a href=&quot;mailto:hello@reactiveflux.com&quot;&gt;hello@reactiveflux.com&lt;/a&gt;. [51:52]&lt;/p&gt;
&lt;p&gt;I read everything that comes in, so definitely send me something. This is a show that you value and would like to support. Best way to do so is by submitting a review. It would be cool if it was, you know, five stars, but whatever, any feedback is appreciated and definitely tell your friends and coworkers about it if you like. [52:09]&lt;/p&gt;
&lt;p&gt;Cool. Thank you so much. See you next month. [52:11]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; See you all next month.&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2025-04</link><guid isPermaLink="false">reactiflux-tmir-2025-04</guid><pubDate>Tue, 22 Apr 2025 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>TMiR 2025-03: Next had an auth vulnerability, TypeScript is porting to Golang</title><description>&lt;iframe src=&quot;https://creators.spotify.com/pod/show/reactiflux/embed/episodes/TMiR-2025-03-Next-had-an-auth-vulnerability--TypeScript-is-porting-to-Golang-e30tvf5&quot; height=&quot;102px&quot; width=&quot;400px&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#job-market-fred-data-layoffsfyi&quot;&gt;00:45&lt;/a&gt;]&lt;/code&gt; Job market: &lt;a href=&quot;https://fred.stlouisfed.org/series/IHLIDXUSTPSOFTDEVE&quot;&gt;FRED data&lt;/a&gt;, &lt;a href=&quot;https://layoffs.fyi/&quot;&gt;Layoffs.fyi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#conferences-react-javascript&quot;&gt;01:28&lt;/a&gt;]&lt;/code&gt; Conferences (&lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://confs.tech/javascript&quot;&gt;Javascript&lt;/a&gt;)
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#react-native-connection-april-3--4-2025-paris-france&quot;&gt;01:29&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactnativeconnection.io/&quot;&gt;React Native Connection&lt;/a&gt; April 3 + 4, 2025 Paris, France&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#react-miami-apr-17-18&quot;&gt;01:36&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.reactmiami.com/&quot;&gt;React Miami&lt;/a&gt;, Apr 17-18&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#cityjs-london-april-23-25-london-uk&quot;&gt;01:49&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://london.cityjsconf.org/&quot;&gt;CityJS London&lt;/a&gt; April 23-25 London, UK&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#appjs-conf-may-28-30-krakw-poland&quot;&gt;01:55&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://appjs.co/&quot;&gt;App.js Conf&lt;/a&gt; May 28-30 Kraków, Poland&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#cityjs-athens-may-27-31-athens-greece&quot;&gt;02:06&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://athens.cityjsconf.org/&quot;&gt;CityJS Athens&lt;/a&gt; May 27-31 Athens, Greece&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#squiggleconf-2025-cfp-closes-may-23&quot;&gt;02:13&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://2025.squiggleconf.com/cfp&quot;&gt;SquiggleConf 2025 CFP&lt;/a&gt; closes May 23&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#sponsored-by-infinite-red&quot;&gt;03:19&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://infinite.red/&quot;&gt;Sponsored by Infinite Red&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#new-releases&quot;&gt;04:24&lt;/a&gt;]&lt;/code&gt; New releases
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#typescript-58&quot;&gt;04:26&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-5-8/#the---erasablesyntaxonly-option&quot;&gt;TypeScript 5.8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#typescript-release-with-go&quot;&gt;05:00&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://devblogs.microsoft.com/typescript/typescript-native-port&quot;&gt;Typescript Release with Go&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#react-native-078---react-19-and-more&quot;&gt;06:26&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactnative.dev/blog/2025/02/19/react-native-0.78&quot;&gt;React Native 0.78 - React 19 and more&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#next-152&quot;&gt;06:44&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://nextjs.org/blog/next-15-2&quot;&gt;Next 15.2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#tanstack-form-10&quot;&gt;07:07&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://tanstack.com/blog/announcing-tanstack-form-v1&quot;&gt;Tanstack Form 1.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#zeego-v3&quot;&gt;07:54&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/nandorojo/zeego/releases/tag/v3.0.1&quot;&gt;Zeego v3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#material-ui-v7&quot;&gt;09:04&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://mui.com/blog/material-ui-v7-is-here/&quot;&gt;Material UI v7&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#slot-pattern-for-overriding-internals&quot;&gt;09:04&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://mui.com/material-ui/customization/overriding-component-structure/&quot;&gt;&quot;Slot pattern&quot; for overriding internals&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#parcel-v214&quot;&gt;10:45&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/devongovett/status/1902022923764076808&quot;&gt;Parcel v2.14&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#xstate-store-v3&quot;&gt;12:33&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://stately.ai/blog/2025-02-26-xstate-store-v3&quot;&gt;XState Store v3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#better-auth-v12&quot;&gt;13:11&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.better-auth.com/changelogs/1-2&quot;&gt;Better Auth v1.2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#main-content&quot;&gt;14:31&lt;/a&gt;]&lt;/code&gt; Main Content
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#lynx-released&quot;&gt;14:31&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://lynxjs.org/&quot;&gt;Lynx released&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#release-blog&quot;&gt;14:33&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://lynxjs.org/blog/lynx-unlock-native-for-more&quot;&gt;Release blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#security-vulneratibility-in-nextjs-cve-2025-29927001820-original-researcher-report&quot;&gt;18:20&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://nextjs.org/blog/cve-2025-29927&quot;&gt;Security vulneratibility&lt;/a&gt; in Next.js: &lt;a href=&quot;https://github.com/advisories/GHSA-f82v-jwr5-mffw&quot;&gt;CVE-2025-29927&lt;/a&gt;[18:20] &lt;a href=&quot;https://zhero-web-sec.github.io/research-and-things/nextjs-and-the-corrupt-middleware&quot;&gt;Original researcher report&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#cves-and-the-nvd-process&quot;&gt;20:36&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://nvd.nist.gov/general/cve-process&quot;&gt;CVEs and the NVD Process&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#postmortem-on-nextjs-middleware-bypass&quot;&gt;25:03&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://vercel.com/blog/postmortem-on-next-js-middleware-bypass&quot;&gt;Postmortem on Next.js Middleware bypass&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#nextjs-and-coordinated-disclosure&quot;&gt;27:00&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://sxlijin.github.io/2025-03-23-next-js-and-coordinated-disclosure&quot;&gt;Next.js and Coordinated Disclosure&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#you-should-know-this-before-choosing-nextjs&quot;&gt;30:17&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://eduardoboucas.com/posts/2025-03-25-you-should-know-this-before-choosing-nextjs/&quot;&gt;You should know this before choosing Next.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#react-native-078---react-19-and-more&quot;&gt;31:37&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactnative.dev/blog/2025/02/19/react-native-0.78&quot;&gt;React Native 0.78 - React 19 and more&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#react-native-core-contributor-summit-2024-recap&quot;&gt;34:27&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactnative.dev/blog/2025/02/03/react-native-core-contributor-summit-2024&quot;&gt;React Native Core Contributor Summit 2024 Recap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#typescript-compiler-golang-rewrite&quot;&gt;36:42&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://devblogs.microsoft.com/typescript/typescript-native-port/&quot;&gt;TypeScript compiler Golang rewrite??&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#github-discussion-and-on-reddit-too&quot;&gt;41:23&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/microsoft/typescript-go/discussions/411&quot;&gt;Github discussion&lt;/a&gt; and &lt;a href=&quot;https://www.reddit.com/r/javascript/comments/1j8s441/comment/mh7ms9n/&quot;&gt;on reddit too&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#-lightning-round-&quot;&gt;44:50&lt;/a&gt;]&lt;/code&gt; ⚡ Lightning round ⚡
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#jsc-being-extracted-from-rn-core&quot;&gt;44:52&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/react-native-community/javascriptcore&quot;&gt;JSC being extracted from RN Core&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#node-modulesdev-v040&quot;&gt;45:22&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/antfu.me/post/3ljubvzvwec2w&quot;&gt;node-modules.dev v0.4.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#fernando-rojo-joining-vercel-as-head-of-mobile&quot;&gt;46:00&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/rauchg/status/1896943726486032783&quot;&gt;Fernando Rojo joining Vercel as Head of Mobile&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#next-vs-tanstack-router-vite&quot;&gt;46:41&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.kylegill.com/essays/next-vs-tanstack/&quot;&gt;Next vs TanStack (Router + Vite)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#expos-ai-strategy&quot;&gt;47:46&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://expo.dev/ai/strategy&quot;&gt;Expo’s AI Strategy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#laravel-launched-starter-kits-including-react&quot;&gt;48:39&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://laravel.com/docs/12.x/starter-kits&quot;&gt;Laravel launched “starter kits” including React&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#react-native-enterprise-framework&quot;&gt;49:36&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://enterprise-framework.callstack.com/&quot;&gt;React Native Enterprise Framework&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-03#state-of-react-native-2024&quot;&gt;50:36&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://results.stateofreactnative.com/en-US/&quot;&gt;State of React Native 2024&lt;/a&gt; [00:00]&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Thank you everyone for joining us for the March edition of this month in React, where we recap and digest the recent developments in the ever evolving react and web ecosystem. We are coming to you live here in Reactiflux, the place for professional react developers. [00:14]&lt;/p&gt;
&lt;p&gt;And we are supported by infinite red, but more on them later. I am Carl. I&#39;m a staff product developer and freelance community leader here in Reactiflux, where I run community programs like these events and build tools to help keep the community operating. [00:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Hi, I&#39;m Mark. My day job is working at Replay io, where we&#39;re building a time traveling debugger for JavaScript, and also trying to find ways to make AI developers smarter by giving them access to replay runtime data and in my copious amounts of spare time. Outside of that, I do redux stuff. [00:45]&lt;/p&gt;
&lt;h2 id=&quot;job-market-fred-data-layoffsfyi&quot;&gt;Job market: &lt;a href=&quot;https://fred.stlouisfed.org/series/IHLIDXUSTPSOFTDEVE&quot;&gt;FRED data&lt;/a&gt;, &lt;a href=&quot;https://layoffs.fyi/&quot;&gt;Layoffs.fyi&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Some early quick hits. My general temperature check on the job market is that it&#39;s not good. It seems bad. Layoffs for March are higher than they were in every month, except last month since September, 2024. So that&#39;s five months, yeah, that&#39;s not great. It seems like hiring is down. Oh yeah. Look at that. The Fred economic data is a continued decline, so that&#39;s not ideal. I guess that is software development, job posting, so I wonder if maybe there&#39;s like some kind of title shift leading to that decline as well. [01:20]&lt;/p&gt;
&lt;p&gt;But yeah, job market not good. So yeah, if you are on the market, I hope you are. I don&#39;t know. Good luck. Sorry. [01:28]&lt;/p&gt;
&lt;h2 id=&quot;conferences-react-javascript&quot;&gt;Conferences (&lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://confs.tech/javascript&quot;&gt;Javascript&lt;/a&gt;)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Upcoming conferences. [01:29]&lt;/p&gt;
&lt;h2 id=&quot;react-native-connection-april-3--4-2025-paris-france&quot;&gt;&lt;a href=&quot;https://reactnativeconnection.io/&quot;&gt;React Native Connection&lt;/a&gt; April 3 + 4, 2025 Paris, France&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; There is React Native Connection April 3rd and fourth in Paris. So if you&#39;re in France, definitely check that out. [01:36]&lt;/p&gt;
&lt;h2 id=&quot;react-miami-apr-17-18&quot;&gt;&lt;a href=&quot;https://www.reactmiami.com/&quot;&gt;React Miami&lt;/a&gt;, Apr 17-18&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; React Miami. A beloved conference that I have attended several times but will not be at this year. [01:41]&lt;/p&gt;
&lt;p&gt;Is April 17th and 18th in Miami, Florida. [01:45]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I&#39;ll be hanging out there. [01:47]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; now go see Mark. He&#39;ll say, Hey . [01:49]&lt;/p&gt;
&lt;h2 id=&quot;cityjs-london-april-23-25-london-uk&quot;&gt;&lt;a href=&quot;https://london.cityjsconf.org/&quot;&gt;CityJS London&lt;/a&gt; April 23-25 London, UK&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; There&#39;s City Js London on April 23rd through 25th in London, the uk. [01:55]&lt;/p&gt;
&lt;h2 id=&quot;appjs-conf-may-28-30-kraków-poland&quot;&gt;&lt;a href=&quot;https://appjs.co/&quot;&gt;App.js Conf&lt;/a&gt; May 28-30 Kraków, Poland&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; We&#39;ve also got App JS Conf May 28th through 30th in Cacao Poland. I&#39;ve heard good things. I looked at going, but it&#39;s just can&#39;t swing it. Too big of a trip. [02:06]&lt;/p&gt;
&lt;h2 id=&quot;cityjs-athens-may-27-31-athens-greece&quot;&gt;&lt;a href=&quot;https://athens.cityjsconf.org/&quot;&gt;CityJS Athens&lt;/a&gt; May 27-31 Athens, Greece&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; CDJS Athens is also gonna be May 27th through 31st in Athens, Greece. [02:13]&lt;/p&gt;
&lt;h2 id=&quot;squiggleconf-2025-cfp-closes-may-23&quot;&gt;&lt;a href=&quot;https://2025.squiggleconf.com/cfp&quot;&gt;SquiggleConf 2025 CFP&lt;/a&gt; closes May 23&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And I&#39;m helping organize squiggle conf, which is coming up much later this year. But their CFP is open, so if you are interested in speaking go ahead. Submit. It&#39;s gonna be open until May 23rd. [02:26]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I, I got to attend Squiggle Con last year. I, I also know the organizers, Dmitri and Josh, they&#39;re wonderful people. They did a fantastic job for a first year conference last year. Squiggle Conf was great. You should totally try to go. It&#39;s in, it&#39;s in Boston. [02:40]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; It is in Boston. Yeah. Dmitri, his most recent accomplishment that made pretty big waves is he got doom running in TypeScript types, which is bananas, and took like a year and a half and he had to learn all sorts of like compiler and like processor stuff. Yeah. Unbelievable. [02:56]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; we should totally toss a link to that in here on general principal. [02:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, we probably should. I don&#39;t have one handy. But yeah, super cool. Super impressive. Unbelievable maniacal in fact. But yeah. [03:06]&lt;/p&gt;
&lt;p&gt;Yeah, our sponsor you know, bear with us through all of our setup stuff before we get to the real news. We, there&#39;s so much news. We&#39;ve got like a pretty major security vulnerability in next. [03:17]&lt;/p&gt;
&lt;p&gt;There&#39;s like a couple of new releases to talk about, but yeah. [03:19]&lt;/p&gt;
&lt;h2 id=&quot;sponsored-by-infinite-red&quot;&gt;&lt;a href=&quot;https://infinite.red/&quot;&gt;Sponsored by Infinite Red&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; We are sponsored by Infinite Red. They are an expert react native consultancy that&#39;s been around since 2015. And I actually just saw a post that they put up on LinkedIn where in 2015 they hired 21 people and 14 of those 21 are still there, like 10 year tenure for two thirds of the organization. Like that&#39;s impressive. [03:38]&lt;/p&gt;
&lt;p&gt;I&#39;ve been laid off and fired a lot and I appreciate a company that is willing to get let its people stick around. Yeah. They&#39;re currently our only sponsor, in part because so few companies do as much as they do for the ecosystem. They host the largest React native podcast. They host the largest US-based React Native conference. Yeah, lots, tons of React native stuff. They very meaningful ecosystem investment. [04:04]&lt;/p&gt;
&lt;p&gt;They only do React native and have built over 75 apps for companies from startups to the biggest in the world. And they will work with your team in order to help you develop expertise, not just get code running and dip out. [04:16]&lt;/p&gt;
&lt;p&gt;So, yeah. if your company is looking to start a new React native project, definitely check them out. They are at Infinite Red, [04:24]&lt;/p&gt;
&lt;h2 id=&quot;new-releases&quot;&gt;New releases&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; into some new releases. [04:26]&lt;/p&gt;
&lt;h2 id=&quot;typescript-58&quot;&gt;&lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-5-8/#the---erasablesyntaxonly-option&quot;&gt;TypeScript 5.8&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; last month we mentioned the TS 5.8 beta, and so now it&#39;s come out as final. The biggest thing here is probably the erasable syntax only flag, which ensures that you&#39;re only using TS types that can just be stripped away without having to go through with transation step useful for use with node, for example. [04:45]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yep, super great. I&#39;m already using something like that in code that I run. It&#39;s just nice. I don&#39;t know it&#39;s nice to not do like a full compilation step. It just lets me cut an entire thing an an entire build tool out of my, outta my local development, which I like. [05:00]&lt;/p&gt;
&lt;h2 id=&quot;typescript-release-with-go&quot;&gt;&lt;a href=&quot;https://devblogs.microsoft.com/typescript/typescript-native-port&quot;&gt;Typescript Release with Go&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Although on that note, and we&#39;ll talk about this more later the TS team has announced that they have finally rewritten the TypeScript compiler itself in another language go instead of TypeScript still in an early preview stage, but they&#39;re seeing 10 x speed up and compilation time. And so the trend of converting JS build tools into other languages continues, and we&#39;ll, we&#39;ll talk about this more in depth later. [05:26]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Probably, we&#39;ll talk about it later and we&#39;ll then probably continue talking about it later and later and later, because they have said that this is really gonna ship in like TypeScript seven, which by current release cadence [05:40]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Is like two years from now. [05:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. [05:42]&lt;/p&gt;
&lt;p&gt;two and a half, three years. So yeah, we, this is gonna be a topic for a very long time. [05:47]&lt;/p&gt;
&lt;p&gt;But yeah, they are continuing the trend of rewriting build tools in native and they are disrupting the trend of rewriting JavaScript build tools. rest. Yep. [05:55]&lt;/p&gt;
&lt;p&gt;But yeah apparently they chose Go not Rust because the like general ethos, you know, the, the way you write code in Go is more similar than Rust. So they can do like more similar patterns in the code they&#39;re offering. So it&#39;s more of a one-to-one rewrite rather than like different enough code that it would have different semantics and different, you know, challenges there. [06:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And we have a mo. [06:20]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Ammo welcome. That&#39;s okay. We&#39;re gonna throw you immediately into the hot seat with React Native 78. [06:26]&lt;/p&gt;
&lt;h2 id=&quot;react-native-078---react-19-and-more&quot;&gt;&lt;a href=&quot;https://reactnative.dev/blog/2025/02/19/react-native-0.78&quot;&gt;React Native 0.78 - React 19 and more&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; So React native 78 is out. Bunch of small things, but we&#39;re getting smaller releases and so this one is mainly focusing on React 19 support. So you can get all the React 19 features that you know and love on the web now working on Native World. And we finally get our logs back in Metro. [06:44]&lt;/p&gt;
&lt;h2 id=&quot;next-152&quot;&gt;&lt;a href=&quot;https://nextjs.org/blog/next-15-2&quot;&gt;Next 15.2&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool. Yeah, There&#39;s next. 15.2, which, you know, we&#39;re gonna talk a lot about next and more later. But um, this looks like not too crazy. A release they redesigned error ui, more streaming metadata, performance improvements, yada yada. Some experimental features as well. [07:02]&lt;/p&gt;
&lt;p&gt;And ooh, experimental node js middleware. A lot more on middleware later. [07:07]&lt;/p&gt;
&lt;h2 id=&quot;tanstack-form-10&quot;&gt;&lt;a href=&quot;https://tanstack.com/blog/announcing-tanstack-form-v1&quot;&gt;Tanstack Form 1.0&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Tan Stack Form is a brand new form library in the vein of libraries like formic and React Hook form. This one I, I believe, was started by Tanner Winsley himself. The current maintainer is Corbin Crutchley who&#39;d worked on a previous library, I think, called House Form, I believe. But like some of the big selling points are things like type safety, you know, being able to infer that, you know, like when you pass in the name of a field as an argument that all the other callbacks and everything else know exactly what the, you know, the proper value type for that field is. [07:41]&lt;/p&gt;
&lt;p&gt;Lotted, different validation options a lot. And working with SSR and other scenarios haven&#39;t used it, but it looks fairly comprehensive and worth taking a look at as a, you know, form solution for your apps. [07:54]&lt;/p&gt;
&lt;h2 id=&quot;zeego-v3&quot;&gt;&lt;a href=&quot;https://github.com/nandorojo/zeego/releases/tag/v3.0.1&quot;&gt;Zeego v3&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Yeah, so Zeego is a library that I quite appreciate. So it&#39;s made by Fernando Roho, who very recently actually joined Vercel as their head of mobile, which is going to, which tells us a lot about the direction that Vercel is going in terms of some of their mobile offerings. But Zeego released a new sort of major release. [08:13]&lt;/p&gt;
&lt;p&gt;And so the, the big points with this is and just just for a little bit of context, we have talked about Zeego before in the podcast, but just for anyone who might have missed it, Zeego is a library that allows you to create context menus that are native to each platform and it&#39;s universal. So what that means is that it will let you create context menus on the web and it defers that to something like rad. [08:34]&lt;/p&gt;
&lt;p&gt;Then on native platforms like iOS and Android, you actually get the native context menus that you get on the platform. So those are native elements that are rendered. And it&#39;s, it&#39;s a really good example of using the same API but getting very different looks and feels that are native to each platform. [08:49]&lt;/p&gt;
&lt;p&gt;So it&#39;s, it&#39;s, it&#39;s a, it&#39;s a cool library. It&#39;s a very nice like utility library that you might need to use when you wanna get some native functionality inside of your mobile app. But the major things with this is just supporting the new architecture and React native and working with some of the new versions of Expo. [09:04]&lt;/p&gt;
&lt;h2 id=&quot;material-ui-v7&quot;&gt;&lt;a href=&quot;https://mui.com/blog/material-ui-v7-is-here/&quot;&gt;Material UI v7&lt;/a&gt;&lt;/h2&gt;
&lt;h2 id=&quot;slot-pattern-for-overriding-internals&quot;&gt;&lt;a href=&quot;https://mui.com/material-ui/customization/overriding-component-structure/&quot;&gt;&quot;Slot pattern&quot; for overriding internals&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Material UI has version seven out. Main thing that caught my eye here is they have a slot pattern for overriding the internals of their different, you know, components. Customizing component library components is like the number one reason why I have not extensively used component libraries in my career. [09:25]&lt;/p&gt;
&lt;p&gt;I just, like every company I&#39;ve worked for, they have wanted a greater level of customization than is achievable just by doing things with the component library. I&#39;ve been very interested in Chad CN for that reason, because it&#39;s just like, it&#39;s a co generator, not a library. [09:40]&lt;/p&gt;
&lt;p&gt;You use it to make components and then you customize those components to your needs. But this looks like a really interesting alternative pattern for it. Basically, it looks like they have a pair of props slots and slot props where a component will specify different slots that you can override. [09:59]&lt;/p&gt;
&lt;p&gt;So you can give it different components to put into places where, you know, like in, in a tab or a dropdown or whatever. That&#39;s really interesting. That seems good. Generally, it&#39;s nice that they are like trying to standardize it a little bit and like have a specification. I appreciate that and it&#39;s, yeah. [10:20]&lt;/p&gt;
&lt;p&gt;I&#39;ve seen a lot of libraries do things like add in. Sort of slots. They don&#39;t call it that, but like they let you pass in a component that it will use in place of something else or whatever. But I&#39;ve always seen that as very like ad hoc and like there&#39;s no standardization or structure around it. [10:37]&lt;/p&gt;
&lt;p&gt;So seeing this as a pattern is interesting to me. It&#39;s definitely, definitely interesting. Yeah. That&#39;s all I gotta say. [10:45]&lt;/p&gt;
&lt;h2 id=&quot;parcel-v214&quot;&gt;&lt;a href=&quot;https://x.com/devongovett/status/1902022923764076808&quot;&gt;Parcel v2.14&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; The Parcel Bundler released version two point 14, and this is kind of a big deal because it actually adds built-in React server component support. I was actually just looking at the download stats. So parcel has been around for several years. The primary author, Devin Govet, also works on React Aria and React Spectrum and a couple other component libraries. [11:05]&lt;/p&gt;
&lt;p&gt;He&#39;s put a ton of effort into building it, but it&#39;s, it&#39;s very much an also ran in terms of actual usage. Like last month, Webpac had 116 million downloads. V had 85 million downloads. Parcel only had 800,000, so non-zero, but obviously not like, you know, anywhere near the level of the other tools. [11:25]&lt;/p&gt;
&lt;p&gt;That said it is a, an actual tool in the space and so it is interesting to see what&#39;s more of a bundler rather than a framework. Adding React server component support and looking at the examples the usage pattern here looks to be a whole lot simpler than what Next has and, and has put together, you know, next is the, the defacto standard implementation of React Server components at this point. [11:52]&lt;/p&gt;
&lt;p&gt;And so I think a lot of us have tended to assume that the way server components work in NEXT is the way that they work, whereas it, it&#39;s really more like React exposes the primitives and it&#39;s up to the framework or bundler to decide how they get used. So in this case, apparently parcel actually supports using server components, like just within a, like a, like a basic express request handler, which actually looks a lot simpler conceptually. [12:20]&lt;/p&gt;
&lt;p&gt;So parcel may not have a lot of actual real world usage, but this looks like a, a, a nice example of what can be done with server component support. [12:32]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; That&#39;s cool. Oh, nice. [12:33]&lt;/p&gt;
&lt;h2 id=&quot;xstate-store-v3&quot;&gt;&lt;a href=&quot;https://stately.ai/blog/2025-02-26-xstate-store-v3&quot;&gt;XState Store v3&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Meanwhile, the, the X State and people, AKA, mostly David Khourshid has released X State Store. Version three. X State Store is meant to be a, a much wider weight state management tool. Kind of more along the lines of a, of a zoo stand, but with a little bit more of a, a state machine twist on it. So there, there&#39;s some updates to make the usage and the developer experience a little nicer. [13:00]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Love X State. I don&#39;t know, I&#39;ve just always had an affinity for it. They had a, they&#39;ve always had a great state machine design tool and I found that useful even while not using the library. So I dunno, I just like them. [13:11]&lt;/p&gt;
&lt;h2 id=&quot;better-auth-v12&quot;&gt;&lt;a href=&quot;https://www.better-auth.com/changelogs/1-2&quot;&gt;Better Auth v1.2&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; There&#39;s Better Auth version 1.2, which is interesting and cool. I have been following Better Off for a while. I haven&#39;t actually used it myself yet. But they&#39;ve been, [13:21]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Theme of this podcast? [13:23]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; yeah, a little bit. There&#39;s just so many things. It&#39;s hard to stay, it&#39;s hard to, staying on top of it is hard to know. Actually using all of it as well is uh, impossible. [13:31]&lt;/p&gt;
&lt;p&gt;Yeah, I, I, I like the general vibe of it. [13:34]&lt;/p&gt;
&lt;p&gt;I have been let down by literally every auth tool that I&#39;ve ever used. I have written my own auth far too many times because I&#39;m so irritated with trying to use all of the authentications libraries. And yeah, this seems good. I&#39;m just gonna read what bytes.dev said, &#39;cause they summed it up very well. [13:51]&lt;/p&gt;
&lt;p&gt;&quot;It&#39;s got Stripe subscriptions, recapture API, keys teams and sub orgs and a new init CLI, and they rewrote the core library to fix TypeScript editor lags. So like, it just seems really good. They&#39;ve really been on a tear with shipping improvements. Like I, I subscribed to GitHub notifications for them and I slightly regret it because I swear to God I got like five a week with just like beta releases and new minor releases. [14:18]&lt;/p&gt;
&lt;p&gt;So it&#39;s, it&#39;s, I&#39;m impressed at their pace of development. They seem to be doing a really good job of shipping pretty major upgrades as they go. So, if you&#39;re doing a greenfield project that needs authentication, consider it. [14:31]&lt;/p&gt;
&lt;h2 id=&quot;main-content&quot;&gt;Main Content&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Mo can you tell us about Lynx? [14:33]&lt;/p&gt;
&lt;h2 id=&quot;lynx-released&quot;&gt;&lt;a href=&quot;https://lynxjs.org/&quot;&gt;Lynx released&lt;/a&gt;&lt;/h2&gt;
&lt;h2 id=&quot;release-blog&quot;&gt;&lt;a href=&quot;https://lynxjs.org/blog/lynx-unlock-native-for-more&quot;&gt;Release blog&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; SO this is, this is not specifically React native related, but it&#39;s React native adjacent and definitely react related. So, you may have heard that bite Dance, the team behind TikTok released links, and links is effectively sort of a competitor to React Native. They&#39;ve created another way that to build native applications using JavaScript tooling and using React as the way that you define UIs, which is really cool. [15:01]&lt;/p&gt;
&lt;p&gt;And so, the, the real sort of reason why why this is exciting is because this is actually what&#39;s powering TikTok behind the scenes. So this is what they&#39;re using internally for TikTok. And you know, TikTok is as large scale of an application as comes. And so it&#39;s actually quite a. Quite a big deal to have something like this release and it brings healthy competition to the space of sort of cross-platform native applications where it&#39;s been traditionally just rack native and flutter. [15:27]&lt;/p&gt;
&lt;p&gt;So I think there&#39;s some really interesting stuff here. The TLDR is that they have a sort of multi-threaded a multi-threaded architecture in place. And that&#39;s one of the things that they really, really empathize, em, emphasize on. And so the whole idea is that this architecture and this multi-threaded runtime allows you to take priority on sort of synchronous UI tasks that are high priority so that the app feels snappy and responsive. [15:52]&lt;/p&gt;
&lt;p&gt;And things like event handlings are done sort of with a high priority. This is getting quite similar to the space of sort of what the React native team is trying to achieve with the new architecture, which was trying to. Targets similar benefits. And so they, they give a lot of examples on things like instant first frame rendering, which is one of the metrics that they&#39;re trying to target with this architecture to make sure that the first time you open up your app, you get as quick to instant as possible launches. [16:18]&lt;/p&gt;
&lt;p&gt;And sort of multi-threaded scripts for when there&#39;s a you know, important scrolling event or something that requires really good responsiveness. Having those sort of concepts embedded into the architecture, which is really, really quite cool. And one of the nice things about this is that their JavaScript layer functionality is not actually react specific. [16:36]&lt;/p&gt;
&lt;p&gt;So in theory, down the line, albeit React is really the only main way that you can define UIs right now down the line, they may create other versions of it. So currently there&#39;s links, which is the core, and then there&#39;s React links as well, which is the sort of the React library that you can use to define UIs for links currently. [16:54]&lt;/p&gt;
&lt;p&gt;There could be in the future initiatives where it can allow you to use other UI libraries to do this, which can be really quite cool. [16:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I think I saw even at least a mention or like someone at least asking like, when can you use Vue with this? And it sounded like that was a thing that they were trying to work on. [17:07]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Interesting. [17:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; but you know, that in itself is quite powerful because, you know, one of the, you know, there is nothing like rack native or there wasn&#39;t anything like rack native where you could use web-based UI libraries to define a mobile app. And so this actually opens up the door for people to use view to make actual native apps rather than sort of PWAs or hybrid web view based apps that are not gonna be good experiences. [17:31]&lt;/p&gt;
&lt;p&gt;So, quite exciting stuff. [17:33]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; That is really interesting. And it, it&#39;s, it&#39;s funny that I feel like over the last year we&#39;ve talked about a couple of projects that we&#39;re exploring different ways of authoring react and getting some form of mobile app out of it. And I&#39;m surprised that there&#39;s still like new approaches. This, we&#39;ve seen so many with like, I don&#39;t know, react native web and I&#39;m forgetting the names of all of them, but I swear to God [17:55]&lt;/p&gt;
&lt;p&gt;Four of React strict dom. [17:56]&lt;/p&gt;
&lt;p&gt;Yep. So, okay. Interesting. That sounds really cool. And I like that there&#39;s a way, I don&#39;t know, just like it, I love the web. I secretly wish that Web os from like 2012 had been a viable option. So it&#39;s just, I&#39;m, I&#39;m, I love seeing the web expand more meaningfully into the native arena. That&#39;s really cool. [18:17]&lt;/p&gt;
&lt;p&gt;Cool. Alright. Into the headline. [18:20]&lt;/p&gt;
&lt;h2 id=&quot;security-vulneratibility-in-nextjs-cve-2025-299271820-original-researcher-report&quot;&gt;&lt;a href=&quot;https://nextjs.org/blog/cve-2025-29927&quot;&gt;Security vulneratibility&lt;/a&gt; in Next.js: &lt;a href=&quot;https://github.com/advisories/GHSA-f82v-jwr5-mffw&quot;&gt;CVE-2025-29927&lt;/a&gt;[18:20] &lt;a href=&quot;https://zhero-web-sec.github.io/research-and-things/nextjs-and-the-corrupt-middleware&quot;&gt;Original researcher report&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; All right. The biggest news story of the month occurred just a few days ago, and that was that there was a major security vulnerability with next&#39;s middleware implementation that ultimately allowed any external attacker to send a fairly simple set of headers and force next to skip the middleware. [18:46]&lt;/p&gt;
&lt;p&gt;And if you, your app used the middleware to provide authentication to. You could actually just bypass the entire authentication process. So the assumption here is if you&#39;re using next to do middleware, and then there&#39;s some other caveats around where your app&#39;s actually hosted. But ultimately this was rated as an extremely high concern security vulnerability. [19:11]&lt;/p&gt;
&lt;p&gt;So Next has released actual, actual fixes across a couple different major versions to try to patch up the issue. There&#39;s been. You know, breakdowns of, you know, what the actual bug is and why this is a concern and how it works. And then there&#39;s been a lot of fallout from this issue in terms of how did Vercel handle communicating the vulnerability to the general public as well as other partners. [19:38]&lt;/p&gt;
&lt;p&gt;And follow on questions like, you know, how does Vercel and next actually kind of handle their development processes? associated pieces to go through with this. So let&#39;s, let&#39;s try and break some of this stuff down. [19:49]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Let&#39;s see what we can do. Yeah. So you, you mentioned how many versions that they shipped. So they, in, in their, you know, blog post, it&#39;s very. I don&#39;t know, no details, no extra explaining what happened. They explaining the advisory, I guess they, they then put out a, like timeline of the thing and gave a lot more details. [20:09]&lt;/p&gt;
&lt;p&gt;But so they released patches for version 12, 13, 14, and 15, which means that this has been a vulnerability since at least 2021, which is wild [20:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; It sounds sounds like Al, almost exactly, almost since like the, the middleware feature probably came into existence. [20:26]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Which I guess that makes sense. Like you add a new feature and it has vulnerabilities and until somebody notices it, you don&#39;t fix it. But wow, four years for an auth bypass based on a header. [20:36]&lt;/p&gt;
&lt;h2 id=&quot;cves-and-the-nvd-process&quot;&gt;&lt;a href=&quot;https://nvd.nist.gov/general/cve-process&quot;&gt;CVEs and the NVD Process&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; So I want to lead in a little bit breaking down like the CVE process, which I am not sure. I feel like everyone, I feel like a lot of people will have a general, I. [20:47]&lt;/p&gt;
&lt;p&gt;Awareness of what, of what A CVE is. I didn&#39;t quite realize that it was like an NIST national Institute of Standards and Technology Program. Like this is a government program established in 1999 to track, [21:02]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; known security bugs. [21:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right. So like, yeah, and it has a, there&#39;s a calculator that lets you figure out the severity of a vulnerability. [21:12]&lt;/p&gt;
&lt;p&gt;And it has criteria like the attack vector, the attack complexity, the requirements of the attack privileges required, user interaction are required, and then the impact of the vulnerability. It&#39;s confidentiality, integrity, availability. It&#39;s basically like how do you do the attack and if you execute the attack, what are the impact, what are the effects of it? [21:35]&lt;/p&gt;
&lt;p&gt;So this. You know, the scoring criteria for this vulnerability is it&#39;s a network attack vector, which means you don&#39;t need to be physically present which is bad if you can do it over the network that&#39;s like a high level of access. The attack complexity is low, the privileges required are none. [21:54]&lt;/p&gt;
&lt;p&gt;The user interaction required is none. And the impacts confidentiality are high, integrity is high but no impact on availability. So you can, you know, get into confidential spaces and, you know, violate the integrity of the data. [22:09]&lt;/p&gt;
&lt;p&gt;You so it, it&#39;s, it&#39;s basically an attack you can do from anywhere in the world that&#39;s very simple. That gets you a high level of access, which is why this is a, you know, critical severity bug. That&#39;s so bad. Oh my God. Just for a, a bug of that severity to exist for four years before anyone noticed is oof rough. [22:30]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; The general concept here is that, you know, middleware can be chained together. But there&#39;s, there&#39;s internal implementation details around like possibly needing to rerun middleware or possibly needing to skip middleware. [22:43]&lt;/p&gt;
&lt;p&gt;And so at some point Versel opted to implement skipping, running middleware by looking for a specific header that they could attach to the request. And the intent was that this would only be an internal thing, that the header would only ever get added by next itself in response to, some piece of code saying, Hey, we&#39;re, we&#39;re good. [23:09]&lt;/p&gt;
&lt;p&gt;We can just keep going. Or I guess maybe to, to, to get rid of loops in the middleware chain. And someone figured out that. You know, wait a minute, I could, I could attach this kind of a header as part of an external request. And the piece of information that next was looking for the, in the header is just a name of the middleware itself, which is pretty much always based on the file you would&#39;ve added in your next project, which is apparently in some cases like just the literal word middleware. [23:44]&lt;/p&gt;
&lt;p&gt;And so you could end up like having a header value of middleware, colon, middleware, colon, middleware, colon or something like that. the end result is that someone could send a request to a next base server, add this header to their original external request, and end up convincing next, skip all the middleware and never run them. [24:07]&lt;/p&gt;
&lt;p&gt;And. And so if some of the were trained to do authentication, then the request would end up just skipping that entire process. I believe Vercel said that the way they have their systems architecture set up it was not really possible to have that be a problem on if your app was hosted on Vercel infrastructure. But then there was questions of, okay, well what if you&#39;re running on Netlify or CloudFlare or using one of the Open Next adapters? So the bug exists in next, and then there&#39;s the question of, well, how is next being hosted and what requests could actually get through? [24:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right, so. I think what I saw is that they&#39;re saying if you hosted on Vercel, you were never vulnerable to this because of how we set up our system, which is great. I guess this. Certainly fuel on the fire of like Vercel is privileging itself in the ecosystem. [25:03]&lt;/p&gt;
&lt;h2 id=&quot;postmortem-on-nextjs-middleware-bypass&quot;&gt;&lt;a href=&quot;https://vercel.com/blog/postmortem-on-next-js-middleware-bypass&quot;&gt;Postmortem on Next.js Middleware bypass&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And I guess building on that a bit, so they put out, you know, their postmortem breaking it down and breaking down the response. [25:11]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Which, which came out about like, like two to three days after the actual announcements. [25:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right. And it looks like, you know, in the timeline they talk about like receiving emails and like multiple reports, which delayed the triaging. But like, you know, the core of the timeline, I. [25:27]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; A month or something. [25:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; it looks like somebody reported this at the end of February on the 27th, and then it didn&#39;t get triaged until two weeks later, which seems not good. [25:38]&lt;/p&gt;
&lt;p&gt;I don&#39;t know. I, I, I have done triaging of security vulnerabilities. I was the point person for that at my last job for like two years, a year and a half, something like that. And there&#39;s a lot of noise. There&#39;s a lot of garbage that comes in. There&#39;s a lot of, you know, quote unquote security researchers who are just like running automated tools like nmp. [25:58]&lt;/p&gt;
&lt;p&gt;You know, it&#39;s like, you know, you are an NPM audit and it&#39;s like 63 critical violations and like, none of them actually matter at all. So like, there is a lot of noise and I can understand how triaging might get delayed, but you know, like even just reading the headline, you know, if somebody submits like authorization bypass, like that would wake me up. [26:17]&lt;/p&gt;
&lt;p&gt;So, I don&#39;t know, just waiting for two week lag time on that is not ideal. [26:22]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; One, I mean, one, one bit of that is, it sounds like the initial submission just said, this looks like it&#39;s a problem in next, in, next next 12, which was out of date. And so like it sounded like someone may have glanced at it and said, oh, we don&#39;t even support next 12 anymore. It&#39;s not a big deal. [26:38]&lt;/p&gt;
&lt;p&gt;And then the researcher came back and said, actually, it&#39;s a problem in like every version of next. And that finally got someone to wake up. [26:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; for sure right? So, like, okay. Devil&#39;s in the details on this as always, but yeah, it&#39;s not a great situation. And what&#39;s more is that, it sounds like they did no coordinated disclosure. [27:00]&lt;/p&gt;
&lt;h2 id=&quot;nextjs-and-coordinated-disclosure&quot;&gt;&lt;a href=&quot;https://sxlijin.github.io/2025-03-23-next-js-and-coordinated-disclosure&quot;&gt;Next.js and Coordinated Disclosure&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; This person talks about some other CVE environments or disclosures that they&#39;ve either, you know, been a part of seen and for instance, you know, like heart bleed, some of those other like large scale mass impact vulnerabilities, like this is not obviously of that scale, but it is large. [27:21]&lt;/p&gt;
&lt;p&gt;So the, the, those ones like heart bleed, they had like multiple months of coordinated disclosure where behind the scenes in secret. You know, once these vulnerabilities are known, the companies are coordinating with each other to say like, are you vulnerable? Yes. Here&#39;s how we fix that. Are you? Yes. Okay, let&#39;s fix that too. [27:40]&lt;/p&gt;
&lt;p&gt;And. What they&#39;re claiming is that Net or Vercel did nothing like that. They received a report, they validated it, they pushed their own fixes, and then they went public with it and basically caught other platforms like Netlify, cloud Flare, et cetera, with their pants down. And it was just like, oh shit. [28:02]&lt;/p&gt;
&lt;p&gt;You what? What? We&#39;re vulnerable. And so now everyone&#39;s scrambling. And it&#39;s been publicly, it is, it&#39;s been publicized. So like now many websites are vulnerable, it&#39;s public knowledge and the a patch isn&#39;t ready. So like, that&#39;s, that&#39;s just not nice. it&#39;s not collaborative at all for sure. [28:22]&lt;/p&gt;
&lt;p&gt;So it, it just means that like, it became a race to fix this before it got exploited in the wild. That&#39;s definitely not ideal that like that&#39;s, I guess I can understand how a company might say like, this is a problem with our product. We are fixing it. We have fixed it. It is time to go public. I guess I can understand that thought process, but man, as far as like being a participant in a broader ecosystem, that&#39;s a big blind spot. [28:49]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; yeah. The, that, that link about coordinated disclosure is really good. It, it breaks down what did happen at what times, and then talks about like what are, what are the proper practices for handling a security disclosure? What did, like, what actually happened instead? How did this, like, how did other people end up finding out about it? [29:09]&lt;/p&gt;
&lt;p&gt;And then like, what, what would have been a proper sequence of results? Instead, I. So like ultimately, you know, things have sort of been handled here, but really, really badly along the way. [29:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, and I guess one more detail that I&#39;ll highlight as part of like, this response was not handled well and maybe went through the wrong channels, the wrong internal channels. when they announced the vulnerability, I. One of their claims as part of it, which is accurate as best I can tell, is that you as our customers of Vercel, were not vulnerable because you were protected by our firewall. [29:47]&lt;/p&gt;
&lt;p&gt;So it&#39;s like, it feels like it went through the marketing department rather than like, I don&#39;t know, engineering, security, whatever, where they were making an honest claim about a differentiating factor. But like part of the differentiating is that they were not collaborating with anyone else to help protect end users. [30:08]&lt;/p&gt;
&lt;p&gt;So it&#39;s like, yeah, sure that&#39;s true, but it&#39;s also kind of mean that you did that. So, I don&#39;t know. It&#39;s not ideal. Not great. [30:17]&lt;/p&gt;
&lt;h2 id=&quot;you-should-know-this-before-choosing-nextjs&quot;&gt;&lt;a href=&quot;https://eduardoboucas.com/posts/2025-03-25-you-should-know-this-before-choosing-nextjs/&quot;&gt;You should know this before choosing Next.js&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And then one other good blog post related to this somebody who works at Netlify and has spent a lot of their engineering time trained to reverse engineer some of the somewhat more proprietary features of Next to make sure that they work on Netlify. Wrote a very long blog post that. Digs into both, you know, some of the, some of the vulnerability aspects, but then also just general concerns about the way next is developed and deployed and, you know, does not necessarily work with the ecosystem as well as it ought to. [30:54]&lt;/p&gt;
&lt;p&gt;Describing a lot, a lot of the concerns, you know, that there, that there aren&#39;t, official adapters to run on other platforms that it doesn&#39;t have serverless support, that there&#39;s certain code paths that really only work on versal. And then also kind of talking about, you know, some of the security aspects. [31:11]&lt;/p&gt;
&lt;p&gt;It&#39;s not like, it&#39;s not a, it&#39;s not a flat out indictment, but it&#39;s a, it&#39;s a very fairly written post from, you know, someone who acknowledges, you know, the own biases upfront, but like, it&#39;s a, it&#39;s a very valid set of concerns from someone who deals with next, from an external ecosystem perspective. [31:29]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Sure. [31:30]&lt;/p&gt;
&lt;p&gt;Yeah. Not a great situation overall, but it&#39;s out, it&#39;s fixed. That&#39;s good. Onto the next [31:35]&lt;/p&gt;
&lt;p&gt;um, okay. [31:37]&lt;/p&gt;
&lt;h2 id=&quot;react-native-078---react-19-and-more-1&quot;&gt;&lt;a href=&quot;https://reactnative.dev/blog/2025/02/19/react-native-0.78&quot;&gt;React Native 0.78 - React 19 and more&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; We are back with another release of React Native. And so this one is is focused again, we&#39;re, we&#39;re going through faster releases now. So you might&#39;ve noticed if you&#39;ve been staying tuned for a little while that our release cadence within the React native ecosystem is becoming shorter and shorter, which is great news because it means we get updates quicker. [31:58]&lt;/p&gt;
&lt;p&gt;And that&#39;s largely due to the new architecture being out now. And so that allows us to basically the, the core of React native is a lot more stable. And so there is there&#39;s, there&#39;s more of a foundation to release a lot faster, which is great. Other highlights for this release is React 19 is now available on React Native, which is great. [32:17]&lt;/p&gt;
&lt;p&gt;So if you, you know, followed along with the previous React 18 implementation for React Native, you will have been aware that it took years to get it up to date with all of the React 18 features, largely because of the new architecture not being out fully. And so now you can see there&#39;s much of a smaller lead time to get React 19 support. [32:38]&lt;/p&gt;
&lt;p&gt;So all of the new sort of features of React, things like actions use, optimistic, the use hook, all of that stuff, and, you know, not needing to use forward ref anymore. All of that stuff is there now. On top of that the React compiler support is is now there. So you can actually install the compiler, configure it, and it should be able to work just as you would on the web, which is awesome. [32:59]&lt;/p&gt;
&lt;p&gt;The, probably the most, important feature for the community though is that they&#39;ve brought back JavaScript logs in your metro bundler. So this was one of the things that the react native team did last release was they removed logs being shown in your JavaScript bundler. So they were trying to push people to use the react dev tools that they released, or the new dev tools that they released for the React native ecosystem only to face the most crazy amount of backlash from the community because their logs had moved. [33:27]&lt;/p&gt;
&lt;p&gt;And people were very unhappy about that. So, they rolled back that. you can pass on a flag now and basically get the logs showing in your bundler once again, like it was for the last. However many years React native has been out for. And so they have said that they will eventually remove this again. [33:43]&lt;/p&gt;
&lt;p&gt;But they&#39;re trying to give a little bit more time for people to adjust to using the new dev tools. So we&#39;ll see how that goes when that happens. Once again, there&#39;s some other minor changes, but those are really the big things that&#39;s worth mentioning. And I think we&#39;re gonna get a lot more React native releases happening a lot more regularly since the new architecture is up. [34:00]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Sounds like a pretty substantial set of changes. [34:02]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And it&#39;s cool that they are able to release more quickly, to keep better aligned with the, you know, main mainline react version. I hadn&#39;t really registered that as a benefit that would come out of the new architecture, but it makes sense, especially while they are effectively maintaining two versions, you know, new architecture, old architecture, suddenly only have to do the new architecture. [34:25]&lt;/p&gt;
&lt;p&gt;That makes a lot of sense. That&#39;s super cool. [34:27]&lt;/p&gt;
&lt;h2 id=&quot;react-native-core-contributor-summit-2024-recap&quot;&gt;&lt;a href=&quot;https://reactnative.dev/blog/2025/02/03/react-native-core-contributor-summit-2024&quot;&gt;React Native Core Contributor Summit 2024 Recap&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; So the, the next thing that I, I thought I&#39;d just drop in here. it was technically published in February, but I think we missed it and I, I wasn&#39;t around in February is the React Native Core contributor Summit for 2024. The recap was finally released. So this is an article on the rec native dev blog. [34:43]&lt;/p&gt;
&lt;p&gt;I actually co-authored this. So last year in SLA in in Poland, I think it was around September we had the React Native Core Contributor Summit, which is a, a full day workshop. Talking about a bunch of different. Things that are strategic to React native in general. And one of the things we talked about was the release process. [35:02]&lt;/p&gt;
&lt;p&gt;We talked about, you know, what&#39;s the next big thing after the new architecture. So there was a bunch of different sessions and we split off. There was a session about how do we bring web APIs into, into to, to the React native world to standardize some of the APIs for interacting with the native layer. [35:15]&lt;/p&gt;
&lt;p&gt;So a lot of really interesting stuff. We talked about Nitro modules, which is sort of, we&#39;ve talked about several times in the last few sort of podcast episodes outta tree platforms and react native on desktop. I held a session as well, so I led a session during this during this core contributor summit lean Core 2.0. [35:31]&lt;/p&gt;
&lt;p&gt;So just for a bit of context lean core, was an initiative in the React native ecosystem back in 2019. And so the goal of Lean Core was to bring down the surface area of React Native&#39;s, core APIs because there was just so much stuff in there. Like somebody needed access to something in IOS&#39;s specific APIs and they just create a component and pop it into React Native Core and that would just be a part of maintenance burden for the core React native team. [35:56]&lt;/p&gt;
&lt;p&gt;So there wasn&#39;t much strategic direction around what goes into core and what goes into sort of community packages. And so they went through this effort in 2019. But the goal of the session this time around was actually, I think we we&#39;re due for another cleanup. &#39;cause there&#39;s a lot of random stuff there that is either props in certain core components that are tying specifically to Android or iOS, or there&#39;s just some components that don&#39;t get used anymore because there&#39;s much better components in community libraries that you can use. [36:23]&lt;/p&gt;
&lt;p&gt;And most people end up using those. So it was a good conversation around what should be deprecated in the long run. And so that&#39;s one of the sessions that I think was quite fruitful. And I say that probably being quite biased because I was the person who hosted the session. But yeah, that&#39;s a, that&#39;s a summary about the uh, the React Native core contributor Summit from last year. [36:39]&lt;/p&gt;
&lt;p&gt;If you&#39;re interested please feel free to go and, and read the article. [36:42]&lt;/p&gt;
&lt;h2 id=&quot;typescript-compiler-golang-rewrite&quot;&gt;&lt;a href=&quot;https://devblogs.microsoft.com/typescript/typescript-native-port/&quot;&gt;TypeScript compiler Golang rewrite??&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Alright, so the other really big piece in and piece of news for not just the React ecosystem, but the web development ecosystem as a whole is the, the TypeScript team has officially announced that they have created a fort, not a rewrite of the TypeScript compiler, the current version of TypeScript itself is written in TypeScript, which means it&#39;s actually, you know, in the end it&#39;s the, it&#39;s just JavaScript executing and they have ported the compiler itself to be written in. [37:14]&lt;/p&gt;
&lt;p&gt;Go. And what they say in the announcement is that they&#39;re seeing like generally 10 x speedups in the actual TypeScript compilation stage of processing people&#39;s programs. I saw at least one post on Reddit where someone was complaining that people are gonna be confused. That this means that they think that this means their code runs faster. [37:34]&lt;/p&gt;
&lt;p&gt;It&#39;s like, no, this is just compiling the TypeScript types 10 times as fast. And this is a really big deal. this trend over the last five, six years of all these different JavaScript ecosystem build tools being rewritten in native languages, mostly rust, and getting a lot of speed ups that way. [37:53]&lt;/p&gt;
&lt;p&gt;So, you know, es e es build as in go you know, RS pack and roll down are both written in rust, et cetera. I mean, a lot of tools being rewritten in native languages to try to speed things up, but a lot of them have still, like the actual build pipelines still get bottlenecked on TypeScript compilation time because it doesn&#39;t matter how, how fast you can process all these different, you know, individual module files and bundle them together if you&#39;re still doing a full type script type check during that section of the build phase. [38:29]&lt;/p&gt;
&lt;p&gt;And so there&#39;s been a bunch of attempts to rewrite the TypeScript compiler. I. Into native languages from random people in the ecosystem. The author of SWC had tried to do a couple different attempts at porting. One in rust, one in go. I saw somebody who had done one with trying to, trying to create some kinda like a stack based virtual machine to process the types, and he&#39;d gotten like a baby example working that seemed way faster, but it was only for, it only worked for very, very simple types. [39:01]&lt;/p&gt;
&lt;p&gt;So, I mean, there, there&#39;s been attempts from individuals, but none of these got anywhere past, like a modest proof of concept stage, like they proved they could work, but then it&#39;s a massive amount of effort just to catch up with where the TypeScript compiler is much less keep up with where it&#39;s going on a month to month basis. [39:21]&lt;/p&gt;
&lt;p&gt;And so, you know, a lot of people had said that, well, it feels like the only way this would actually happen is if the TypeScript team themselves actually decides to do it. Well, it turns out the TypeScript team decided to do it about a year ago, and they&#39;ve been working on this in secret, and now they&#39;ve gotten this far and proven it works and are actually intending to push this forward to become, you know, the actual TypeScript compiler down the road. [39:49]&lt;/p&gt;
&lt;p&gt;as Carl mentioned, so right now we&#39;re on TypeScript 5.8. They put out quarterly ish releases, I think. So basically four, four releases a year. They also follow a kind of a, a, a decimal based versioning system where it&#39;s not really SemVer, but they just roll over from 5.8, 5.9, 6.0, 6.1. So they&#39;ve said that the plan is that the new native go compiler will probably officially become TypeScript 7.0. So that means we probably have about two to three years before that actually happens officially. [40:26]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; But they may also just release it like when it&#39;s ready. I, I don&#39;t believe that the version seven is a firm commitment. So it, maybe, it will, maybe validating it, maybe making sure that it won&#39;t break. Everything will happen faster than they expect, and it may be [40:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I mean, they, they, they might like, they, they might end up going from like a six four to a 7.0 instead of having to get through 6, 4, 5, 6, 7, 8, 9. [40:52]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Okay. I don&#39;t know. I thought they just did straight up incremental and when they got to nine they incremented, [40:57]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; right, right, Like, so my, my point is that if it&#39;s ready in say one year from now, we would be at TypeScript 6.2, and rather than officially waiting another two years and eight more releases to get to 7.0, they might just say, okay, yeah, this is the end of the line for the old compiler here. [41:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; yeah. Hard to say. Who knows? I do wanna, I wanna highlight a couple of, you know, comments from the people who worked on this. [41:23]&lt;/p&gt;
&lt;h2 id=&quot;github-discussion-and-on-reddit-too&quot;&gt;&lt;a href=&quot;https://github.com/microsoft/typescript-go/discussions/411&quot;&gt;Github discussion&lt;/a&gt; and &lt;a href=&quot;https://www.reddit.com/r/javascript/comments/1j8s441/comment/mh7ms9n/&quot;&gt;on reddit too&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Ryan Cavanaugh put out a great Reddit comment describing why they chose go, basically. And, you know, we kind of talked about it a little bit, but I, I wanted to enter his words into the cannon a little bit here. [41:36]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I was shocked at how much pushback there was, especially from the C sharp folks. Oh my word. The C sharp community was up in arms about why the Microsoft engineers did not pick C Sharp as the language for the new compiler, [41:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, sure. I, the amount of space in my brain that C sharp developers occupy rounds to zero. So anytime they come on, I am a little surprised. But yeah. So like, I wanna, I wanna try and pull out a good quote here. So, like, really their primary goal here was portability. They don&#39;t wanna rewrite anything. [42:09]&lt;/p&gt;
&lt;p&gt;They would like to adapt it into a new faster language. So they really say portability was always a key constraint here. As we thought about how to do this, we tried tons of approaches to get a representation that it would&#39;ve made the port approach tractable and rust. But all of them either had unacceptable trade-offs or devolved into write your own garbage collector style strategies. [42:28]&lt;/p&gt;
&lt;p&gt;So right, like they, it looks like they really genuinely validated trying to use multiple languages here at least between Rust and go. And they say, [42:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I think I saw mention they also tried in c as well, okay, in this post, but elsewhere. [42:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; yeah, sure. That makes sense. I saw a quote that I liked. &quot; In our opinion, rust succeeds wildly at its design goals, but quote is straightforward to port to rust from this particular JavaScript. Code base is very rationally not one of its design goals. It&#39;s not one of goes either, but in our case, given the way we&#39;ve written the code so far, it does turn out to be pretty good at it.&quot; [43:01]&lt;/p&gt;
&lt;p&gt;So like basically they chose to write code in a style that happens to align thematically with Go. And so when they chose to port it, it ended up working out pretty well. [43:11]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; one of the key points here is that like anyone who&#39;s actually worked with a lot of TypeScript types or has dared to peek inside the TypeScript compiler, I. Is aware that there, there are a lot of very complex and very subtle behaviors of TypeScript and you know, one of the complaints about TypeScript for years is that there is no official spec for the language itself and how everything should work. [43:36]&lt;/p&gt;
&lt;p&gt;It&#39;s pretty much just, well, the spec is what the compiler does for this release and that&#39;s it. So in other words, the, the spec is the tests that they have. It&#39;s not an official language design document. because of that, if you try to rewrite the compiler in another language and you kind of start from scratch, you run the risk of ha of like trying to do things the same way. [44:05]&lt;/p&gt;
&lt;p&gt;But the code ends up being kind of different. I. Then you end up getting literally different output from the rewrite of the compiler, which would be really bad for the entire ecosystem that is depending on the compiler to return consistent type results. And so one of their conclusions was go allows us to make an almost literal one for one line for wine port of the exact data structures and the exact logic that we already have written in TypeScript. [44:36]&lt;/p&gt;
&lt;p&gt;And so that guarantees that we should get exactly the same calculation results from the new compiler just faster. Faster. So that was a really, really big consideration here. [44:49]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Definitely makes a lot of sense. [44:50]&lt;/p&gt;
&lt;h2 id=&quot;-lightning-round-&quot;&gt;⚡ Lightning round ⚡&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool. Okay. Onto the lightning round. [44:52]&lt;/p&gt;
&lt;h2 id=&quot;jsc-being-extracted-from-rn-core&quot;&gt;&lt;a href=&quot;https://github.com/react-native-community/javascriptcore&quot;&gt;JSC being extracted from RN Core&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; first one JSC is being extracted from React Native Core. So, several years ago there was a custom JavaScript engine that was introduced into React Native called Hermes. [45:01]&lt;/p&gt;
&lt;p&gt;That&#39;s what everyone has been using for the last several years, or most people have been using for the last several years. There are some people who still use JSC for very specific niche use cases. And so it was inside of the reactive core package up until recently when it&#39;s been extracted out. [45:16]&lt;/p&gt;
&lt;p&gt;So if you want to use JSC instead of Hermes, it is now an external package and you&#39;re gonna need to install it separately. [45:22]&lt;/p&gt;
&lt;h2 id=&quot;node-modulesdev-v040&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/antfu.me/post/3ljubvzvwec2w&quot;&gt;node-modules.dev v0.4.0&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; This is very small, but seems neat. I&#39;m just going to call it out. Anthony Fu put out a node modules dev, which just seems kind of cool. It&#39;s like a way of analyzing the dependency tree for a specific node module. It seems cool. I have had to do various ways of visualizing dependency trees a number of times throughout my career, and it&#39;s always been a pain in the butt. [45:47]&lt;/p&gt;
&lt;p&gt;So just seeing a tool that&#39;s online, on the internet where you can just like plug it in and analyze it visually is very cool and interesting to me. Seems good. I like it. [46:00]&lt;/p&gt;
&lt;h2 id=&quot;fernando-rojo-joining-vercel-as-head-of-mobile&quot;&gt;&lt;a href=&quot;https://x.com/rauchg/status/1896943726486032783&quot;&gt;Fernando Rojo joining Vercel as Head of Mobile&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; next up on the lightning round is that, as we mentioned a little bit earlier on in the episode, a little bit of a, of a spoiler. Fernando Roho has joined Vercel as the head of mobile. [46:10]&lt;/p&gt;
&lt;p&gt;And so this is a very interesting development because Vercel traditionally was very web focused. Expo was traditionally mobile focused. So those were the two frameworks. And it seems like they&#39;re starting to bleed into each other&#39;s territory, which is gonna get really, really interesting. So that is that&#39;s gonna be quite an interesting one to see because maybe Vercel is working on a framework for React Native. [46:32]&lt;/p&gt;
&lt;p&gt;And we know that the Expo folks have been working on sort of web-based support as well, so we will see on how this develops. But it&#39;s just an interesting signal from the Vercel folks. [46:41]&lt;/p&gt;
&lt;h2 id=&quot;next-vs-tanstack-router--vite&quot;&gt;&lt;a href=&quot;https://www.kylegill.com/essays/next-vs-tanstack/&quot;&gt;Next vs TanStack (Router + Vite)&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Kyle Gill put out a next JS versus Tan Stack article, which he at the very start says, was inspired by a 2019 post from Jared Palmer contrasting Gatsby with next js. [46:55]&lt;/p&gt;
&lt;p&gt;I highlight that because Jared Palmer currently works at Versal. Fun fact, I interviewed with him for a job in 2017. I did not get it. And 2019 when Jared Palmer wrote that Gatsby versus Next Post I feel like was about the turning point for Gatsby enthusiasm starting to die off. That&#39;s when mine started to die off for sure. [47:17]&lt;/p&gt;
&lt;p&gt;So that, it&#39;s, it&#39;s interesting seeing that he is calling back to that moment, in this moment in a pretty different direction. So we&#39;ll see, you know, who, who knows if that same trend will continue, but it&#39;s, it&#39;s, it looks like a great comparison of functionality between Next and Tan Stack. And Tan Stack is certainly getting a lot of interest in mind share. [47:42]&lt;/p&gt;
&lt;p&gt;So yeah, if you&#39;re thinking about it, definitely check that out &#39;cause it seems nice. [47:46]&lt;/p&gt;
&lt;h2 id=&quot;expos-ai-strategy&quot;&gt;&lt;a href=&quot;https://expo.dev/ai/strategy&quot;&gt;Expo’s AI Strategy&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Cool. Next up there&#39;s a blog post that the CTO of Expo did on their AI strategy. it&#39;s quite a short blog post so you can kind of skim through it. But really the point they&#39;re trying to make is that we&#39;re in an age that you can use AI to democratize building apps. And so they talk about how they&#39;re gonna take efforts to make sure that their docs and, you know, all of their material is well suitable for things like the model context protocol, the MCP that philanthropic released but also other sort of, protocols and interfaces that AI agents may use. And then they talk about how Expo is being used by tools like Repli by Bolt and other tools already to build apps from prompts so that, you know, non-technical people can sort of, as we say today, vibe code their apps. But I think they, they&#39;re really seeing this as a uh, as an opportunity to, to get people to build apps. [48:37]&lt;/p&gt;
&lt;p&gt;The everyday person who&#39;s not a developer to be able to build apps. [48:39]&lt;/p&gt;
&lt;h2 id=&quot;laravel-launched-starter-kits-including-react&quot;&gt;&lt;a href=&quot;https://laravel.com/docs/12.x/starter-kits&quot;&gt;Laravel launched “starter kits” including React&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Laravel just released starter kits this month including some for React. So that&#39;s interesting. They&#39;re doing, like, I, it looked like it included server-side rendering. I&#39;m not sure if that is owned by Laravel or React but just interesting. [48:54]&lt;/p&gt;
&lt;p&gt;I don&#39;t know. I, Laravel is maybe on my mind because I was seeing a number of months ago some conversation discussing what you get out of the box with tools like Laravel and the general lack of anything comparable in the React ecosystem. Specifically around auth. I saw people talking about what you need to, what you get for free with a tool like Laravel. [49:18]&lt;/p&gt;
&lt;p&gt;And I was a little bit surprised because you do not get that for free. In my experience when you&#39;re building an app with React, so that just gave Bit, gave me a bit of a respect for the, the, the tool. So it seems neat. It&#39;s a new major version, version 12. It&#39;s got starter kits. One of the starter kits uses React. [49:34]&lt;/p&gt;
&lt;p&gt;It claims server-side rendering support. [49:36]&lt;/p&gt;
&lt;h2 id=&quot;react-native-enterprise-framework&quot;&gt;&lt;a href=&quot;https://enterprise-framework.callstack.com/&quot;&gt;React Native Enterprise Framework&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; So next up, call stack, the folks behind React Universe Conf and libraries like React Native Paper, have announced that they&#39;re creating a new React native framework that&#39;s specifically targeting enterprise. [49:49]&lt;/p&gt;
&lt;p&gt;Now, this is very early days. They&#39;re trying to target some of the pain points that enterprise clients with large, large number of you know, devs and with restrictions on where they can host their infrastructure are facing. And so they want to try to target that niche of React native apps which is quite interesting. [50:07]&lt;/p&gt;
&lt;p&gt;And so, this is still very much in sort of waiting list stage. So it&#39;s, it&#39;s early days. But their, that, their start focus is that you can have reusable cloud builds that run on anywhere. Potentially GitHub actions but potentially also other pipeline providers. And also a nice way to be able to integrate Brownfield into existing iOS and Android apps so that you have an incremental migration path. [50:30]&lt;/p&gt;
&lt;p&gt;So, very early days, we&#39;ll see. We&#39;ll see where we, where we, where this kind of develops and, and, and where this goes. [50:36]&lt;/p&gt;
&lt;h2 id=&quot;state-of-react-native-2024&quot;&gt;&lt;a href=&quot;https://results.stateofreactnative.com/en-US/&quot;&gt;State of React Native 2024&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; And last on our list is the State of React native 2024. So this is a survey that the folks at Software Mansion do every single year and they touch on a whole bunch of stuff like dev backgrounds, demographics, what libraries people are using, and what you use for state management and all of that. [50:52]&lt;/p&gt;
&lt;p&gt;And so, this year the main things that they&#39;re that they basically concluded, which is, is kind of no surprise whatsoever, is the um, expos becoming sort of the main way to build react native apps. And they see momentum with tools like Chrome, the, the, the Chrome dev tools, protocol based new React native dev tools that Meta&#39;s announced and tools like Expo Atlas. [51:14]&lt;/p&gt;
&lt;p&gt;But take a look into it if you&#39;re interested in. Analyzing the trends in the React native ecosystem. [51:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Alright, thanks everyone. That&#39;s everything we got. We will be back on the last Wednesday of next month in April on the 30th. come join us on April 30th here in the live stage, or we will be back in your podcast feed just as soon as we can. [51:33]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Yeah, well, always a pleasure guys, and looking forward to jumping on in April to see you all there. [51:40]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Likewise. [51:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool, see you then. We gather sources from this week in React bys.dev, react status next JS weekly, the React JS subreddit here in reactive flux, and sometimes even directly from those publishing articles. If you see anything newsworthy, definitely let us know in the Tech reads, tech News and Reads channel here in reactive Flux. [52:00]&lt;/p&gt;
&lt;p&gt;Or you can send me an email at &lt;a href=&quot;mailto:hello@reactiflux.com&quot;&gt;hello@reactiflux.com&lt;/a&gt;. I read everything that comes in, even if it gets marked as spam, so don&#39;t worry. If this is a show that you get value from and would like to support, best way to do so is by telling people about it or by submitting a review on whatever platform that you listen to it.&lt;/p&gt;
&lt;p&gt;Thanks for listening. See you next month. [52:16]&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2025-03</link><guid isPermaLink="false">reactiflux-tmir-2025-03</guid><pubDate>Tue, 25 Mar 2025 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>TMiR 2025-02: Updated new project docs</title><description>&lt;iframe src=&quot;https://creators.spotify.com/pod/show/reactiflux/embed/episodes/TMiR-2025-02-Updated-new-project-docs-e2vj003&quot; height=&quot;102px&quot; width=&quot;400px&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#job-market-fred-data-layoffsfyi&quot;&gt;01:11&lt;/a&gt;]&lt;/code&gt; Job market: &lt;a href=&quot;https://fred.stlouisfed.org/series/IHLIDXUSTPSOFTDEVE&quot;&gt;FRED data&lt;/a&gt;, &lt;a href=&quot;https://layoffs.fyi/&quot;&gt;Layoffs.fyi&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#microsoft-performance-based-job-cuts-have-started&quot;&gt;02:35&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.businessinsider.com/microsoft-performance-based-job-cuts-have-started-termination-letters-2025-1&quot;&gt;Microsoft Performance-Based Job Cuts Have Started&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#conferences-react-javascript&quot;&gt;03:07&lt;/a&gt;]&lt;/code&gt; Conferences (&lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://confs.tech/javascript&quot;&gt;Javascript&lt;/a&gt;)
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#react-paris-march-20-21-paris-france&quot;&gt;03:10&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react.paris/&quot;&gt;React Paris&lt;/a&gt; March 20-21 Paris, France&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#react-native-connection-april-34-paris-france&quot;&gt;03:14&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactnativeconnection.io/&quot;&gt;React Native Connection&lt;/a&gt; April 3–4 Paris, France&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#react-miami-apr-17-18-miami-fl-usa&quot;&gt;03:19&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactmiami.com/&quot;&gt;React Miami&lt;/a&gt;, Apr 17-18 Miami, FL, USA&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#cityjs-london-april-23-25-london-uk&quot;&gt;03:25&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://london.cityjsconf.org/&quot;&gt;CityJS London&lt;/a&gt; April 23-25 London, UK&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#sponsored-by-infinite-red&quot;&gt;03:53&lt;/a&gt;]&lt;/code&gt; Sponsored by &lt;a href=&quot;https://infinite.red/&quot;&gt;Infinite Red&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#new-releases&quot;&gt;04:48&lt;/a&gt;]&lt;/code&gt; New releases
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#react-router-72&quot;&gt;04:50&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v720&quot;&gt;React Router 7.2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#ts-58&quot;&gt;05:11&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-5-8-beta/&quot;&gt;TS 5.8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#prettier-35&quot;&gt;09:01&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://prettier.io/blog/2025/02/09/3.5.0&quot;&gt;Prettier 3.5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#rtk-query-v260&quot;&gt;09:12&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/reduxjs/redux-toolkit/releases/tag/v2.6.0&quot;&gt;RTK Query v2.6.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#standard-schema&quot;&gt;10:04&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://standardschema.dev/&quot;&gt;Standard Schema&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#astro-52-also-astro-53&quot;&gt;10:34&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://astro.build/blog/astro-520/&quot;&gt;Astro 5.2&lt;/a&gt; (also &lt;a href=&quot;https://astro.build/blog/astro-530/&quot;&gt;Astro 5.3&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#turborepo-24&quot;&gt;11:35&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://turbo.build/blog/turbo-2-4&quot;&gt;Turborepo 2.4&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#main-content&quot;&gt;12:20&lt;/a&gt;]&lt;/code&gt; Main Content
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#sunsetting-create-react-app&quot;&gt;12:23&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react.dev/blog/2025/02/14/sunsetting-create-react-app&quot;&gt;Sunsetting Create React App&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#original-sunsetting-cra-post-vs-build-a-react-app-from-scratch&quot;&gt;16:59&lt;/a&gt;]&lt;/code&gt; Original “&lt;a href=&quot;https://github.com/reactjs/react.dev/pull/7495&quot;&gt;Sunsetting CRA&lt;/a&gt;” post vs &lt;a href=&quot;https://react.dev/learn/build-a-react-app-from-scratch&quot;&gt;Build a React app from Scratch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#backlash-and-confusion-over-initial-version&quot;&gt;25:26&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/youyuxi/status/1891721924197351497&quot;&gt;Backlash&lt;/a&gt; and &lt;a href=&quot;https://x.com/youyuxi/status/1892000761778929931&quot;&gt;confusion&lt;/a&gt; over initial version&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#mark-filed-a-pr-to-rewrite-the-docs-the-react-team-closed-that-but-based-a-new-one-off-it&quot;&gt;26:52&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/reactjs/react.dev/pull/7618&quot;&gt;Mark filed a PR&lt;/a&gt; to rewrite the docs, the React team closed that but &lt;a href=&quot;https://github.com/reactjs/react.dev/pull/7624&quot;&gt;based a new one off it&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#between-the-wires-an-interview-with-mootools-contributors&quot;&gt;38:09&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.freecodecamp.org/news/between-the-wires-an-interview-with-mootools-contributors-33d764957575/&quot;&gt;Between the Wires: An interview with MooTools contributors&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#how-to-start-a-react-project-2025&quot;&gt;42:58&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.robinwieruch.de/react-starter/&quot;&gt;How to start a React Project [2025]&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#jack-herrington-published-create-tsrouter-app-under-the-tanstack-umbrella&quot;&gt;43:56&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/tannerlinsley.com/post/3lif6fdpzkw2s&quot;&gt;Jack Herrington published &lt;code&gt;create-tsrouter-app&lt;/code&gt;&lt;/a&gt; under the Tanstack umbrella&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#-lightning-round-&quot;&gt;47:24&lt;/a&gt;]&lt;/code&gt; ⚡ Lightning round ⚡
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#vercel-acquires-tremor&quot;&gt;47:29&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://vercel.com/blog/vercel-acquires-tremor&quot;&gt;Vercel acquires Tremor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#things-people-get-wrong-about-electron&quot;&gt;48:29&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://felixrieseberg.com/things-people-get-wrong-about-electron/&quot;&gt;Things people get wrong about Electron&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#initial-observables-support-in-chrome-135-observable-api&quot;&gt;48:57&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/BenLesh/status/1893053275995357608&quot;&gt;Initial Observables support in Chrome 135&lt;/a&gt;, &lt;a href=&quot;https://chromestatus.com/feature/5154593776599040&quot;&gt;Observable API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#why-i-rebuilt-prosemirrors-renderer-in-react&quot;&gt;49:33&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://smoores.dev/post/why_i_rebuilt_prosemirror_view/&quot;&gt;Why I rebuilt ProseMirror’s renderer in React&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#javascript-temporal-is-coming&quot;&gt;49:52&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://developer.mozilla.org/en-US/blog/javascript-temporal-is-coming/&quot;&gt;JavaScript Temporal is coming&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#do-javascript-frameworks-still-need-portals&quot;&gt;50:44&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://fullystacked.net/portal/&quot;&gt;Do JavaScript frameworks still need portals?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#what-do-we-do-with-you-old-react&quot;&gt;51:46&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.manuelsanchezdev.com/blog/what-to-do-with-old-react-upgrading-to-modern-react&quot;&gt;What Do We Do with You, Old React?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-02#records-and-tuples-proposal-is-now-composites&quot;&gt;52:18&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/littledan.dev/post/3liwo57opl22b&quot;&gt;“Records and Tuples” proposal is now “Composites”&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; All right. Hello, everyone. Thank you for joining us for the February edition of This Month in React, where we recap And digest the recent developments in the ever evolving React and web ecosystem. Coming to you live from Reactiflux, the place for professional React developers, and supported by Infinite Red. [00:00]&lt;/p&gt;
&lt;p&gt;But I am Carl. I&#39;m a staff product developer and freelance community leader here at  Reactiflux, where I run community programs like these events and build tools to help keep the community operating. [00:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And I&#39;m Mark. My day job is working at Replay. Io. We&#39;re building a time traveling debugger for JavaScript and figuring out how to integrate that with AI DevTools. And in my copious amounts of spare time, I both work on Redux and spend entirely too much time complaining about the React ecosystem. [00:26]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And also now writing documentation and long, enormous blog posts. I actually printed out your blog post that I offered to help you edit, and it was 50 pages long. 50 sheets of paper. [00:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I apologize to the forests that suffered for that one. [00:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; It&#39;s entirely your fault. [00:56]&lt;/p&gt;
&lt;p&gt;Yeah, our third co host, Mo, is off this month. He is very busy with work and things, and just needed to take some time, not in the right space to have this conversation this month, so he&#39;ll be back next time. [00:58]&lt;/p&gt;
&lt;h2 id=&quot;job-market-fred-data-layoffsfyi&quot;&gt;Job market: &lt;a href=&quot;https://fred.stlouisfed.org/series/IHLIDXUSTPSOFTDEVE&quot;&gt;FRED data&lt;/a&gt;, &lt;a href=&quot;https://layoffs.fyi/&quot;&gt;Layoffs.fyi&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Some quick hits. Job market. I was hoping around December, January, it was looking like, I don&#39;t know, new quarter, new year, new budgets. I was cautiously optimistic from seeing activity in the job board, yada yada. But sadly that has not borne out. [01:11]&lt;/p&gt;
&lt;h2 id=&quot;microsoft-performance-based-job-cuts-have-started&quot;&gt;&lt;a href=&quot;https://www.businessinsider.com/microsoft-performance-based-job-cuts-have-started-termination-letters-2025-1&quot;&gt;Microsoft Performance-Based Job Cuts Have Started&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I guess, you know, maybe some small companies were hiring, but like, Meta is doing performance based layoffs. Microsoft is doing performance based layoffs. And talking to someone about the job market and the ecosystem, and they shared something that made me think differently about layoffs that are happening right now. [01:29]&lt;/p&gt;
&lt;p&gt;Like, when the company is signaling that it is performance based, That is a very different situation than when you just get laid off. Like, was pointed out to me that like, if you have on your resume that you worked at Meta and that you got laid off January 2025, that is no longer, like, the golden ticket. You know, like, for many, many years, if you worked at one of these big tech companies, that was, like, pretty much, not a free pass, but, like, it opened a lot of doors. But now a lot of people are getting let go when the public messaging is we&#39;re letting go of low performers. And that is a very different environment to lose your job in. [01:46]&lt;/p&gt;
&lt;p&gt;So that&#39;s, yeah, I hadn&#39;t really thought about that, but yeah, how the company messages, how they&#39;re letting people go definitely can have a huge impact. And I saw a quote from a Bloomberg article about the Microsoft layoffs. [02:23]&lt;/p&gt;
&lt;h2 id=&quot;microsoft-performance-based-job-cuts-have-started-1&quot;&gt;&lt;a href=&quot;https://www.businessinsider.com/microsoft-performance-based-job-cuts-have-started-termination-letters-2025-1&quot;&gt;Microsoft Performance-Based Job Cuts Have Started&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; &quot; Employees losing their job will see health care benefits end immediately. In three specific cases, employees were told that they weren&#39;t getting severance.&quot; [02:35]&lt;/p&gt;
&lt;p&gt;So like, not only is, are they publicly signaling that these are like performance based and therefore really doing harm to the like future employment prospects, like they&#39;re not, they&#39;re being pretty stingy about these severance deals. [02:43]&lt;/p&gt;
&lt;p&gt;Losing your health insurance with no notice. It&#39;s pretty brutal, like, that&#39;s, that&#39;s just rough. Especially, like, yeah, hopefully they weren&#39;t getting any active treatments. Ugh, anyway, that&#39;s all I&#39;ll say on that. [02:56]&lt;/p&gt;
&lt;h2 id=&quot;conferences-react-javascript&quot;&gt;Conferences (&lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://confs.tech/javascript&quot;&gt;Javascript&lt;/a&gt;)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; some upcoming conferences in March and April, [03:07]&lt;/p&gt;
&lt;h2 id=&quot;react-paris-march-20-21-paris-france&quot;&gt;&lt;a href=&quot;https://react.paris/&quot;&gt;React Paris&lt;/a&gt; March 20-21 Paris, France&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; we&#39;ve got React Paris. March 20th and 21st. [03:10]&lt;/p&gt;
&lt;h2 id=&quot;react-native-connection-april-34-paris-france&quot;&gt;&lt;a href=&quot;https://reactnativeconnection.io/&quot;&gt;React Native Connection&lt;/a&gt; April 3–4 Paris, France&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; We&#39;ve got React Native Connection, April 3rd and 4th, also in Paris. [03:14]&lt;/p&gt;
&lt;h2 id=&quot;react-miami-apr-17-18-miami-fl-usa&quot;&gt;&lt;a href=&quot;https://reactmiami.com/&quot;&gt;React Miami&lt;/a&gt;, Apr 17-18 Miami, FL, USA&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; we&#39;ve got React Miami, coming up in April 17th And 18th. [03:19]&lt;/p&gt;
&lt;h2 id=&quot;cityjs-london-april-23-25-london-uk&quot;&gt;&lt;a href=&quot;https://london.cityjsconf.org/&quot;&gt;CityJS London&lt;/a&gt; April 23-25 London, UK&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; there&#39;s also CityJS London, April 23rd to 25th in London. [03:25]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Then whole slew of things in late May and early June. Conference season kicking off. [03:30]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, definitely. I need to actually book things. I don&#39;t have anything, I&#39;m going to render Atlanta in June, but I don&#39;t have anything booked before then. Yeah, going to Brazil for 12 days is really kind of complicated by Soaked up a lot of my logistical planning. [03:35]&lt;/p&gt;
&lt;p&gt;, Um, yeah, our sponsor. We are sponsored. We have a sponsor. [03:49]&lt;/p&gt;
&lt;h2 id=&quot;sponsored-by-infinite-red&quot;&gt;Sponsored by &lt;a href=&quot;https://infinite.red/&quot;&gt;Infinite Red&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Infinite Red is an expert React Native consultancy. It&#39;s been around since 2015. So basically the entire time that React Native has been around. They are our only sponsor in part because very few companies do as much as they do for the ecosystem. [03:53]&lt;/p&gt;
&lt;p&gt;, and I just don&#39;t know Too many other companies that have done quite so much for quite so long. So very happy to be partnered with them in that way. They only do React Native and they&#39;ve built over 75 apps for companies from startups to the biggest in the world. And other than being kind, great people who have done great things for the ecosystem, like hosting podcasts and organizing conferences, They are generally just a small team that focuses on like building for the long term. [04:07]&lt;/p&gt;
&lt;p&gt;So if you are working at a company that&#39;s spinning up a new React Native project and needs to get build some expertise, definitely give them a call because they will actually not just build it, but they will work with you to help develop expertise and hit the ground running. Cool. [04:34]&lt;/p&gt;
&lt;h2 id=&quot;new-releases&quot;&gt;New releases&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; onto some new releases. [04:48]&lt;/p&gt;
&lt;h2 id=&quot;react-router-72&quot;&gt;&lt;a href=&quot;https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v720&quot;&gt;React Router 7.2&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; We&#39;ve got React Router, putting out a minor release, 7.2. Looked pretty minor. The headline for me here is that they have a type safe HRF tool, which sounds pretty interesting if you can have type safety. That your links work like that&#39;s just neat. They have a new way of doing that how well it works remains to be seen, but it seems cool [04:50]&lt;/p&gt;
&lt;h2 id=&quot;ts-58&quot;&gt;&lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-5-8-beta/&quot;&gt;TS 5.8&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; We&#39;ve also got TypeScript version 5. 8 with a bunch of stuff. Of course TypeScript new version [05:11]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; thing that I&#39;m interested in here is the new erasable syntax only flag. And for background on that, so TypeScript has always been described as, you know, a types only layer on top of JavaScript. But there are a few TypeScript features that actually do have some runtime code. Enums, I think a couple of the, a couple of the old legacy, um, syntax features as well. [05:18]&lt;/p&gt;
&lt;p&gt;And so, there are a number of tools today which work to strip out TypeScript types. But if your code uses some of those features that do have some runtime code, they, they don&#39;t work right. And this actually matters a lot for things like Node&#39;s new TypeScript, Stripping support. [05:43]&lt;/p&gt;
&lt;p&gt;And so, to try to work better with those tools, TS has added this erasable syntax flag, which I believe actually throws an error if you are using any of the syntax that has runtime output. So it&#39;s basically like a, an extra enforcement check to make sure that you&#39;re not using any of those features. And that way you can ensure that your code is compatible with just stripping the types as opposed to like a transpilation. That&#39;s actually a really big deal. [06:01]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, super helpful. And it&#39;s actually, that&#39;s like a reasonably large build time optimization if you can get away with it. Because if you&#39;re not actually analyzing the types while compiling the code, you&#39;re just doing the parsing and the output. Like that&#39;s a lot less work. And your, like, VS Code, our IDEs, our language servers are already surfacing most of those type errors. [06:29]&lt;/p&gt;
&lt;p&gt;So, like, I think it&#39;s really neat to, for one, I have used this just Because it&#39;s less effort to stand up a new project. You know, if I can just lean on the language server, then that&#39;s just less code, fewer moving parts, fewer things to go wrong, fewer things to break when I pick the project back up in four months. [06:52]&lt;/p&gt;
&lt;p&gt;but yeah, it&#39;s also like if you can move the actual type checking into like CI or something like that and just do it less frequently, that&#39;s, that can be a lot less work overall. Yeah, there was a relatively subtle thing, slightly smarter return types when generic arguments are used in conditional types. [07:08]&lt;/p&gt;
&lt;p&gt;It&#39;s really specific and only a partial solution, but I&#39;ve run into some problems like this. And the overall like pattern that they were showing off for this was like not super familiar with to me and looked useful. So like, I that caught my eye as like a kind of subtle but useful thing. [07:27]&lt;/p&gt;
&lt;p&gt;They are adding support for using require to get ESM modules. Which is interesting, like this is, you know, a continuation of the long tail of complexity that the switch over to ES modules, standardized modules, is having. But like, cool, now we have one more way to run into fewer problems when In an ESM environment, but needing to depend on CommonJS code. [07:43]&lt;/p&gt;
&lt;p&gt;it still does not allow you to require an ESM file that contains a top level await. [08:10]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Because &lt;code&gt;require()&lt;/code&gt; is synchronous. [08:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; yes, facts. Also added a new flag that just caught my eyes, like a nice, I don&#39;t know, LTS feature. They have a &lt;code&gt;--module node18&lt;/code&gt;. So you can tell TypeScript what module, like parsing, what determines what modules to use, how it evaluates what modules are being imported? You can tell it to use specifically the behavior for node 18. [08:18]&lt;/p&gt;
&lt;p&gt;I&#39;ve done a lot of maintenance of legacy apps and weird edge cases like that, like, Oh, in the last five versions, they have changed in what order or in what manner modules are crawled. Stuff like that can cause so many weird, obnoxious, difficult to debug errors. [08:42]&lt;/p&gt;
&lt;h2 id=&quot;prettier-35&quot;&gt;&lt;a href=&quot;https://prettier.io/blog/2025/02/09/3.5.0&quot;&gt;Prettier 3.5&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[09:01]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool, new version of Prettier. I saw they&#39;re adding an option, which they do not do very frequently, so that&#39;s cool. [09:01]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Looks like they&#39;re trying to let you configure how it formats collapsing objects. [09:07]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Useful. [09:12]&lt;/p&gt;
&lt;h2 id=&quot;rtk-query-v260&quot;&gt;&lt;a href=&quot;https://github.com/reduxjs/redux-toolkit/releases/tag/v2.6.0&quot;&gt;RTK Query v2.6.0&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I am very pleased to announce that yesterday I shipped Redux Toolkit 2. 6, which now has infinite query support for RTKQuery. This has been our single most requested feature since RTK Query came out, and I started working on this back in October, after another user had submitted a draft PR to get a first proof of concept going. [09:12]&lt;/p&gt;
&lt;p&gt;There was a lot of discussion, a lot of trying to figure out what the problem space is, and how to implement this properly. We ended up adopting the React Query public API design for this. And I had some discussions with Dominic Dorfmeister, the, you know, TK Dodo, the React Query Maintainer, who specifically gave us advice on why they ended up with this API design and how they implemented it. [09:34]&lt;/p&gt;
&lt;p&gt;So, worked on this intermittently when I had time over the last few months and very happy to get this out the door. [09:58]&lt;/p&gt;
&lt;h2 id=&quot;standard-schema&quot;&gt;&lt;a href=&quot;https://standardschema.dev/&quot;&gt;Standard Schema&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; There&#39;s also a, project or a standard, I guess, called Standard Schema, which is an attempt to, you know, sort of unify or find a common denominator between a bunch of the different TypeScript validation tools out there, like Zod and Valobot and Archetype. So apparently you can now say that your project needs Just the standard schema definitions, and then the end users can then swap in their preferred validation library where and where they want to. [10:04]&lt;/p&gt;
&lt;h2 id=&quot;astro-52-also-astro-53&quot;&gt;&lt;a href=&quot;https://astro.build/blog/astro-520/&quot;&gt;Astro 5.2&lt;/a&gt; (also &lt;a href=&quot;https://astro.build/blog/astro-530/&quot;&gt;Astro 5.3&lt;/a&gt;)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; there&#39;s also two Astro releases. There&#39;s 5. 2 and 5. 3. Looks like it&#39;s You know, relatively. Small iterative improvements. I was just reading a little bit more. Astro 5. 3 is talking about automatic session storage setup. And as someone who has opinions about off, And prefers, you know, session storage to jWTs for authentication, that caught my eye. [10:34]&lt;/p&gt;
&lt;p&gt;I don&#39;t know a ton about this, but definitely anything that makes sessions a little bit easier to like wrangle and manage, is definitely nice. I&#39;ve been, as an exercise, I&#39;ve been building my own. Authentication from scratch in session storage with React Router v7. So that&#39;s just fresh on my mind. [10:59]&lt;/p&gt;
&lt;p&gt;I would love to be able to tell you more about what the experience of using Astro is like, but I, I have tried and failed to start several projects because I just don&#39;t have time. I have too many different projects going on. But It always crosses my mind when I&#39;m thinking about, like, a blog, or a static site, or things like that. Seems like a very good tool for those purposes. [11:18]&lt;/p&gt;
&lt;h2 id=&quot;turborepo-24&quot;&gt;&lt;a href=&quot;https://turbo.build/blog/turbo-2-4&quot;&gt;Turborepo 2.4&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; There&#39;s also TurboRepo 2. 4. TurboRepo is a great tool for managing monorepos. From the next team, and they&#39;ve got a number of improvements to enhance your repository as they say Boundaries, watch mode caching, continuing the trend of Vercel dealing with caching issues and Versioned configuration validation from within your repository, interesting. And they&#39;ve also got circular dependency recommendations for adopting Turbo repo in large repos more easily. That&#39;s interesting. I&#39;ve run into so many circular dependency issues throughout my career that just very much catches my attention. Very neat. Cool. [11:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I spent time trying to squash those as well. [12:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Just the worst. So painful. [12:19]&lt;/p&gt;
&lt;h2 id=&quot;main-content&quot;&gt;Main Content&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool. Into our main content. Mark, you wanna start us [12:20]&lt;/p&gt;
&lt;h2 id=&quot;sunsetting-create-react-app&quot;&gt;&lt;a href=&quot;https://react.dev/blog/2025/02/14/sunsetting-create-react-app&quot;&gt;Sunsetting Create React App&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; All right, yes, yes, I, I have thoughts and opinions on this topic. So, in our last episode, as a Relatively brief recap. When React 19 came out, it broke Create React App because of a peer dependency version mismatch, where the old templates wanted React 18, but CRA tried to install React 19. So I spent a chunk of January griping about this and trying to say, this is broken and it needs to be fixed. [12:23]&lt;/p&gt;
&lt;p&gt;That led to several heated discussions on Blue Sky with the React team about, and trying to convince them to fix it. And so, right before our last episode, I had filed an issue that recapped what was broken and why, and pointed to a couple of PRs that other people had filed to both fix the CRA templates and actually mark the Create React App repo and command line tool as deprecated, and the React team had actually taken action on that and merged the initial PRs And they hadn&#39;t actually put out a new release of Create React App that fixed the brokenness, but the changes were in there and they were trying to figure out the process for doing the releases. [12:53]&lt;/p&gt;
&lt;p&gt;Along with that, though, I had specifically said that I felt the React Docs setup page ought to recommend Vite as, you know, the equivalent replacement tool. So that people being told, CRA is dead, don&#39;t use it, would have a direct equivalent tool to try to use. So that&#39;s where we left off a month ago. [13:38]&lt;/p&gt;
&lt;p&gt;And the entire topic has continued significantly over the last few weeks. So, from my perspective, there were several additional debates going on, on, you know, BlueSky and Twitter and in the docs about, you know, what ought to be done as follow ups and, you know, what should be recommended as tools. [13:59]&lt;/p&gt;
&lt;p&gt;And on my side, I had actually started writing a rather lengthy blog post that tried to cover a bunch of topics from how has React been developed over the years to erecting some community confusion, like. You know, the ongoing claims that Vercel is driving React development just to make money on servers, which is wrong. [14:20]&lt;/p&gt;
&lt;p&gt;but also describing sort of my take on the history of interactions between the React team and the community and frustrations and miscommunications and docs problems and frameworks and all these different things. So I&#39;d been working on that. In, you know, over the course of a couple of weeks and kind of like teasing my progress online. [14:42]&lt;/p&gt;
&lt;p&gt;And I&#39;d also been having discussion with some other maintainers and without having given specific details publicly, the React team actually reached out to folks like Tanner Linsley and myself and specifically said, we can, like, we can tell you&#39;re frustrated. We would like to hear your feedback directly. [15:04]&lt;/p&gt;
&lt;p&gt;And so I know that, Joe from the React team had a call with Tanner Winsley, where Tanner expressed a lot of thoughts about, I think especially some of lack of new client functionality in React as well as where React was headed. And so, Joe and I had a call. In early February ish, where I summarized all my different concerns, and then there were a couple follow up calls, and, Carl and I actually were on one with, both Joe and Matt, where the React team talked about what they&#39;re trying to work on. [15:25]&lt;/p&gt;
&lt;p&gt;In response to a lot of these discussions and feedback. One of the things they said was we&#39;re, we&#39;re preparing a blog post and some docs updates in response to CRA being dead. As well as even things like they&#39;ve been talking about trying to have a new community working group for a while, but they&#39;ve kind of gotten bogged down in what the logistics should be. [15:59]&lt;/p&gt;
&lt;p&gt;So, based on that, I could see that the React team was very actively trying to listen to feedback and trying to take some actions in response. And so, I think it was later that week that the React team finished the draft of the blog post and the docs updates. They gave me a chance to review it and offer feedback and a bunch of other folks as well. [16:20]&lt;/p&gt;
&lt;p&gt;And so they published that blog post and they, I did actually see that they had applied some of the feedback that I&#39;d suggested. They did not apply all of the feedback that I suggested. [16:45]&lt;/p&gt;
&lt;h2 id=&quot;original-sunsetting-cra-post-vs-build-a-react-app-from-scratch&quot;&gt;Original “&lt;a href=&quot;https://github.com/reactjs/react.dev/pull/7495&quot;&gt;Sunsetting CRA&lt;/a&gt;” post vs &lt;a href=&quot;https://react.dev/learn/build-a-react-app-from-scratch&quot;&gt;Build a React app from Scratch&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And this actually kind of got rather controversial again as I rather predicted that it would. They put up a blog post labeled Sunsetting Create React App, where they said, CRA is dead, here&#39;s all the things that it didn&#39;t include. [16:59]&lt;/p&gt;
&lt;p&gt;There&#39;s better tools, but also we really, really, really, really, really think that people should be using frameworks that have routing and data fetching and everything else built in. And the first version of this blog post really, really emphasized the framework part. And they did make changes to the setup docs, but they also put up a new blog post that was called Building a React Framework. [17:14]&lt;/p&gt;
&lt;p&gt;And so, you know, what, what everyone&#39;s been clamoring for is just recommend VEET in the setup page, please. And they didn&#39;t actually do that with this first update. They instead, what they said was, well, when you pick your own build tool and your own router. And your own data fetching library. What you&#39;re really doing is building your own framework badly. [17:39]&lt;/p&gt;
&lt;p&gt;And I can understand the mindset behind that, but frankly, this was not a helpful approach for anyone actually reading the framework. If you are a learner or a beginner, or want to try to choose some other tools, what would be helpful is instructions that say, you can use one of these two or three build tools, you can use one of these couple routers, and one of these data fetching libraries, and at least giving people a valid direction to go with it. [18:07]&lt;/p&gt;
&lt;p&gt;And instead, what we got was a pretty straightforward, page that said, if you don&#39;t want to use a framework, you can build your own framework. Step one, install Vite or Parcel. Step two, you&#39;re going to have to think about routing and data fetching and code splitting, and boy, these are complicated and you will never be able to do this by yourself. [18:35]&lt;/p&gt;
&lt;p&gt;Don&#39;t do this, please! Use a framework instead. And that really was not helpful for the audience that was going to be reading it. And so I had tried to offer feedback saying I don&#39;t think this page is good before the post went up, and that was one of the things they did not listen to me on. [18:57]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, And it, it definitely feels like that the fe it seems like the feedback that you gave is in line with like community expectations. Just seeing the Reddit response to, you know, the comments on the Reddit post for this blog. I, you know, I saw like Rick Hanlin had replied to something and got down, voted to like, you know, minus 20, something like that. So, it does, just like for more data points coming, rolling in in real time around, the core team is out of step with expectations for the community. [19:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yeah, so, you know, I, I understand what the React team is trying to accomplish, and in fact, actually, one of the, one of the most interesting data points that came out of those couple conversations with the team. So, they&#39;ve said, since they started this frameworks emphasis that, Part of the goal is that, you know, they, they don&#39;t want people to start off with a single page app and then have to do like a major tool migration in order to add SSR functionality. [19:48]&lt;/p&gt;
&lt;p&gt;What I didn&#39;t realize was a lot of their goal and mindset around this is actually around React app performance. And they are actually very sensitive and I&#39;ve heard a lot of the criticism. From folks like Alex Russell that, you know, single page apps and the average React app are horribly performing tens of megabytes of JavaScript. [20:14]&lt;/p&gt;
&lt;p&gt;Like, they&#39;re actually very, very sensitive to that criticism, and I don&#39;t think I&#39;d realized how sensitive it was. Turns out that part of their reason for emphasizing frameworks Is, they feel that if most apps start with a framework by default, then on average, more React apps will have somewhat better loading performance, data fetching, code splitting performance, etc. [20:38]&lt;/p&gt;
&lt;p&gt;That is actually one of the big drivers for why they recommend Framework so strongly, and I didn&#39;t realize how big a driver that was until they told me that themselves repeatedly. [21:05]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, I can understand that, and like, I don&#39;t think that&#39;s wrong. Like I have worked on so many different apps and so many of them have been like badly broken in different ways. Like shout out to the company I worked at that had a 45 minute Docker build that produced 36 megabytes of webpack output. Had six different copies of the app because every, Each of their six pages was a different entry point, so you literally had to download six copies of the app as you clicked around. [21:16]&lt;/p&gt;
&lt;p&gt;So, like, I&#39;ve lived that. I&#39;ve seen that. That is true. Just facts. Also, I don&#39;t know, I guess it&#39;s maybe just like in this, I feel like it&#39;s an inherent tension to the goals of encouraging deep learning and, setting up default incentives that produce better outputs, better outcomes. [21:43]&lt;/p&gt;
&lt;p&gt;Like, I feel like they&#39;re going very hard at, um, We know that this will produce better outcomes in aggregate. And I don&#39;t think they&#39;re wrong. I think they&#39;re correct to say that. But I don&#39;t think it&#39;s The ideal path for many individual developers. So I feel like this is, this is a tension between micro and macro. [22:04]&lt;/p&gt;
&lt;p&gt;You know, they are taking the macro perspective of in aggregate, this will produce more good. And you and I maybe are looking at the micro of this is not filling the needs for these people specifically. Yeah, [22:23]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yeah, so like, you know, I, I understand the, you know, make, make sure that you use a tool that has all the features you will ever need. So you don&#39;t have to migrate and make sure you use a tool that has all the optimizations built in. So you&#39;re getting good default performance. What it leaves out and ignores, though, is that. [22:39]&lt;/p&gt;
&lt;p&gt;if you&#39;re a learner or a beginner, having fewer knobs and having fewer concepts to worry about is going to make it easier to learn. A lot of companies are in positions where they can&#39;t or don&#39;t want to use Node on the back end. They just want a very simple SPA. Um, there&#39;s a lot of people who, for good or bad reasons, don&#39;t like Node. [22:59]&lt;/p&gt;
&lt;p&gt;The React team&#39;s emphasis on frameworks. They&#39;re suspicious of, you know, the, the incentives in Vercel. And so the React ecosystem is very large and for better or for worse, a lot of people are very happy building React apps the way we have for years. And so my perspective is that the thing that the maintainers should do is Provide recommendations, but also recognize that it is a broad ecosystem and at least say The way you&#39;re using react is valid and we recognize you and support you Even if you&#39;ve made choices that we don&#39;t think are the most optimal and the problem is the one line emphasis on frameworks And the tone of the statements in the docs has basically told half the ecosystem, We don&#39;t care about you, and we think you&#39;re doing it wrong. [23:23]&lt;/p&gt;
&lt;p&gt;Which is not very helpful. [24:17]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. For sure. Right? Like, I wanna, I wanna bring in a strong opinion I have, which is that the world is held together with shoestrings and duct tape. Like, everything in the world barely works. If you look too closely at anything, like, it&#39;s a miracle that things are functional. And, My impression is that the core team is kind of railing against that a little bit. [24:18]&lt;/p&gt;
&lt;p&gt;Like, they wish things worked better. They wish that the world were a little bit more ordered. And they are meaningfully trying to shift, you know, they are exerting their influence on the world as the caretakers for a tool used by literally millions. So, yeah, I don&#39;t know. I guess, circling back a little bit, you had brought up, like, community working group and some chats. It&#39;s very early, but you and I and Jack Harrington and maybe some other folks are talking about what that might mean. What that might look like, what processes might be involved, and what outputs might be produced. [24:39]&lt;/p&gt;
&lt;p&gt;So yeah, I don&#39;t know, maybe ReactiFlex can play a larger role in that conversation, in that, I don&#39;t know, activity. [25:19]&lt;/p&gt;
&lt;h2 id=&quot;backlash-and-confusion-over-initial-version&quot;&gt;&lt;a href=&quot;https://x.com/youyuxi/status/1891721924197351497&quot;&gt;Backlash&lt;/a&gt; and &lt;a href=&quot;https://x.com/youyuxi/status/1892000761778929931&quot;&gt;confusion&lt;/a&gt; over initial version&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yep. So ultimately what happened was they put up the new docs PA and the new blog post and the docs page, and this spawned a bunch of controversy and outcry, lots of arguments on Reddit and Twitter and Blue Sky. And, you know, one ex, one example of this was, Evan You, you know, the Vite creator. Um, putting up a couple of tweets where he said that, you know, like, I, I just don&#39;t understand why the React team is refusing to reasonably recommend Veep. [25:26]&lt;/p&gt;
&lt;p&gt;And, like, I&#39;m, I&#39;m happy to work with them, I just don&#39;t understand where they&#39;re going with this and why. And that actually got kind of a positive response. Rather, strongly worded initial response from a couple of React team devs that later got retracted and there were a bunch of follow on discussions. [25:56]&lt;/p&gt;
&lt;p&gt;But, it&#39;s like, from my perspective, the React team has pretty explicitly stated what their goals are, and no one wants to take those statements at face value, which is Interesting. So last weekend, after like two days after the blog post and the docs updates had gone live, I was sitting around on a Sunday night and I&#39;m like, I could try to offer more feedback and suggestions, but I did that once already and I knew what some of the responses would be and that&#39;s why I offered this feedback and they didn&#39;t take it and apply all of it. So what if I just take this into my own hands? [26:13]&lt;/p&gt;
&lt;h2 id=&quot;mark-filed-a-pr-to-rewrite-the-docs-the-react-team-closed-that-but-based-a-new-one-off-it&quot;&gt;&lt;a href=&quot;https://github.com/reactjs/react.dev/pull/7618&quot;&gt;Mark filed a PR&lt;/a&gt; to rewrite the docs, the React team closed that but &lt;a href=&quot;https://github.com/reactjs/react.dev/pull/7624&quot;&gt;based a new one off it&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And I actually try rewriting the docs page and the blog post myself to try to get across the same message but with a better tone and actually provide better guidance and instruction on using React without a framework. So, I actually filed a PR a week ago that rewrote the docs page. [26:52]&lt;/p&gt;
&lt;p&gt;And the next day the React team actually closed that PR, and I actually got a message on the side from Matt Carroll on the React team who said, you know, like, actually do thank you for doing the work on this, but it&#39;s not quite the direction we want to go with it. [27:14]&lt;/p&gt;
&lt;p&gt;However, they did then open up a new PR that was explicitly intended to address a lot of the feedback from over the weekend. They did copy and paste several of the sections that I had had in my PR, as well as tweaking some other sections. And this did actually get merged. So, it did not have some of the phrasing and the writing approaches that I felt should be in there, but it is legitimately an improvement. [27:30]&lt;/p&gt;
&lt;p&gt;And it does actually meet, I think, a minimum acceptable bar where it says, like, they changed the build a React framework page into build a React app from scratch, which is roughly the phrasing that I had used. And it does actually say, you know, you can use V or Parcel or RSPack and a data fetching library and a router. [27:59]&lt;/p&gt;
&lt;p&gt;And so it&#39;s giving actual instructions And that is linked prominently from the intro paragraph on the main setup page, and it&#39;s linked at the bottom. And the setup page actually explicitly uses the word VEET in a paragraph. And so it&#39;s not ideal, it&#39;s not the exact phrasing I would want, but they did make a second round of changes. [28:24]&lt;/p&gt;
&lt;p&gt;And they did listen to feedback, and I do think it meets a reasonable minimum bar of recognizing that you can use React without a framework, and here are steps to do so. So it&#39;s been painful, it&#39;s still not exactly what I&#39;d like to see, but I think we&#39;ve actually reached an acceptable state at this point. [28:47]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Heck yeah. All right, nice that it&#39;s ended in that spot. We haven&#39;t talked about this, but where have you landed on your giant blog posts? Are you still sitting on those? [29:09]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yeah, I&#39;m sitting on it, so Like I said, part one was a recap of the history of how the React project has been developed, the influences like Meta and Vercell, as well as, you know, dispelling conspiracy theories like Next is dr or Vercell is driving it just to make money. Part two was all the history of, you know, frustrations and good and bad interactions and everything else. [29:18]&lt;/p&gt;
&lt;p&gt;And, you know, part of my goal was to document things, and part of my goal was to drive change. And it&#39;s ended up helping with the change, but indirectly. I did show the draft to the React team after a couple of our conversations, they, you know, frankly, they asked me not to publish it. [29:43]&lt;/p&gt;
&lt;p&gt;they didn&#39;t tell me not to, they said I should consider not publishing, which is. But like, my goal with this was not to burn bridges. Instead, I wanted to push them to make changes to the docs, to make changes to the messaging. And, we talked, and they were listening, and they were in the process of making changes. [30:04]&lt;/p&gt;
&lt;p&gt;So I felt that at a minimum, I ought to at least give them a chance to publish the doc updates and see how things would work out, because they were in the middle of that. And so now that they&#39;ve done some of that, I feel like publishing the post in its current form would be like slamming, hitting them with a sledgehammer after they did some of the thing that I already asked them to do. [30:25]&lt;/p&gt;
&lt;p&gt;And that doesn&#39;t feel good. So where I&#39;m at right now, is I, I still think the first part the history and the conspiracy theories part is probably worth publishing stand alone, and I can probably just extract that. I feel like there&#39;s a lot of useful content in the second part, but I would, I would need to extract and restructure a lot of it, and I haven&#39;t had time to sit down and think about it, and frankly, after, I would actually like to think about something else for a while. [30:44]&lt;/p&gt;
&lt;p&gt;So, I expect to end up publishing some of that content at some point, but it&#39;s not top of my priority list right now. [31:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; That makes sense. Yeah, I actually did sit down with it and four highlighter pens and I feel like there&#39;s like four posts in there. I feel like there&#39;s your personal [31:17]&lt;/p&gt;
&lt;p&gt;experiences of trying to make changes. There&#39;s the, like, summary. Oh, man, just like the oral history you captured of like, here&#39;s how things have evolved over the last, like, nine years. [31:25]&lt;/p&gt;
&lt;p&gt;I feel like is really useful. But Yeah. So cool. Yeah, go sit on it. Don&#39;t think about it. I will come to you with thoughts that I have in a, in a number of weeks. [31:36]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yeah. So overall, it&#39;s been a couple months of, you know, a lot of kind of painful discussion and, and a lot of drama and arguing, but I think we&#39;ve ended up in a fairly good place by the end of it. So Create React app&#39;s officially dead. The docs have been updated. The docs say both, you know, use a framework and those recommendations are updated. [31:47]&lt;/p&gt;
&lt;p&gt;But they also say you can build an app from scratch and here&#39;s concrete instructions on how to do so. The tone is a lot better. So we&#39;ve, we&#39;ve ended up in a fairly good point, but a lot of this has shown that there is a really big gap between, you know, the React team&#39;s vision of where they want to go with React versus how a lot of the ecosystem wants to use React and I, I don&#39;t think that&#39;s going to go away anytime soon. [32:07]&lt;/p&gt;
&lt;p&gt;Yeah. And I, [32:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, would agree. That reminds me of, uh, Posts that I put on Blue Sky. Opinions. I feel like the current, like, conflict is a, an example of the different, perspectives, really. Like, in this post, I say it&#39;s a clash between the indie hackers, the corporate cogs, and the academics. [32:38]&lt;/p&gt;
&lt;p&gt;Where, like, by background, I&#39;m a corporate cog, like, I have always had a large team supporting me. And so, like, I was usually the guy, like, playing around in this code base, trying to make it work better for my colleagues, who were then the ones actually shipping, like, individual features. That&#39;s a very different setting than if you are, you know, an indie hacker doing your own things and just trying to ship features and functionality. [32:59]&lt;/p&gt;
&lt;p&gt;Which is, again, a very different perspective from, the core team, who I&#39;m considering the academics here. Like, I&#39;ve said before in this podcast, like, I strongly feel that the React core team is managed more like a research project than anything else. And, you know, I, some signal in that, in that I got some, I think like two or three of the core team members responded to this. [33:24]&lt;/p&gt;
&lt;p&gt;It was just like a, like, I&#39;m just going to brag that they saw it and engaged. But yeah, like they have, the core team has had a very stable vision for what React could be really since 2013. Like from the beginning, they&#39;ve talked about stuff like algebraic effects and functional programming and, you know, encapsulation component models. [33:47]&lt;/p&gt;
&lt;p&gt;And if you&#39;re like, I&#39;ve been paying close attention to that. So I feel like I have a reasonably clear understanding of what that vision is and has been. And so like, I can see that it&#39;s stable, but I think if you&#39;re not paying close attention to what they&#39;re doing, you&#39;re not watching this research team go. [34:08]&lt;/p&gt;
&lt;p&gt;You&#39;re off dealing with your own projects, shipping code, building features. You know, setting up processes for your team, then I think that. Vision is actually really hard to gather, like just from resources, from reading the documentation, from reading, from following their social media feeds. I think it&#39;s really hard to catch up on what the vision is. [34:27]&lt;/p&gt;
&lt;p&gt;So that&#39;s maybe a gap currently in like what&#39;s available. [34:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And I think that ties a lot into something that the team mentioned to us in the couple calls I had with them. So, like, we just said that they have a vision, and that&#39;s, that&#39;s very accurate and valid. And yet, in a lot of ways, I&#39;ve learned that the vision is almost like a vague, amorphous thing that they&#39;re figuring out as they go. [34:53]&lt;/p&gt;
&lt;p&gt;You know, it&#39;s not that they have, apparently it&#39;s not that, like, literally everyone is driving towards the one true vision all the time. It&#39;s that, in a lot of ways, are individuals going off and experimenting with things, and then it&#39;s almost every so often they get together and figure out, okay, we&#39;ve played around with a lot of ideas. [35:13]&lt;/p&gt;
&lt;p&gt;do we have a consensus on where we&#39;re going? And like, one of the things they said was that, you know, like, I&#39;ve complained that they put up very infrequent updates on the blog, on, in terms of like, roadmaps and where they&#39;re going. Like, they&#39;ve put up three React Labs posts almost like a year apart. [35:32]&lt;/p&gt;
&lt;p&gt;And my assumption reading those was that, oh, well, like, clearly they already know what they&#39;re doing, and the blog posts are just documenting that plan. And Matt Carroll said it&#39;s actually the opposite. Like, they sort of look around at each other, it&#39;s like, we probably ought to put up an update post. What are we working on and do we have agreement on where we&#39;re going and so that the blog posts actually take them multiple months to write because it&#39;s almost like a forcing function to figure out like and actually nail down where they&#39;re headed. [35:51]&lt;/p&gt;
&lt;p&gt;So that was actually really really surprising for me to hear. [36:26]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, and you know what it made me think of? The valve management structure, the flat Non hierarchical, anyone can work on whatever interests them, and if you want to get a project done, you have to pitch it to your colleagues. Which was famously, I don&#39;t know, Valve has its own vibe, and I don&#39;t know, it&#39;s like the vibe of Valve is not super far off from the vibe of React releases. [36:30]&lt;/p&gt;
&lt;p&gt;You know, the uh, indefinite delays and lack of communication. So, yeah. [36:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So, you know, I, I think we&#39;re going to see them continue to push forward. I mean, even just in the last few weeks, seeing Sebastian working on implementing Vue transition support and some other pieces like that, they&#39;re going to keep building on these things and it&#39;s great to see the forward 19&#39;s out, but you know, there, there&#39;s a lot of people out there that are just very happy to keep using React essentially the way they have. [36:58]&lt;/p&gt;
&lt;p&gt;And there&#39;s going to continue to be a mismatch because what they&#39;re, well, what they&#39;re doing is absolutely valid and fine at a technical level. It&#39;s not the direction that the React team is trying to push. And so that leaves a lot of people feeling. You know, left out, unsupported, on the outside, and in the worst cases, concerned that somehow, like, client side React is going to stop functioning someday, just because it&#39;s not part of the server emphasis. [37:25]&lt;/p&gt;
&lt;p&gt;And I mean, anyone can look at, like, you want to be able to look at that and realize it&#39;ll never happen, but it shows you some of the, the vibes and the extrapolation happens that leave people concerned. Um, [37:57]&lt;/p&gt;
&lt;h2 id=&quot;between-the-wires-an-interview-with-mootools-contributors&quot;&gt;&lt;a href=&quot;https://www.freecodecamp.org/news/between-the-wires-an-interview-with-mootools-contributors-33d764957575/&quot;&gt;Between the Wires: An interview with MooTools contributors&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, I feel like I re share this every couple of months, but I want to share again this resource from FreeCodeCamp where they interviewed a bunch of the React core team through the lens of let&#39;s talk about your past work on MooTools. So, like, this is, a now 8 year old interview with, Sebastian Morkabug, whose name I&#39;m sure I&#39;m saying incorrectly, but it&#39;s as close as I can get, Tom, Tom Acino and Christoph Poyer, now, Christoph Nakazawa, I believe. Those are still Major players in the current React world, and they have been collaborating since 2009. So, like, they are coming up on 16 years of working together on foundational tools for the web. Like, I never personally used Mutools. But it was a, you know, meaningful minority use tool competing with jQuery. [38:09]&lt;/p&gt;
&lt;p&gt;And it remained relevant because I think in like 2014, 15, something like that, they wanted to do, wanted to release a new array tool, you know, an array primitive. And they couldn&#39;t because MooTools hadn&#39;t yet been released. But yeah, FlatMap, that was it. That was the one, FlatMap. SmooshGate. They couldn&#39;t release the standard because Mutools had monkey patched the Array object with its own FlatMap that was incompatible with the standard, and so releasing this would have broken the web. [39:09]&lt;/p&gt;
&lt;p&gt;So, like, this team, the core team, has, more than ten years ago, First hand experience with what it means to engage with standards and what it means to break the web. So, like, that&#39;s part of why I give them so much leeway and, like, kudos on their approach. Because, like, they know how bad it is to get it wrong. [39:40]&lt;/p&gt;
&lt;p&gt;They know that a decision you made 15 years ago can have lingering echoes. That prevent future work from happening. [40:04]&lt;/p&gt;
&lt;p&gt;And like, that&#39;s a really hard lesson to learn. It&#39;s a really hard lesson to apply. [40:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; The web is forever. [40:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; The web is forever. [40:18]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So, it&#39;s, one of the other interesting points that came out of the discussions with Matt is that the React docs are very much aimed at beginners. And it&#39;s not just the tutorial, it&#39;s the setup guides. And I think that&#39;s, that&#39;s also some of the tension here is that people are not looking at the setup instructions page and saying, Oh, this list of tools is especially oriented for beginners. [40:19]&lt;/p&gt;
&lt;p&gt;I know what I&#39;m doing. I can make, make my own choices. And that&#39;s fine. People have been looking at that page and saying, well, it doesn&#39;t explicitly list VEET. Therefore, the React team must have something against Vite. It&#39;s somehow bad to use Vite, et cetera. And in my, in my own draft PR, I had tried to rework some of their, their own paragraphs and phrases into a page on web app architectures to provide some guidance on like, what is a server, like a single page app versus multi page versus SSR versus SSG. [40:48]&lt;/p&gt;
&lt;p&gt;When might you want to use one versus the other? As a way of, like, applying some guidance to choosing a build tool. And they don&#39;t seem to want to go that direction yet, because it&#39;s not, in essence, it&#39;s not something a beginner should be worrying about immediately. And so I think that&#39;s another piece of the tension. [41:24]&lt;/p&gt;
&lt;p&gt;In what people want to see listed in the docs recommendations versus React team actually is willing to cover, which then ties back to the thing that Carl and I have been tossing around, which is, what if we had, A fully community written set of recommendations and docs and guidance for using React in the real world as a supplement to the beginner oriented, getting started level official React docs. [41:46]&lt;/p&gt;
&lt;p&gt;So we&#39;re still trying to figure out what that might look like and what the content might be. In fact, we&#39;re supposed to be talking about it literally right after this, [42:20]&lt;/p&gt;
&lt;p&gt;but that&#39;s sort of a pitch. Like if the React docs are going to explicitly focus on the beginner use case, then it&#39;s kind of up to the community to officially, to quote unquote, officially document what it&#39;s like to expand beyond that. [42:28]&lt;/p&gt;
&lt;p&gt;And how to use React properly in the real world. It&#39;s something that I, I had played around with trying to pitch this kind of a community doc site idea a few years ago. It didn&#39;t get off the ground and I&#39;m, I&#39;m hopeful that maybe this time around we can make something like that work. [42:43]&lt;/p&gt;
&lt;h2 id=&quot;how-to-start-a-react-project-2025&quot;&gt;&lt;a href=&quot;https://www.robinwieruch.de/react-starter/&quot;&gt;How to start a React Project [2025]&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So as an example of this, Robin Weirich, who&#39;s a prolific React author and, tutor, Has put up a number of blog posts over the years with advice on, you know, common React libraries and tools. And so he&#39;s updated his post on how to start a React project for 2025 with a set of recommendations. And it&#39;s interesting to note how this is different than the actual React Docs setup page, because this one actually starts with prefer using Vite as the starting point. [42:58]&lt;/p&gt;
&lt;p&gt;, actually discusses some trade offs, both pros and cons, for all the different tools. Talks about using Next, talks about using Astro, which the React docs don&#39;t mention at all. And so it&#39;s the same problem space, but a very different approach to describing what your choices are than the actual setup page. [43:30]&lt;/p&gt;
&lt;p&gt;And on a similar note, So, with Create React app itself actually being officially deprecated. [43:50]&lt;/p&gt;
&lt;h2 id=&quot;jack-herrington-published-create-tsrouter-app-under-the-tanstack-umbrella&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/tannerlinsley.com/post/3lif6fdpzkw2s&quot;&gt;Jack Herrington published &lt;code&gt;create-tsrouter-app&lt;/code&gt;&lt;/a&gt; under the Tanstack umbrella&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Jack Harrington actually put together a Vite based starter kit called Create TS Router App with the idea that it would be a, basically a drop in replacement. For the old create react app command that you get a basically like instead of running create react app, you run create TS router app, you get a Vite based project with TanStack router built in. [43:56]&lt;/p&gt;
&lt;p&gt;It has the same starting. Application component content and basically equivalent features, but you&#39;re starting with a modern set of functionality. You have routing built in, whereas CRA didn&#39;t come with a router. You can expand to file based routing if you want to. So, this has been moved into the TANstack organization, and it&#39;s now an official TANstack project, and it feels like a pretty useful tool. [44:23]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, I actually had talked to Jack, just coincidentally, not about this, shortly before he released that tool. And he, just talking to him about, like, create react app and the legacy of it, I realized that, like, the original, promise of create react app was for it to be an abstraction over your build tool. [44:49]&lt;/p&gt;
&lt;p&gt;Over all of the build tools, and I hadn&#39;t really considered that that was really kind of, that promise never really realized, like, we, yeah, we had it for a while, but It took years for it to update from Webpack 4 to 5, for instance, and then it never released again. So it would, like, I remember at work arguing in support of using create react app instead of doing our own tooling, because, like, let&#39;s just never think about tooling again and just stay within the sandbox and get better. [45:09]&lt;/p&gt;
&lt;p&gt;What we need out of it. And that promise just never quite happened. So yeah, I don&#39;t know that just Hearing it, hearing this TS router, create TS router tool Build as like sort of a drop in replacement for it It is a drop in replacement for the functionality But it does not even attempt to provide that same kind of like social contract promise of future maintenance Just inaccurate, correct. [45:38]&lt;/p&gt;
&lt;p&gt;I mean, Create React app never lived up to that promise either, [46:03]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I would actually have a slightly different opinion. I would say it mostly fulfilled that promise. I would, I would agree that it never, it didn&#39;t achieve the goal of eliminating the need to think about build tools. In the cases of like the Webpack upgrade or, you know, the fact that the, The blackboxing of the webpack config meant you needed third party tools to alter the config, etc. [46:05]&lt;/p&gt;
&lt;p&gt;So like, it didn&#39;t make those parts go away, but it did succeed in giving you a single command that would start a project without having to spend time on creating the build config yourself. Or using a boilerplate project or copy pasting it from your last working config. And that did enable tutorials to just say, run, create React app, and now let&#39;s start learning React, which was a big goal, as well as making it actually useful for real world, real world projects. [46:30]&lt;/p&gt;
&lt;p&gt;So it didn&#39;t eliminate those concerns entirely, but I think it sufficiently succeeded in the goals of not having to think about it just to get started. [47:01]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I would agree with that. I understood it to be, to have a larger scope in mind of being an enduring abstraction that would evolve over time. And that didn&#39;t happen. Yeah. Anyway, Yeah. [47:10]&lt;/p&gt;
&lt;h2 id=&quot;-lightning-round-&quot;&gt;⚡ Lightning round ⚡&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Oh man, we have so many lightning round links [47:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Lightning Round! [47:25]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, cool. All right, we&#39;re going to fly through this a little bit. [47:26]&lt;/p&gt;
&lt;h2 id=&quot;vercel-acquires-tremor&quot;&gt;&lt;a href=&quot;https://vercel.com/blog/vercel-acquires-tremor&quot;&gt;Vercel acquires Tremor&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Uh, Vercel bought an open source React, toolkit, which is interesting to me. Like, I hadn&#39;t heard about this in advance, but like, Tremor is apparently a open source React dashboard tool that was funded by Y Combinator in 2023, and now Vercel has bought them. So like, I don&#39;t really understand what it means for an open source library to be venture backed. [47:29]&lt;/p&gt;
&lt;p&gt;, but like I&#39;m generally supportive of it. Like I would love it if open source maintainers could paid for the work that they do, which is meaningful and impactful and takes a lot of effort. It&#39;s a little bit unfortunate to me that the model by which you can get paid for that work seems to be rich dudes in tech decide that they&#39;re going to give you money and then other rich dudes in tech buy that work from you. [47:53]&lt;/p&gt;
&lt;p&gt;But yeah, that was just interesting. That seems like an outlier. I have not heard of very many open source tools either getting VC funding or getting acquired. Really, Remix is the only other example that comes to mind. [48:18]&lt;/p&gt;
&lt;h2 id=&quot;things-people-get-wrong-about-electron&quot;&gt;&lt;a href=&quot;https://felixrieseberg.com/things-people-get-wrong-about-electron/&quot;&gt;Things people get wrong about Electron&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, I saw a fun post titled, Things People Get Wrong About Electron. And just sort of a fringe at, you know, a fringe post talking about tech kind of at the margins. [48:29]&lt;/p&gt;
&lt;p&gt;Like, I have written a re an Electron app in, like, 2015. Oh my god, 10 years ago. Ugh, I&#39;m so old. But yeah, just, it&#39;s neat. It&#39;s fun to see such a different context for the web. Definitely recommend checking that out. Just as a, as a curiosity, really. [48:41]&lt;/p&gt;
&lt;h2 id=&quot;initial-observables-support-in-chrome-135-observable-api&quot;&gt;&lt;a href=&quot;https://x.com/BenLesh/status/1893053275995357608&quot;&gt;Initial Observables support in Chrome 135&lt;/a&gt;, &lt;a href=&quot;https://chromestatus.com/feature/5154593776599040&quot;&gt;Observable API&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So, there&#39;s been a decade long effort to try to get some form of observables baked into the browser. Ben Lesh of RxJS has been beating this drum for years, and it looks like they&#39;ve finally succeeded in getting some of it. Some form of observables actually baked into the browser. It seems partially limited in scope, partially related to, event handlers, but I think it&#39;s at least a starting point for adding this kind of an API directly. [48:57]&lt;/p&gt;
&lt;p&gt;And so Ben&#39;s pretty excited about that. Also on, also on the note of just, you know, really good deep dive technical articles. [49:25]&lt;/p&gt;
&lt;h2 id=&quot;why-i-rebuilt-prosemirrors-renderer-in-react&quot;&gt;&lt;a href=&quot;https://smoores.dev/post/why_i_rebuilt_prosemirror_view/&quot;&gt;Why I rebuilt ProseMirror’s renderer in React&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; someone who used to work for the New York Times talked about taking the pros mirror rich text editing library, which is partially react related, but partially independent. [49:33]&lt;/p&gt;
&lt;p&gt;, and rebuilding the ProseMirrorRenderer directly in React on top of the data structures. Great article, very well written. [49:43]&lt;/p&gt;
&lt;h2 id=&quot;javascript-temporal-is-coming&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/blog/javascript-temporal-is-coming/&quot;&gt;JavaScript Temporal is coming&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[49:52]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Mozilla had a post at the end of January, about Temporal. JavaScript Temporal is coming. Dates in JavaScript are garbage. They are awful. My favorite example of a specific way they&#39;re awful is that they have no concept of time zone. And so every date uses your local system time zone, Which is absolutely awful. [49:53]&lt;/p&gt;
&lt;p&gt;If you&#39;re trying to do anything involving time in two different locations, [50:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; is why we&#39;ve had Moment and DateFunctions and Lexon and who knows how many other libraries. [50:18]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; All fine. So Temporal is a new, date standard tool, standard library for JavaScript doing dates and it&#39;s coming. I hope it&#39;s good. I haven&#39;t really played with it. I tend, I don&#39;t want to think about dates, so I don&#39;t want to think about them any more than I have to. And so I haven&#39;t really looked at this. [50:24]&lt;/p&gt;
&lt;p&gt;It&#39;s coming. It&#39;s soon. That was a good post. [50:41]&lt;/p&gt;
&lt;h2 id=&quot;do-javascript-frameworks-still-need-portals&quot;&gt;&lt;a href=&quot;https://fullystacked.net/portal/&quot;&gt;Do JavaScript frameworks still need portals?&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; this was kind of neat. Do JavaScript frameworks still need portals? React has had portals for a long time for like, rendering stuff like modals or tooltips or popovers that exist like, outside of the hierarchy, quote unquote. Just sort of as a way of rendering something within the component tree, but not having the DOM output be in the same hierarchy. [50:44]&lt;/p&gt;
&lt;p&gt;And that comes with all sorts of quirks and weird bits. Like z index can get really weird. Think it&#39;s awkward and funky for like cross platform stuff. I don&#39;t know how well it works in React Native or, you know, other contexts to make use of these portals. So just like this was a kind of fringe topic, like how often do you think about using React portals? [51:07]&lt;/p&gt;
&lt;p&gt;And so just like reevaluating, like, are they still necessary? Do they still, is the problem that they were introduced to solve Still relevant in 2025. And I thought that was a good question to ask regardless of what the answer is. [51:33]&lt;/p&gt;
&lt;h2 id=&quot;what-do-we-do-with-you-old-react&quot;&gt;&lt;a href=&quot;https://www.manuelsanchezdev.com/blog/what-to-do-with-old-react-upgrading-to-modern-react&quot;&gt;What Do We Do with You, Old React?&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; we&#39;ve had years of migrating from other frameworks to React, and we&#39;ve now had two or three different eras of different styles of React code. So, now you can migrate and modernize your old React code to modern React code. And so there was a good post called, what do we do with you old React that just gave some quick examples of migrating from things like class components to function components and old Redux to modern Redux and old testing approaches to React testing library. [51:46]&lt;/p&gt;
&lt;p&gt;, nothing fancy. A lot of this has been covered elsewhere, but it was a good, useful summary. [52:14]&lt;/p&gt;
&lt;h2 id=&quot;records-and-tuples-proposal-is-now-composites&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/littledan.dev/post/3liwo57opl22b&quot;&gt;“Records and Tuples” proposal is now “Composites”&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And finally, for the last couple, last few years, we&#39;ve had a work in progress TC39 proposal called records and tuples, which was an attempt to build fully deeply equal objects and arrays directly into the runtime so that you don&#39;t have, so that you could just use like the triple equals operator and it would do like a deep equality comparison of all the fields rather cheaply, rather than having to use a library like immutable. [52:18]&lt;/p&gt;
&lt;p&gt;js. And this proposal has apparently just undergone a significant revision. It&#39;s, I guess it&#39;s no longer even called records and tuples, and instead they&#39;re calling the objects composites instead, and you would need to call a specific composite. Equals method to compare them. I saw the tweet, I skimmed through the readme of the summary of the changes, I have not had a chance to look through the slides yet, but it&#39;s interesting to see how this proposal keeps evolving. [52:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Neat. Super cool. Oh yeah. That was all of our lightning round links in like less than 10 minutes. For sure. Proud of [53:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; us! [53:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool. Thank you everyone for joining us. That&#39;s all we got this month. We&#39;ll be back on the last Wednesday of the month, for real this time, I think. [53:25]&lt;/p&gt;
&lt;p&gt;, uh, we&#39;ll be back at the end of the month in the live stage here in React to Flux or back in your podcast feed just as soon as we can after that. I try to get it by the first of the month, but not always. We gather sources from This Week in React, Bytes. Dev, React Status, Next. Js Weekly. The React. Js subreddit, here in  Reactiflux, and directly from those publishing articles as well. If you see anything newsworthy, definitely let us know in the tech news and reads channel here in  Reactiflux, or shoot us an email at hello at  Reactiflux dot com, with TMIR in the subject line if you can. I read literally everything that comes in, even spam and whatever, so if you send it, I&#39;ll read it for sure. [53:32]&lt;/p&gt;
&lt;p&gt;And if this is a show that you get value from and want to support, the best way you can do so is by either submitting a review or telling your friends and coworkers about it. Like, if this was useful, just like, send it to one other person. That would actually do a lot for us. Cool! Thank you so much for joining us! [54:09]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Thanks, appreciate it, and hopefully we&#39;ll have less drama to talk about next month. [54:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Maybe. [54:28]&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2025-02</link><guid isPermaLink="false">reactiflux-tmir-2025-02</guid><pubDate>Sun, 23 Feb 2025 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>TMiR 2025-01: Movement on CRA, Redwood.js dead?</title><description>&lt;iframe src=&quot;https://creators.spotify.com/pod/show/reactiflux/embed/episodes/TMiR-2025-01-Movement-on-CRA--Redwood-js-dead-e2u8ofd&quot; height=&quot;102px&quot; width=&quot;400px&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-01#job-market-fred-data-layoffsfyi&quot;&gt;01:29&lt;/a&gt;]&lt;/code&gt; Job market: &lt;a href=&quot;https://fred.stlouisfed.org/series/IHLIDXUSTPSOFTDEVE&quot;&gt;FRED data&lt;/a&gt;, &lt;a href=&quot;https://layoffs.fyi/&quot;&gt;Layoffs.fyi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-01#sponsored-by-infinite-red&quot;&gt;03:09&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://docs.google.com/document/d/1V-wc6YRW7TeKSREPxREI70vfIyA0vVmVbYKr6sU2jZc/edit&quot;&gt;Sponsored by Infinite Red&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-01#new-releases&quot;&gt;04:17&lt;/a&gt;]&lt;/code&gt; New releases
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-01#react-query-563&quot;&gt;04:26&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/tkdodo.eu/post/3lfaeteulds2i&quot;&gt;React query 5.63&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-01#docusaurus-37&quot;&gt;04:45&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://docusaurus.io/blog/releases/3.7&quot;&gt;Docusaurus 3.7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-01#react-native-audio-api&quot;&gt;05:17&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://blog.swmansion.com/hello-react-native-audio-api-bb0f10347211&quot;&gt;React Native Audio API&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-01#main-content&quot;&gt;07:30&lt;/a&gt;]&lt;/code&gt; Main Content
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-01#cra-deprecation-react-team-against-recommending-vite&quot;&gt;07:30&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/acemarke.dev/post/3lggg6pk7g22o&quot;&gt;CRA deprecation, React team against recommending Vite&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-01#dans-why-cra-exists-dont-use-it-possible-future-options-comment-from-2023&quot;&gt;09:28&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/reactjs/react.dev/pull/5487#issuecomment-1409720741&quot;&gt;Dan’s “why CRA exists, don’t use it, possible future options” comment from 2023&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bsky.app/profile/danabra.mov/post/3lggs4ql72k2w&quot;&gt;Dan: “turn CRA into a launcher” still on the table, but stuck&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;a href=&quot;https://github.com/facebook/create-react-app/issues/17004&quot;&gt;“CRA is broken and not deprecated” umbrella issue&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/facebook/create-react-app/issues/17004#issuecomment-2620263140&quot;&gt;Ricky merged the PRs, working on legacy docs SEO redirects&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-01#revealed-reacts-experimental-animations-api--motion-blog&quot;&gt;37:46&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://motion.dev/blog/reacts-experimental-view-transition-api&quot;&gt;Revealed: React&#39;s experimental animations API - Motion Blog&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-01#main-pr&quot;&gt;37:59&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/facebook/react/pull/31975&quot;&gt;Main PR&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-01#static-hermes-update&quot;&gt;40:17&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/tmikov/status/1869945330638442651&quot;&gt;Static hermes update&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-01#react-native-hosting-with-eas&quot;&gt;42:38&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://expo.dev/blog/expo-announces-eas-hosting-service&quot;&gt;React Native Hosting with EAS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-01#everything-you-need-to-know-about-nodejs-type-stripping&quot;&gt;44:44&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://satanacchio.hashnode.dev/everything-you-need-to-know-about-nodejs-type-stripping&quot;&gt;Everything You Need to Know About Node.js Type Stripping&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-01#composable-caching-with-nextjs&quot;&gt;47:57&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://nextjs.org/blog/composable-caching&quot;&gt;Composable Caching with Next.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-01#thoughts-on-what-rsc-means-for-spas&quot;&gt;51:56&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://blog.axlight.com/posts/thoughts-on-what-rsc-means-for-spas/&quot;&gt;Thoughts on What RSC Means for SPAs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-01#chromes-2024-recap-for-devs&quot;&gt;52:44&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://developer.chrome.com/blog/chrome-2024-recap&quot;&gt;Chrome&#39;s 2024 recap for devs&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-01#shoutout-webstatusdev&quot;&gt;53:39&lt;/a&gt;]&lt;/code&gt; Shoutout &lt;a href=&quot;https://webstatus.dev/&quot;&gt;webstatus.dev&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-01#-lightning-round-&quot;&gt;54:26&lt;/a&gt;]&lt;/code&gt; ⚡ Lightning round ⚡
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-01#redwoodjs-shutting-down&quot;&gt;54:26&lt;/a&gt;]&lt;/code&gt; Redwood.js 😱&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-01#a-checklist-for-your-tsconfigjson&quot;&gt;55:59&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://2ality.com/2025/01/tsconfig-json.html&quot;&gt;A checklist for your &lt;code&gt;tsconfig.json&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-01#recoil-repo-archived&quot;&gt;56:30&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/dai_shi/status/1875910305802514649&quot;&gt;Recoil repo archived&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-01#bun-firstclass-support-for-s3&quot;&gt;57:47&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/bun.sh/post/3legdozw3nc2p&quot;&gt;Bun: first-class support for s3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-01#interpolate-auto-height-for-animations&quot;&gt;58:48&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/joshwcomeau.com/post/3lf5zwg2ths22&quot;&gt;Interpolate &lt;code&gt;auto&lt;/code&gt; height for animations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-01#free-javascript-oracle-not-voluntarily-releasing&quot;&gt;59:47&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/deno.land/post/3lfapjn7gns2w&quot;&gt;Free javascript; Oracle not voluntarily releasing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-01#understanding-react-server-components--tony-alicea&quot;&gt;01:00:31&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://tonyalicea.dev/blog/understanding-react-server-components/&quot;&gt;Understanding React Server Components | Tony Alicea&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2025-01#follow-us-on-bluesky&quot;&gt;01:02:13&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/tmir.reactiflux.com/post/3lc6ziumnq22p&quot;&gt;Follow us on Bluesky!&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Hello! Thank you everyone for joining us for the January edition of This Month in React, where we recap and digest the recent developments in the ever evolving React and web ecosystem. We&#39;re coming to you live from Reactiflux. The place for professional React developers. We are supported by Infinite Red, a consultancy that exclusively works with React Native. [00:19]&lt;/p&gt;
&lt;p&gt;I am Carl, I am a staff product developer and freelance community manager here at Reactiflux, where I run community programs like this and Star Helpers and some other stuff, and just generally try to keep the community humming nice and smoothly. [00:32]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Hi, I&#39;m Mark. My day job is working at Replay, where we&#39;re building a time traveling debugger for JavaScript and other fancy uses of introspecting application behavior. Outside of that, I do Redux, and I apparently argue with people about the right way to use React. [00:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; And I am Mo. I head the mobile team at Theodo. And I am involved in the React Native ecosystem, where I frequently jet off to some of the different conferences, meeting some lovely folks in the community and help organize the London community with the React Native London Conference and the meetups that we run monthly. [01:04]&lt;/p&gt;
&lt;p&gt;Yeah, very excited to be here, as every month. [01:07]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah I feel like There has been some stuff, just not like a wide range of libraries and whatever, but yeah, I think we&#39;ll definitely find a lot to talk about. Uh, Actually this month, Mark is not only a pundit, but active participant in the ecosystem, [01:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; am making the news. [01:26]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; making the news and then reporting on it. Cool.&lt;/p&gt;
&lt;h2 id=&quot;job-market-fred-data-layoffsfyi&quot;&gt;Job market: &lt;a href=&quot;https://fred.stlouisfed.org/series/IHLIDXUSTPSOFTDEVE&quot;&gt;FRED data&lt;/a&gt;, &lt;a href=&quot;https://layoffs.fyi/&quot;&gt;Layoffs.fyi&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, let&#39;s start off briefly, overview of the job market tech. Man, you know what? I thought it was like recovering a little bit, but I&#39;m looking at the metrics and like, okay, the FRED data, some Federal Reserve data source, it only shows job postings to Indeed, so like that&#39;s a pretty narrow slice. [01:50]&lt;/p&gt;
&lt;p&gt;Who knows what other activity is happening, but like, presumably they&#39;re publishing it because they believe it&#39;s a reasonable proxy for the broader market. And it keeps going down! It just keeps going down. I don&#39;t know, hopefully that&#39;s just an indicative of Indeed, like, not being the place where people hire software engineers, which, you know It&#39;s probably, likely true? [02:09]&lt;/p&gt;
&lt;p&gt;I don&#39;t know. But yeah, it&#39;s just lower and lower every month it looks like. It&#39;s lower in January than it was in December, and December was lower than November. So, that&#39;s not great. Layoffs are also trending down. There&#39;s not as many people getting laid off anymore. But there was a bit of a spike in January this month. [02:26]&lt;/p&gt;
&lt;p&gt;Looks like 5, 200 people were laid off from 20 companies. Yeah, that&#39;s fewer companies than December, but like twice as many people, so that sucks. I think a lot of those are coming from a small number of companies. Yeah, Meta laid off 3, 600 employees two weeks ago. So yeah, job market is maybe not gonna be As improving as quickly as I hoped it might from some early indications towards the end of the year and in the first couple weeks of 2025. [03:00]&lt;/p&gt;
&lt;p&gt;But conferences still don&#39;t have a ton of queued up ones. I think people are still getting their ducks in a row with planning and scheduling for 2025.&lt;/p&gt;
&lt;h2 id=&quot;sponsored-by-infinite-red&quot;&gt;Sponsored by &lt;a href=&quot;https://infinite.red/&quot;&gt;Infinite Red&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; like I said in the open, we are sponsored by Infinite Red. They are currently our only sponsor. But we don&#39;t communicate with them about, like, editorial or anything like that. They gave us some money, and I shot them out. Woo! They are an expert React Native consultancy that&#39;s been around since 2015. [03:22]&lt;/p&gt;
&lt;p&gt;And they&#39;re our only sponsor in part because so few companies do as much as they do for the ecosystem. They, put out a newsletter. They host the largest React Native podcast. They run, I think, the largest US based conference. Specifically on React Native and generally they are just like great people who do good work. [03:44]&lt;/p&gt;
&lt;p&gt;They have built over 75 apps for companies ranging from startups to the biggest in the world and they generally work with your team to help you develop expertise, not just build the app for you and get out of there. So yeah, if your company is looking at starting up a new React Native project, definitely consider reaching out to them. [04:02]&lt;/p&gt;
&lt;p&gt;They are infinite. red. [04:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I&#39;ve met Jamon a couple times and seen some of his discussions online. He&#39;s a good guy. [04:09]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I mean, they&#39;re our sponsor because I met him at a conference and just sort of chatted idly about what we were doing. He was like, yeah, that sounds good. Let&#39;s talk more. great dude.&lt;/p&gt;
&lt;h2 id=&quot;new-releases&quot;&gt;New Releases&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; into some new releases. Not a ton this month, in part because I&#39;ve been distracted with some other projects and have not paid quite as close an eye as I would have preferred.&lt;/p&gt;
&lt;h2 id=&quot;react-query-563&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/tkdodo.eu/post/3lfaeteulds2i&quot;&gt;React query 5.63&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; But React Query put out 5.63 looks like, you know, I mean, it&#39;s a 63 point release, like there&#39;s, it&#39;s gonna be some fine tune and revisions, but uh, looks like they added an ability to unsubscribe an observer from the cache which should help in React Native. So, yeah, PanStack, great, great resource.&lt;/p&gt;
&lt;h2 id=&quot;docusaurus-37&quot;&gt;&lt;a href=&quot;https://docusaurus.io/blog/releases/3.7&quot;&gt;Docusaurus 3.7&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Docusaurus also put out version 3.7, so if you&#39;re using that, consider upgrading. Great [04:52]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; actually updated the Redux Toolkit doc site from DocuSource 2 to DocuSource 3, and it&#39;s definitely some improvements. thing I think was in 3.6, previously they&#39;ve always used Webpack as their build tool. And with 3.6, they introduced an experimental option to use the RS Pack, Webpack re implementation in Rust for faster builds, and it definitely did seem to speed things up,&lt;/p&gt;
&lt;h2 id=&quot;react-native-audio-api&quot;&gt;&lt;a href=&quot;https://blog.swmansion.com/hello-react-native-audio-api-bb0f10347211&quot;&gt;React Native Audio API&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah Mo, you want to talk about the React Native Audio API? [05:20]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; so this one is really, Interesting. Because for the longest time, obviously, like, the Web Audio API is incredibly mature. It gives you so much functionality, you can make some really cool stuff with it. So if you&#39;re trying to do anything with audio, like, I don&#39;t know get information about your audio sources, run it through effects Be able to generate audio graphs, you know, things like showing wave, waveforms and stuff like that. On the React Native side, it&#39;s a lot more difficult to achieve similar things because you&#39;re dealing with native level APIs, they&#39;re not standardized and you may end up having to just write some code yourself to be able to do that on the native layer per platform and to try to achieve similar things. [06:07]&lt;/p&gt;
&lt;p&gt;So, the example that is quite common is generating wavelengths. I&#39;ve tried to generate wavelengths on the client for certain files. Not a very easy task to do, it turns out. So some functionalities like that are just so much easier to do on the web. [06:21]&lt;/p&gt;
&lt;p&gt;And so the folks at Software Mansion have recently started building out A React Native audio API, and so the whole idea is, let&#39;s try to bring over the Web Audio API, which is incredibly mature, very standardized, and high performance, into the React Native scene, so that you can have the same levels on control and playback as you do on the web, and standardize it. [06:46]&lt;/p&gt;
&lt;p&gt;It fits quite well into the sort of universal app story where you want to standardize around web APIs because they&#39;re mature and allow native developers to ingest the same ones but delegate the implementation and the runtime of those APIs onto the native layer. So this is quite cool. It&#39;s still early days. [07:06]&lt;/p&gt;
&lt;p&gt;And it&#39;s, it&#39;s not, you know, ready and it doesn&#39;t have all the bells and whistles that you have in the web, but it is a very, very good step in the right direction. And so I, I&#39;m super excited to see how this evolves over the next few months and years, I guess. [07:21]&lt;/p&gt;
&lt;h2 id=&quot;main-content&quot;&gt;Main content&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool our main content. So this is our first episode of the year. I was thinking that we&#39;d discuss a little bit about what we&#39;d like to see, but,&lt;/p&gt;
&lt;h2 id=&quot;cra-deprecation-react-team-against-recommending-vite&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/acemarke.dev/post/3lggg6pk7g22o&quot;&gt;CRA deprecation, React team against recommending Vite&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Mark, you want to start us off talking about Create React App and we we can springboard from there [07:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; gladly. So, React 19 came out last month, in the culmination of, couple plus years worth of technical effort from the React team, and we&#39;ve all been very excited about that huge jump forward for the ecosystem. Thanks But it also had some unexpected technical side effects, and the technical problems have then spiraled into drama. [07:57]&lt;/p&gt;
&lt;p&gt;And I actually happen to be squarely in the middle of that. So I&#39;m going to be describing things, I am both a participant and an observer. And we&#39;ll go from there. So Create React App came out in late 2016, early 2017, and it was designed for a couple of purposes. The whole point was make it really easy to start a new React project with a good default build config out of the box with one command. [08:23]&lt;/p&gt;
&lt;p&gt;You know, previously you had to spend a lot of time configuring yourself. And so part of this was to make it easy for beginners to start a new project and be able to focus on trying and learning and using React. And it also, you know, had, you know, was perfectly fine for actual production projects as well. [08:42]&lt;/p&gt;
&lt;p&gt;And so Create React App succeeded wonderfully. It became the default standard, you know, set up for tutorials. Lots of companies used it for actual apps, but over the next few years, you know, other build tools came out, things that were faster than Webpack CRA was having trouble kind of keeping up with, you know, some of the maintenance demands. [09:03]&lt;/p&gt;
&lt;p&gt;They were very slow, you know, dealing with the, the Webpack upgrade. [09:07]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right [09:07]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And by like 2022, Create React App was actually kind of basically unmaintained. Now, even though it was in the Facebook GitHub org the last people maintaining it were not even Facebook employees or, or part of the React team. And it basically like a ton of issues had piled up.&lt;/p&gt;
&lt;h2 id=&quot;dans-why-cra-exists-dont-use-it-possible-future-options-comment-from-2023&quot;&gt;&lt;a href=&quot;https://github.com/reactjs/react.dev/pull/5487#issuecomment-1409720741&quot;&gt;Dan’s “why CRA exists, don’t use it, possible future options” comment from 2023&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So in, I think it was early 23 Theo Brown put up an issue saying we should mark Create React App as deprecated and we should point people to use Vite instead. That&#39;s it. And, you know, he, the issue got, you know, went viral and it collected tons and tons of thumbs ups and eventually Dan Abramov responded and wrote a massive detailed reply saying, saying, here&#39;s why Create React App exists. [09:55]&lt;/p&gt;
&lt;p&gt;We see that the ecosystem has changed. We&#39;ve also been changing some of our thinking about the right ways to use React. And here&#39;s five possible futures for the Create React app tool, ranging from kill it completely to, modernize it, to change the CLI tool to be a multi launcher that would end up pointing to, creating a next app or uh, remix app or something. And that&#39;s where things kind of left off. You know, lots of people read that comment. The community just sort of absorbed the knowledge that you&#39;re not supposed to use Create React App anymore and everyone asking questions about how should I start a project was told, use something else. But Create React App itself never formally got deprecated. [10:40]&lt;/p&gt;
&lt;p&gt;The CLI still ran, nothing changed in the docs, Dan&#39;s extensive comment was never turned into actual documentation. And so that brings us forward to, you know, this last month. React 19 came out and Create React App promptly started breaking. The Create React App CLI has always tried to install the latest version of React into whichever template package you specify. [11:06]&lt;/p&gt;
&lt;p&gt;And the templates have some dependencies, including tools for linting and testing. And it turns out that the React Testing Library version had a peer dependency on React 18, and suddenly CRA was trying to install React 19. And since NPM throws errors anytime there&#39;s a peer dependency mismatch, what happened was you try to run create react app my app, and it promptly throws errors saying I was told to look for React 18, but there&#39;s React 19, these don&#39;t match. And so over the last month, I&#39;ve seen dozens of people file issues or You know, Reddit threads or comments saying, Hey, I&#39;m trying to start a new React project, and it throws an error. And a lot of these people are beginners. And so I was seeing so many of these threads pop up that I began to make a couple comments on social media saying, Hey, like, no one owns Create React App at this point. [12:01]&lt;/p&gt;
&lt;p&gt;It&#39;s unmaintained. This is bad for the ecosystem. It&#39;s bad for beginners who don&#39;t know they&#39;re not supposed to be using it and are just trying to follow a tutorial. And that&#39;s actually part of the problem, is that a lot of older tutorials They&#39;ll reference create React app and no one&#39;s telling them you should be using something different. [12:21]&lt;/p&gt;
&lt;p&gt;And if it breaks, they don&#39;t know what their other options are. [12:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; the SEO for it is so strong. Like if you&#39;re just, if you don&#39;t know anything about the ecosystem and it&#39;s like, I want to make a new React app, like you search new React app or something like that in Google, [12:35]&lt;/p&gt;
&lt;p&gt;80 percent odd, you find Create React App. [12:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I literally Googled that, and the, the top hit is the actual CRA docs. The third hit is the legacy React installation page. And like the second hit is the current React installation page. So I started griping about this on social media. And the second or third tweet that I put up about this actually is what really spawned the discussion and drama. [13:03]&lt;/p&gt;
&lt;p&gt;So that thread went viral and took off. And a couple members of the React team, Dan and Ricky, began to reply. And Overall, my main goal was, I felt that number one, somebody, aka the React team, that had the right project permissions, should fix the Create React App templates so that it doesn&#39;t error when you create a new project. [13:26]&lt;/p&gt;
&lt;p&gt;It&#39;s still a tool, it should work, it shouldn&#39;t break. But, both the CLI tool and the docs should be updated to say, Create React App is deprecated, don&#39;t use this anymore. Like, yeah, it&#39;ll work, but you shouldn&#39;t use this. Thanks. And that they should, you know, hopefully point to like some kind of a migration guide, like here&#39;s what you should use instead. that&#39;s where we also start to run into other problems. if we point people to the existing new React docs, start a new project page, that&#39;s the one that specifically says you should only use React with a framework like Next, Remix, Gatsby of all things, and Expo. And it actually specifically argues against trying to do things yourself. Now, the most direct equivalent to Create React App today is Vite. And Vite works great. And in fact, Vite is being used by millions of React projects. But the React docs don&#39;t actually list Vite as a real option. [14:30]&lt;/p&gt;
&lt;p&gt;They mention it a couple times. And it&#39;s buried down in, at the bottom of the React docs. Can I use React without a framework section where they sort of grudgingly say, well, if your project doesn&#39;t fit any of these constraints, I guess you can use something like Vite which I&#39;ll get, I&#39;ll touch on that a bit further later. So to me, the right thing to do to get people off Create React App is to have Vite listed prominently on the setup page because it&#39;s the direct equivalent and say, this is good for someone who&#39;s beginning or has, you know, just doesn&#39;t need all the bells and whistles that come with a framework. [15:10]&lt;/p&gt;
&lt;p&gt;So that turned into more arguments. The React team still insists that you should only ever use a framework and have generally refused to list Vite in that page. And a lot of other people besides myself find this to be a pretty ridiculous stance. So the good news is after, you know, a lot of debate online this weekend, the React team did say we will update Create React App so it doesn&#39;t break. [15:35]&lt;/p&gt;
&lt;p&gt;Mark it is deprecated, and we will do some work to change the SEO on the old docs and the CRA docs to try to point them to the current SEO. Setup page. And so I&#39;ve, I&#39;ve seen Ricky doing the work in the PRs on that in the last couple of days. So it&#39;s been a lot of frustration and debate. [15:53]&lt;/p&gt;
&lt;p&gt;The good news is the immediate problem appears to be getting solved. Doesn&#39;t touch on changing the docs to list Vite as a valid option. And then that ties into all kinds of other general complaints about how the React team runs things. So that&#39;s the general state of play. [16:12]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; It does seem like the, this stems a lot of the worst of the bleeding, like, you know, the SEO issue of if you&#39;re trying to enter the React ecosystem as a newbie, then those PRs will address the worst of that in that, like, I think they realized that there was like a real legacy issue, legacy docs issue in that like, The SEO for those links are so good that it ranks above the current docs in a lot of cases. [16:36]&lt;/p&gt;
&lt;p&gt;So I&#39;m glad to see them looking at ways to manage that SEO, but like, I&#39;ve also managed documentation sites before and done SEO for them, like it legitimately took six months for those SEO changes to like fully settle down. So it&#39;s just going to take a minute for these changes to fully be reflected in search results too. [16:57]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; You know, I don&#39;t blame them for you know, taking a few weeks for this, you know, Create React App breakage to bubble up. You know, like I said, no one had really been maintaining Create React App through 21 and 22. It&#39;s been widely considered deprecated and no one&#39;s owning it for the last couple years. [17:18]&lt;/p&gt;
&lt;p&gt;So, You know, no one&#39;s really looking over at the repo issues. I saw the issues being filed in the actual React repo and on Reddit and Reactaflux. But I can understand that, like, it wasn&#39;t bubbling up and, really catching their attention. So, I&#39;m not upset that it, you know, it took me, you know, raising this issue and pushing it and, kind of stirring up the drama in order to get their attention. [17:43]&lt;/p&gt;
&lt;p&gt;I can also understand that, you know, with React 19 having just come out, like, they&#39;re still kind of trying to catch their breath from that. That said, like, obviously I&#39;m overly invested in this because I was the one trying to make the point that it needed to be fixed, but I&#39;ve spent so much of my time as a maintainer Trying to think about how beginners will, read my documentation or, Trying to make things easy to use or answering questions from beginners And so I, you know, I care deeply about, giving beginners a good, you know, Startup path. [18:12]&lt;/p&gt;
&lt;p&gt;And so it kind of bothers me that, they didn&#39;t jump on this as, Oh yeah, this is an obvious problem and we should do something about it right away. [18:20]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; yeah, Dan gave such a long and thoughtful reply, acknowledging the issues, but then, yeah, it&#39;s, it sat for two years. [18:27]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; There was kind of like, like I said, kind of the spinoff of the, you know, CRA is broken part is that the insistence on using a framework has become. Such a stubborn ideological stance, and I understand the reasons why the React team feels it&#39;s better for people to use a framework, it&#39;s coming with all the pieces out of the box, those pieces are pre assembled to, you know, be guaranteed to try to work the right way You know, the React team has kind of shifted gears to where they feel that, you know, server rendering is an important capability, routing is an important capability. [19:03]&lt;/p&gt;
&lt;p&gt;You know, obviously it ties into their vision for React server components, which can only work with a framework for technical reasons. for years I&#39;ve felt that there is a pretty big disconnect between how the React team thinks that people are using React, And how people actually are using React in practice. [19:23]&lt;/p&gt;
&lt;p&gt;And there&#39;s, there&#39;s, there&#39;s a lot of reasons for this. I experienced it myself with Redux. Like I, I don&#39;t even use Redux to build apps anymore. And so I&#39;m, as a maintainer, I&#39;m having to just kind of like take cues from issues people file or, well, a lot of people have asked for this feature. [19:39]&lt;/p&gt;
&lt;p&gt;I think it&#39;s worth it. But it&#39;s, it&#39;s reactive and I&#39;m sort of over in my corner doing things almost by guessing. So there is always that danger when you spend all your time building a library of not seeing and feeling the way it is to use something in the real world. And, you know, part of the issue is that the way Meta, Facebook uses React, is different from how everyone else does, just because Meta has all their own infrastructure for routing and serving and bundling and everything else. [20:08]&lt;/p&gt;
&lt;p&gt;They don&#39;t need lots of third party libraries for that. But, given how huge React is, It is at least the job of the maintainers to be aware that it&#39;s used in a lot of other ways. And even if you don&#39;t necessarily want to focus on all those use cases, you still need to be able to be aware and support that. [20:31]&lt;/p&gt;
&lt;p&gt;And a lot of the React team&#39;s decisions and statements over the last few years have been basically very focused on we sort of assume that everyone who&#39;s using React is using it to build a server rendered, data fetched, routed CRUD app. And we don&#39;t really seem to care about any of the other ways people use React. [20:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, having been paying attention to React since it was like, since relatively shortly after it was open sourced, there has always been a pretty clear, I don&#39;t know, like they came at developing React with a philosophy for how to do web development. [21:09]&lt;/p&gt;
&lt;p&gt;And I think that like over the last 10 years of React, 12 years of React. I think that has borne out more often than it&#39;s, there&#39;s always been people saying like, What the, what the heck are you doing? Like, this doesn&#39;t make any sense, this isn&#39;t, how I want to use it, you should be doing this. [21:25]&lt;/p&gt;
&lt;p&gt;And I have seen many cases where the naysayers were wrong. I am sympathetic to the, You know what the vibes that are I&#39;m getting from the core team of like, this is our lane. Like, we understand what we&#39;re doing here. Like, &quot;you&#39;ll understand one day&quot; kind of vibe. but I, I think there are a couple of, I don&#39;t know, I guess they, they&#39;ve always had this ideological stance that they were sort of. [21:49]&lt;/p&gt;
&lt;p&gt;Putting out into the world like people talk about react brain and you have to like change the way you think in order to Really effectively develop with react and like coming out of react you have to sort of Drift back into a different way of thinking to use other tools again And I think that&#39;s real and I do think that it&#39;s One of the great things about React, but I don&#39;t know It&#39;s uh, we&#39;re definitely in a kind of weird spot here where I guess some of the specifics about it have gotten a little bit Divorced from the everyday usage. [22:20]&lt;/p&gt;
&lt;p&gt;Yeah [22:20]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yeah let me give three reasonably specific anecdotes that kind of tie into this. So, when the new React docs came out a couple years ago that&#39;s when they, they really made that shift from, you know, you, you can use create React app, the old React doc said, if you&#39;re learning or building a single page app, use CRA. [22:42]&lt;/p&gt;
&lt;p&gt;If you need server rendering, use Next. If it&#39;s a static site, use Gatsby. The new doc site, when it came out, said, use a framework. Next, Remix, Expo. And then it had the Can I use React without a framework section with five paragraphs of explaining why they think it&#39;s a bad idea. And the original screen at the end of it was, if you feel you need to do something else go ahead, we can&#39;t stop you. Now they&#39;ve said they didn&#39;t mean that to be sarcastic, But everybody I&#39;ve talked to have said, like, that is just like the most passive aggressive, insulting way to phrase it. And it took over a year for them to finally rewrite that paragraph to take out the passive aggressiveness. [23:27]&lt;/p&gt;
&lt;p&gt;And, like, that is not a good way to treat your user base. Especially when using React without a framework had been the default way to do it. And it&#39;s what you were recommending in your docs up until you flipped the switch on the new ones. Second example, so the suspense gate thing last year, you know, the React team had made a code change to alter how nested suspense components in as siblings would load from in, in parallel to in sequence. [23:58]&lt;/p&gt;
&lt;p&gt;and you know, they had a good reason to make a change. You know, they were trying to make facebook. com a little bit faster and I&#39;m not expecting them to have gone out and like, you know, run hundreds of example apps just to see if this might alter anything. But it Later on, in some of the discussions, they were saying, Well, I mean, you really shouldn&#39;t even be doing this pattern anyway. [24:18]&lt;/p&gt;
&lt;p&gt;Like, if you want good perf, you should always be hoisting your data fetching up to a route or a page for best performance. Which, okay, like, it&#39;s a valid thing to do to improve perf, but it turns out that, like, React 3 Fiber people were using suspense to load 3D assets. And it&#39;s still a va and like, even ignoring that, nested suspense is a valid thing to do. [24:44]&lt;/p&gt;
&lt;p&gt;So, it&#39;s a, you know, second example of, well, we, we really assume that you&#39;re gonna be doing things this one way that we recommend, and Not really following through of, but are there other people doing things a different way? And as a last example I even just ran some quick searches on GitHub in the last couple days, just querying for package.json [25:05]&lt;/p&gt;
&lt;p&gt;files that reference either Next, the Vite React plugin, or the React scripts package from create react app. And it&#39;s, it&#39;s napkin math, I think it might have actually been, like, CRA was 1.9, Vite was 1.1, and Next was 1.5. And so, mathematically, that means that there&#39;s 3 million projects that are You know, a basic single page app, and only one and a half million projects that are on Next. So the single page apps actually outweigh Next by two to one. [25:38]&lt;/p&gt;
&lt;p&gt;And yet, the React docs don&#39;t even list Vite fairly compared to the other options. So it feels like they&#39;re cutting out an awful lot of the ecosystem compared to how people actually use it. [25:50]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right, right. And like the, the recommendations they make around like best practices for performance and like whatever around loading and how to use suspense. Like, those are great. That&#39;s true. I don&#39;t disagree with it, but I also like most of my projects are like solo things. Or, you know, I&#39;m collaborating with like one or two other people. [26:10]&lt;/p&gt;
&lt;p&gt;And I&#39;ll skip a lot of that a lot of the time just because it introduces complexity. Like it&#39;s, it&#39;s an extra couple of days of like introducing scaffolding and, piping data around. And like then, especially when I&#39;m just like iterating and exploring and I don&#39;t really know if I&#39;m even following the right path yet. [26:28]&lt;/p&gt;
&lt;p&gt;Like, I don&#39;t, I don&#39;t want to do that yet. I&#39;ll do it later once I know it&#39;s good, and I do want to care about performance, but that to say that like, I think a lot of development ignores those best practices because it is, because ignoring it is the right trade off for that bit of work, you know, the available, you know, it If you end up not shipping because you tried to follow all the best practices and blew out your budget for time or money or, you know, motivation from your contributors, then like, that&#39;s not great either. [27:00]&lt;/p&gt;
&lt;p&gt;Yeah. [27:01]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So, in general I&#39;ve seen a lot of frustrations about how, you know, the communications has been handled, about the React team&#39;s resistance to, you know, just adding a couple paragraphs in a header to one docs page. And I have a lot of thoughts about it that I&#39;m working on writing a blog post on that will hopefully come out in the near future. [27:19]&lt;/p&gt;
&lt;p&gt;But that&#39;s, that&#39;s been a pain point for myself, for a number of other prominent figures in the React community that I&#39;ve talked to, and for a lot of other people that I&#39;ve talked to as well. [27:31]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Well, so maybe, maybe let&#39;s try and bring it back. what do you think good relations from the core team to the ecosystem might look like over the next year? Like, just blank slate, what is, what does a good, I don&#39;t know, comms program look like? [27:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yeah, so, I&#39;ve actually, you know, mentioned this in a couple of my tweets, if I could magic wand things, we&#39;ve fixed the CRA brokenness, that&#39;s great, we&#39;re marking as deprecated, great. You know, for CRA specifically, I would get the docs updated, so the CRA docs have migration guides, and they point to the setup page. [28:07]&lt;/p&gt;
&lt;p&gt;And the setup page lists Vite as both a learning tool and a, if you just want a simple project. Because that both handles the, I&#39;m a beginner, I just want to start a new project so I can write some components and learn aspect. But it also recognizes the breadth of ways that React is actually used. [28:28]&lt;/p&gt;
&lt;p&gt;In practice, whether it&#39;s, I&#39;m spinning up just a little sample project or, you know, an enterprise that has like a Python or Java backend and can&#39;t even run Node on their server. But just like, we&#39;re not even giving you details, we&#39;re just saying here&#39;s a valid way to do it and here&#39;s a pointer to where to go. [28:45]&lt;/p&gt;
&lt;p&gt;Another thing that the React team has struggled with is general public updates on where they&#39;re going. And there&#39;s a lot of reasons for this. The React team has historically not had, a real full time paid devrel person. Historically, Dan Abramov did a lot of that work in an unofficial sense. [29:04]&lt;/p&gt;
&lt;p&gt;Like, he was the public face of the React team, but it&#39;s just because he spent all his time answering questions on his, of his own volition. they&#39;ve hired a couple devrels or announced that they had a devrel a couple times, and then those people always seem to just sort of and not really do anything within a couple months. I think Matt Carroll has been in that position for a while, but in all honesty, I couldn&#39;t tell you much of what he&#39;s done. I know I&#39;ve seen some people say they&#39;ve had conversations with him, [29:36]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I do know he put a lot of energy into the, into React Conf last year. But obviously a conference is not a like complete developer relations strategy, I don&#39;t know. But yeah, just to say, I do know that was a big effort. [29:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And especially since, you know, Dan shifted over and both left Twitter publicly and actually started working at Blue Sky. It generally feels like there&#39;s no one from the React team who is actively reaching out and looking to be involved in conversations. [30:06]&lt;/p&gt;
&lt;p&gt;flip side of this is that a lot of that has come from Vercel and Next. [30:12]&lt;/p&gt;
&lt;p&gt;You know, Lee Robinson has been incredibly active in terms of actually looking for discussion threads around Next. And popping in, but also the Vercel dev rels have written some really good content explaining things like how, you know, how does, you know, suspense or concurrent rendering work and, you know, how to use some of the new React 19 features. [30:35]&lt;/p&gt;
&lt;p&gt;And some of that is in the next documentation and it&#39;s not at all in the core React docs. Some of it&#39;s on the Vercel or Next blogs and it&#39;s not in the core docs. Thanks. And frankly, a lot of that information feels like it should be in the core docs. Like, you know, the core docs describe the use server and use client directives. [30:59]&lt;/p&gt;
&lt;p&gt;And they, they talk about some of where and, and when to use it, but they don&#39;t have any information on what are server components, how do they fit into the React architecture conceptually, when and why would I want to use server components in general? And so that, that feels like a documentation gap there. [31:21]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. [31:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; docs are wonderful. Dan poured his heart and soul into this tutorial. It is excellently crafted, comprehensive. In page sandboxes, all kinds of other things, it&#39;s great, but if you were to follow the tutorial linearly, you get past the couple of, like, nah, never use useEffect pages, then it just sort of ends. [31:47]&lt;/p&gt;
&lt;p&gt;And there&#39;s no direction on how to take this sort of theoretical knowledge of I&#39;m writing some components in these sandboxes, and How to actually apply that to starting a real project. So like at a minimum I&#39;d like to see a page at the end that says, Okay, you&#39;ve finished the tutorial, great. Here are some active next steps. [32:08]&lt;/p&gt;
&lt;p&gt;Here&#39;s how you can start a project. And by the way, if you&#39;re like using Next or Vite or Remix. Here&#39;s how you would write components in the file structure in those actually give people a pathway. And then the last thing I&#39;m, I guess, one other thing I&#39;d like to see is more active communication on the blog. [32:28]&lt;/p&gt;
&lt;p&gt;Historically, they&#39;ve done announcement posts for big releases. And then they basically do like one. What we&#39;re working on post a year. That&#39;s about it. I realize that they, you know, they do a lot of prototyping. They&#39;re very reluctant to, you know, give early details on prototypes because everyone gets overexcited about them. [32:51]&lt;/p&gt;
&lt;p&gt;And, You know, also this goes back to the, you know, the lack of a formal devrel person to have the capacity to do the writing. But, you know, even, and just, you know, some more frequent updates on what direction we&#39;re headed, or the kinds of things we&#39;re experimenting with. Even if you have to plaster it with, with very loud, this is a proof of concept. [33:11]&lt;/p&gt;
&lt;p&gt;Labels you know, the idea of using the TC39 stages as descriptions of how far along things are has been kicked around a few times. But you just, some sense of like, what is the roadmap and where are we actually going would be nice. [33:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Or like, heck, like you said, there&#39;s lots of great blog posts that people like Lee Robb or other, you know, Next and Vercel people are putting out. Like, just reposting those to the official blog would probably be pretty good. [33:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; another one that I saw was the uh, I think, Some of the, you know, the team folks did a lot of great work in fleshing out the API references in the docs. And the only indication that anything had changed was they made a post in the discussions section of a, of a working group repo. No one is reading that. [34:03]&lt;/p&gt;
&lt;p&gt;Put up a blog post saying, Hey, we added five new docs pages covering these topics. Like that is a thing worth announcing. [34:10]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Absolutely, 100%. Yeah. Well, one other thing I want to chime in on. On the documentation side of things too, I just saw, I just caught some discussion from people looking to make their own frameworks, were expressing frustration, like, you know, they were reading the docs and it says like, this is best left to the framework authors, and they&#39;re like, that&#39;s me! [34:30]&lt;/p&gt;
&lt;p&gt;How do I do this? yeah, [34:32]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; or library authors. Yeah. [34:34]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; right, and you know, then I&#39;m seeing people talk about like, oh yeah, I was, I, I spent a week, three weeks, months reverse engineering this and understanding it so that I could write something on top of it, and it&#39;s like, yeah, you know what, that&#39;s, that&#39;s a pretty big documentation gap if like a half dozen people are all reverse engineering stuff in order to do what is being advised, you know, they&#39;re trying to own it, [34:58]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; seen a couple framework author kind of behind the scenes discussion groups and there, there is chatter back and forth and asking questions, but I mean, again, like a lot of that stuff would have been nice to see covered in public documentation in the first place. [35:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I guess maybe, maybe to close this discussion out, this is all like refinement. Like, I also want to highlight that as far as frameworks for building web applications, The React documentation is absolutely world class, and like, you compare it to its peers in the, you know, ecosystem, and like, both what it&#39;s trying to do and how well it communicates it to someone trying to learn is actually quite good. [35:45]&lt;/p&gt;
&lt;p&gt;in my opinion, like, I, I think that there are many things that it does really, really, really effectively, and As, you know, pundits opining, we&#39;re seeking out the rough edges to focus on. I do just want to bring that in. [35:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I have huge respect for the React team. I have a very good understanding of the constraints that they deal with, both from having watched and talked to And then, you know, as a, as a maintainer of a widely used library myself, I, I totally understand, like, I just don&#39;t have time to sit down and document this. [36:15]&lt;/p&gt;
&lt;p&gt;it&#39;s both the, the success that they&#39;ve had, And the work that they&#39;ve put in that makes a lot of these gaps and pain points all the more frustrating. And so it&#39;s not that they&#39;re doing a bad job. It&#39;s that the pain points really stand out. [36:32]&lt;/p&gt;
&lt;p&gt;And a lot of them feel like self inflicted wounds that could have been addressed fairly simply. [36:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And, perhaps, because it has had such a vibrant, thriving ecosystem for so long, and so many phenomenal, wonderful, generous, talented individuals who are filling some of these gaps, Like, now that the momentum, now that some of the heat has gone out, like, you know, there was a, there was probably a five year span where a lot of the hype in tech was focused on React and now, you know, then there was like a kind of like, ooh, should we focus on Web 3? [37:08]&lt;/p&gt;
&lt;p&gt;Like, ooh, is blockchain interesting? And there&#39;s like, no, no, no, actually, no. And now, like, that, that laser has Fully focused away from tech like React and more onto AI things. So I think that a lot of those individuals who were driven and talented and motivated and ended up filling those gaps are now doing other things. [37:27]&lt;/p&gt;
&lt;p&gt;makes sense and it&#39;s fair, but it means that those gaps are not getting filled anymore. [37:31]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I have a lot more thoughts on this topic. I will not go through them here. However, I am planning to put up a very, very, very long blog post explaining a lot of this stuff hopefully within the next few days. [37:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I&#39;ve read half of it. It&#39;s good. Okay. Moving on.&lt;/p&gt;
&lt;h2 id=&quot;revealed-reacts-experimental-animations-api---motion-bloghttpsmotiondevblog&quot;&gt;[Revealed: React&#39;s experimental animations API - Motion Blog](&lt;a href=&quot;https://motion.dev/blog/&quot;&gt;https://motion.dev/blog/&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Somewhat small. We can maybe do this in lightning round, but too late. speaking of new developments in React, there is an experimental animations API taking advantage of the view transition, platform API On the web.&lt;/p&gt;
&lt;h2 id=&quot;main-pr&quot;&gt;&lt;a href=&quot;https://github.com/facebook/react/pull/31975&quot;&gt;Main PR&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Uh, It&#39;s currently unstable. It looks like it&#39;s going to be a view transition component that also comes with a little bit of ceremony around how to set state in order to make the transition aware that a change happened. [38:12]&lt;/p&gt;
&lt;p&gt;But seems cool. I don&#39;t know if view transitions look great. And being able to easily tap into them when you&#39;re doing your react logic. Definitely here for that. Looks great. [38:23]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I still don&#39;t even know exactly what view transitions even are. I&#39;ve been too occupied to have a chance to read about or learn them. Having said that, this also does feel like kind of a big deal. People have been griping about the lack of real animation support in React itself for years. There&#39;s been lots of, you know, community packages, Motion and React Transition Group, and A whole bunch of other things. [38:48]&lt;/p&gt;
&lt;p&gt;and they&#39;ve said that they wanted to get around to it eventually, but it really needed to be integrated into concurrent rendering behavior because you got to track multiple copies of the tree at once. So this does actually feel like a pretty big step forward. [39:01]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, and I used like React Motion Cheng Lou&#39;s library from many, many years ago which was great. I found that really cool and really powerful. I did some really fun, exciting things with that. the single most fun thing I did with that, I did a spotlight. Like onboarding tour for an app I built, where I did a custom SVG to cut a hole out of a, like, transparent, translucent overlay. [39:26]&lt;/p&gt;
&lt;p&gt;And then I used React animation to, like, animate it, and so it would, like, do a, like, little springy animation around. And, like, it was performant. It was fast. It took me, like, three hours to do. So for me, user space implementations like that were like, cool, great, this is solved, I don&#39;t need to do this. [39:44]&lt;/p&gt;
&lt;p&gt;And I don&#39;t need React to be more aware of this because this works great for me. I think that&#39;s part of the reason why they haven&#39;t brought anything in before this. And I think now there has been more of a, I don&#39;t know, general understanding of how animation should work at a platform level. [40:01]&lt;/p&gt;
&lt;p&gt;And so They&#39;ve been brought in as platform features to do like flip animations. First, last, interpolate, play. And so I think that&#39;s what view transitions are, but I&#39;m in the same boat. I&#39;ve read about them. I have not actually put them to practice in any real project yet.&lt;/p&gt;
&lt;h2 id=&quot;static-hermes-update&quot;&gt;&lt;a href=&quot;https://x.com/tmikov/status/1869945330638442651&quot;&gt;Static hermes update&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Let&#39;s jump into Static Hermes, because I think that one&#39;s quite interesting. So, we&#39;ve talked about Static Hermes over the last few months a few times, but right before Christmas there was an update that went on by Tzvetan, who&#39;s basically really the person who&#39;s leading the efforts as far as I know, at Meta, and so people are kind of asking the question, like, when is Static Hermes actually going to come out? [40:38]&lt;/p&gt;
&lt;p&gt;Because we saw it like years ago. It was super exciting. When is it coming out? And I think we got the first glimpses of hope in there. In the sense that in 2025, so in 2024, they say, next year they want to start to make it an opt in branch and maybe towards the end of the year, later in the year, at some point, make it the default React Native Engine. [40:57]&lt;/p&gt;
&lt;p&gt;And one of the biggest hurdles that they face, which they seemingly have overcame now, is that There wasn&#39;t good support for un typed JavaScript and obviously there&#39;s gonna be a lot of un typed JavaScript in the world. Like the whole premise of static Hermes is that you use the types within TypeScript to be able to compile better typed code at a c plus plus level. And so this is a big step and it was one of the hardest sort of hurdles that they had and they&#39;ve compared the performance. with different benchmarks and seemingly they are doing, you know, somewhere to the ranges of 20 to 60 percent better with a bunch of different benchmarks that they&#39;re trying. [41:36]&lt;/p&gt;
&lt;p&gt;So it&#39;s quite cool and we&#39;ll see how it evolves, but I guess it&#39;s a very exciting update, whether or not that stays in practice and it&#39;ll be, you know, available at some point in 2025, we&#39;ll see, but you know, first glimpses of a supposed Timeline of delivery. So we&#39;ll, we&#39;ll see how that plays out. [41:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, definitely makes sense that untyped JavaScript is a major hurdle, like, yeah, it&#39;s a JIT compiled language. If you&#39;re trying to do a static compilation of it, that&#39;s gonna be tough. [42:03]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; And it&#39;s honestly like super impressive what this team has been trying to achieve in itself. It&#39;s it&#39;s I don&#39;t think I have the capabilities to be able to, to dissect such hard problems. So kudos to them. [42:14]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And also, just to, like, carry in the tone from this, you know, Hermes update post, I love that it has this hero image of a, I&#39;m gonna call [42:21]&lt;/p&gt;
&lt;p&gt;it a flag that says &quot;we do this not because it is easy, but because we thought it would be easy.&quot; [42:27]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I love that so much, yeah, that hero images. Tzvetan is a really funny guy, like a very like, specific sense of humor, I&#39;ve met him a couple times at conferences, he&#39;s just, he&#39;s such a joy to be around.&lt;/p&gt;
&lt;h2 id=&quot;react-native-hosting-with-eas&quot;&gt;&lt;a href=&quot;https://expo.dev/blog/expo-announces-eas-hosting-service&quot;&gt;React Native Hosting with EAS&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I also want to quickly touch on Expo hosting, so this was announced a few weeks ago, and so, in sort of that light of, you know, there&#39;s Resell, which is the way that you host React applications or so called Next. js applications, I guess, mainly and you know, it&#39;s the framework that you use with the Expo world, obviously they are also kind of going into that footing of, we are the framework to use, and we also can host it because Expo is obviously going in this universal direction of, you can also use Expo and React native on the web and build full stack sort of across the board multi platform application on web and mobile and so obviously as part of that you&#39;re going to have to think about hosting where do you host the web applications and so they&#39;ve launched EAS hosting which is their sort of first attempt at creating a hosting platform that will host your, you know, Web applications, but also your API routes, because if you remember from last year, we talked about Next.js&#39;s [43:31]&lt;/p&gt;
&lt;p&gt;API routes that they had, and so very similar to Vercel&#39;s API routes, you&#39;ve got Next. js&#39;s API routes now, I&#39;m sorry, you&#39;ve got Expo&#39;s API routes now. And so it&#39;s a very sort of basic hosting platform for now. It lets you keep a track of, you know, the requests coming in, your deployments, the crashes. [43:48]&lt;/p&gt;
&lt;p&gt;And just some basic logging into your requests and so on and so forth. But I think it&#39;s, it&#39;s a, it&#39;s an interesting start and it&#39;s, you know, it&#39;s one of the pieces that they&#39;ve been missing a little bit when it came to this universal story. So, we&#39;ll see how that expands, we&#39;ll see how it grows and evolves, but it&#39;s just the first and the early days of, you know, of EAS hosting. [44:07]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I wish I had more to say on Expo, because it does seem really cool, and I have really admired its development over the years, but man, I just, I don&#39;t, I don&#39;t need to make native apps. Maybe one day. [44:17]&lt;/p&gt;
&lt;p&gt;as I&#39;m charting my year in January I have a couple projects booked for the next couple of months, but back half of the year I might actually try and do like a fork of the Blue Sky plant, and that&#39;s Expo, so hey, maybe I&#39;ll get some real first hand knowledge [44:32]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; very keen. I love the comment. Someone&#39;s saying, I wonder if Tanstack will launch their own hosting one day. [44:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; That makes, yeah, that actually would not surprise me. Yeah, Mark you want to tell us everything we need to know about Node. js type stripping?&lt;/p&gt;
&lt;h2 id=&quot;everything-you-need-to-know-about-nodejs-type-stripping&quot;&gt;&lt;a href=&quot;https://satanacchio.hashnode.dev/everything-you-need-to-know-about-nodejs-type-stripping&quot;&gt;Everything You Need to Know About Node.js Type Stripping&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Well, I won&#39;t, but I&#39;ll tell you about the post that does. So, like bun have TypeScript support built in, but it&#39;s basically been like, Okay, we read the TypeScript source code, don&#39;t bother type checking it, we just execute it. And so, you know, given TypeScript&#39;s popularity, Node has finally jumped on the bandwagon and some of the latest Node releases actually integrate some tools that will do the type stripping so that TypeScript syntax code can at least run directly in Node without needing an additional tool like the TS Node. And, the big thing about this is that because they&#39;re stripping the types, they&#39;re not doing type checking the output also needs to be, like, your TypeScript code needs to be just types. Now you might think, well, it&#39;s TypeScript. Of course, it&#39;s just types. The problem is that some early TypeScript features do also result in additional runtime code being generated. [45:43]&lt;/p&gt;
&lt;p&gt;For example, when you use the enum keyword in TypeScript, it results in an object lookup table being added. And so because Node is just stripping the type syntax, if you try to use an enum with this new Node feature, it&#39;ll actually break things. So, I believe one of the upcoming TypeScript versions will actually have a flag that will enforce that you&#39;re only using type strippable syntax, but Big picture what this means is that it&#39;ll be easier to take, like, a node script that is written as a ts file with ts syntax and just say, like, node myscript.ts [46:25]&lt;/p&gt;
&lt;p&gt;or whatever. I don&#39;t think you have to pass in any additional arguments. So overall, it&#39;s, it&#39;s basically like matching the feature set of other tools like Bunn and making it easier to use TypeScript code across the ecosystem. [46:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; yeah, I am trying to quickly refresh my memory here, but I believe that I am actually using the strip types. No, I played with it but I found a different way around it. Yeah, I did, I did it. This is a feature I got to play with. I have first hand experience with strip types. It was pretty good. But yeah, there&#39;s still some weirdness around, like, type extensions, I think, in imports. [47:02]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; That does not surprise me. [47:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I know, in trying to play with it, I had to do a code mod in order to add extensions, you know, like js extensions everywhere, and yeah, I know, I think a couple of episodes ago, we ended up talking, we talked a little bit about TypeScript, Faking what extensions it would use in order to make that work for compatibility reasons. [47:25]&lt;/p&gt;
&lt;p&gt;And so yeah, I got some first hand experience and it&#39;s weird. It worked. I got it working, but it felt weird to have, you know, to be authoring a ts or tsx file and importing it as js. That&#39;s definitely unintuitive. [47:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; complicated but valid technical reasons why they made that stance. [47:45]&lt;/p&gt;
&lt;p&gt;All right, Mo, I know you need to drop off shortly. Any other points you want to cover before you head out? [47:49]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; no, I think it&#39;s been a relatively quiet React Native month and I&#39;ve been completely off the grid.&lt;/p&gt;
&lt;h2 id=&quot;composable-caching-with-nextjs&quot;&gt;&lt;a href=&quot;https://nextjs.org/blog/composable-caching&quot;&gt;Composable Caching with Next.js&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; The only thing that I am quite keen to talk about actually is the caching with Next. js, our little composable caching. Because I&#39;ve been dealing with Next.js caching for the last two weeks and oh boy, oh boy, [48:10]&lt;/p&gt;
&lt;p&gt;I have been trying to, after dealing with the Pages router for a very long time I&#39;ve been now dealing with Next. js caching for a little bit, and this use cache is obviously something that&#39;s more in canary at the moment. It&#39;s not published in, in sort of the, the stable versions, whatever that means in Next world these days, in terms of a stable version. [48:32]&lt;/p&gt;
&lt;p&gt;But, Basically, the caching is a little bit complex with Next14, as we know, and currently, if you want to cache things like database responses in server components, or you want to cache fetching, you have to wrap it in an unstable cache function that takes in the function, a promise, some key, and then some revalidation time. [48:56]&lt;/p&gt;
&lt;p&gt;And so, there&#39;s this really weird syntax to do this, and then of course there&#39;s also another level of caching when you have static pages, which means those static pages get cached after they&#39;re published. Built in whatever capacity. And there&#39;s just so many layers of caching at this point. It&#39;s hard to wrap your head around how your application is functioning. [49:16]&lt;/p&gt;
&lt;p&gt;And to make matters more confusing now, there&#39;s this use cache directive that they&#39;re planning on introducing, which looks really cool, but I can just imagine this getting ever more and more complicated. And to me, a real symptom of this is the fact that they&#39;ve 180&#39;d on the defaults of caching with Next 15. [49:36]&lt;/p&gt;
&lt;p&gt;Like, you&#39;ve set some definitions on what is cached by default, what&#39;s not cached, and it went so poorly that you had to flip it 180 degrees. That does not give any semblance of stability to me as a consumer of the technology. And so I just look back at the days of the Pages router and wish we could just go back to the simplicity of having and getServerSideProps and just live life in that naivety of how simple that was. [50:06]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I was thinking in similar directions and I&#39;m actually now in a position where I&#39;m maintaining a React Router v7 project, which I upgraded all the way from Remix 1 to React Router v7 in one go, or in one go, sequentially all the way up. And the, the Reactiflux website is I think it&#39;s a Next 14 Pages router app, so that one I could probably play with a little bit more. [50:35]&lt;/p&gt;
&lt;p&gt;But it&#39;s like, oh, I&#39;m now actually maintaining apps on several of the largest frameworks And you know what? I like Remix the best. It&#39;s just got, like, the, the mental model is most familiar to me. It seems most predictable. And, like, I hate magic. I am someone who completely avoided the entire RWBY ecosystem because it&#39;s too magical. [50:57]&lt;/p&gt;
&lt;p&gt;I&#39;m just like, man, Remix hits right for me. not much there. Just yeah, it feels good. I don&#39;t know. I like it. [51:03]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I&#39;ve used Remix as well, and I must say, like, It takes a little bit of adjusting from when you&#39;ve just dealt with Next. js for several, months and years, but is just simpler. Like it feels more native webby, the bits of magic are really just like the loaders, the actions that you have, but like everything else just feels sort of you&#39;re dealing either with React or you&#39;re dealing with the web. [51:24]&lt;/p&gt;
&lt;p&gt;And I quite like that as a concept. [51:27]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right. [51:28]
[51:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; it lets me think in terms of like, HTML, HTTP, and like, cookies. And like, yes please, let me think about the platform and not the toolchain. Yeah. [51:39]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; And someone in the chat, one of our listeners, is actually pointing out that the app router is still defined as the bleeding edge of on the React install docs, basically, on start a new React project. [51:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; definitely some bleeding happening. [51:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; So yeah, that was my little, my rant. [51:55]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool. Yeah,&lt;/p&gt;
&lt;h2 id=&quot;thoughts-on-what-rsc-means-for-spas&quot;&gt;&lt;a href=&quot;https://blog.axlight.com/posts/thoughts-on-what-rsc-means-for-spas/&quot;&gt;Thoughts on What RSC Means for SPAs&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Mark, next link up is like thoughts on what RSC means. did you read that? Can you talk about that? [52:02]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yeah, I, I skimmed it a bit. So it&#39;s a, it&#39;s a post from Daishi Kato who worked maintains Zustand, created Jotai and Valtio and has been working on the, the Waku RSC based framework. So it&#39;s a couple different points. One is, can R RSCs actually relate to single page apps? And the answer is sort of maybe yes. [52:25]&lt;/p&gt;
&lt;p&gt;Like, you know, for example, the RSC payload could be served statically. And not dynamically generated on a server. it&#39;s actually kind of a, kind of a short read, but you know, just like some, alternative thoughts from just like, RSCs are on the server and, you know, can only be used with Next, et cetera. [52:42]&lt;/p&gt;
&lt;p&gt;So it&#39;s short, but worth reading.&lt;/p&gt;
&lt;h2 id=&quot;chromes-2024-recap-for-devs&quot;&gt;&lt;a href=&quot;https://developer.chrome.com/blog/chrome-2024-recap&quot;&gt;Chrome&#39;s 2024 recap for devs&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; last main content article Chrome put out a 2024 recap. That was just pretty good. I don&#39;t know. Some of it, I&#39;d call it like 30 to 40% marketing fluff. [52:55]&lt;/p&gt;
&lt;p&gt;They spent a lot of time talking about how they added AI to the chrome dev tools, which I actually have heard some positive things about, like interpreting errors. Like okay, yeah. Neat. But yeah, I noted that it called out view transitions, which just &#39;cause we talked about it earlier in the episode. [53:09]&lt;/p&gt;
&lt;p&gt;Like, hey, look at that. platform and react in unity in sync. I think we&#39;d mentioned this before, but there&#39;s a CSS popover and like anchor positioning. So you can do popovers without JavaScript, which. I have implemented popovers in so many apps, and I hate it. I am so tired of it. Like, I do not use popovers anymore because I&#39;m so tired of making them. [53:33]&lt;/p&gt;
&lt;p&gt;So, being able to do it without crazy layout logic in JavaScript sounds great. Maybe I will actually use them again.&lt;/p&gt;
&lt;h2 id=&quot;shoutout-webstatusdev&quot;&gt;Shoutout &lt;a href=&quot;https://webstatus.dev/&quot;&gt;webstatus.dev&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And I also learned about a new site recently through reading that, webstatus.dev, which has a, like, annualized baseline browser feature summary, which looks neat. Although I&#39;ll note that, you know, we&#39;re into 2025. [53:55]&lt;/p&gt;
&lt;p&gt;We&#39;re a month into 2025, and the 2024 baseline is not met. Like, yeah. Safari looks to be generally the worst offender, But, Firefox and Edge also, slipping behind a little bit. Well, no, maybe that&#39;s not fair, because Firefox is ahead in a couple of them, ahead of Chrome in a couple of them. So, anyway, this is neat. [54:14]&lt;/p&gt;
&lt;p&gt;I love these kind of like, broad based what features Are being implemented. this is how I have always kept an eye on what&#39;s coming down the pike. So, didn&#39;t know this existed. Cool. Useful.&lt;/p&gt;
&lt;h2 id=&quot;redwoodjs-shutting-down&quot;&gt;Redwood.js shutting down?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I don&#39;t have a link for this, but I&#39;ve heard, through the grapevine, that there will be some impending announcements from Redwood.js generally the shape of what I&#39;ve heard is that like an original found co founder of the project who had kind of left or like gone dormant came back and has decided that I I don&#39;t know what is going on I read some like Google translated slack messages from I believe Swedish and it sounds like a co founder has come back out of the woodwork and basically taken over and Just said like This is good SEO. [55:01]&lt;/p&gt;
&lt;p&gt;This, there is value to this domain, this brand. It&#39;s mine now. I&#39;m going to do something entirely different with it. So yeah, keep an eye out. Redwood. [55:09]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Another way to phrase it is it sounds like Redwood the framework is dead and the name and repo are going to be repurposed. [55:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; that&#39;s the shape of what I&#39;ve heard. I think I heard that they will be doing an announcement in the next month. So like, ooh, breaking story, our first one, but, ah, it&#39;s just such a shame because I, I&#39;ve met them at a conference or two, they seemed really good, and I liked the general, like, like, I understood them as trying to do Laravel for the React ecosystem, and I thought that was a pretty good niche, so, just a shame. [55:45]&lt;/p&gt;
&lt;p&gt;Shame to see it die to some drama like this. But yeah, there should be some more details, maybe we can talk about it maybe we will have some, you know, perspective to give [55:55]&lt;/p&gt;
&lt;p&gt;this month. [55:56]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; next month. [55:56]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Actual details, not screenshots of Slack.&lt;/p&gt;
&lt;h2 id=&quot;a-checklist-for-your-tsconfigjson&quot;&gt;&lt;a href=&quot;https://2ality.com/2025/01/tsconfig-json.html&quot;&gt;A checklist for your &lt;code&gt;tsconfig.json&lt;/code&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Axel Rauschmeyer has done a lot of articles over the years about like, what&#39;s new in this year&#39;s version of the, you know, the, the ES language spec. He&#39;s also been writing some articles recently about some TypeScript related things, like different ways to define a NUS or similar things. And he put up a post call a checklist for your TS config, JSON, which walks through and actually like, looks at a lot of the config options and what they do and when it makes sense to use a lot of them. [56:27]&lt;/p&gt;
&lt;p&gt;pretty sure that Matt Pocock has done a similar post somewhere.&lt;/p&gt;
&lt;h2 id=&quot;recoil-repo-archived&quot;&gt;&lt;a href=&quot;https://x.com/dai_shi/status/1875910305802514649&quot;&gt;Recoil repo archived&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; completely different note We talked about Redwood maybe kind of going away. The recoil library repository has been officially archived. Now, it had been unmaintained for a while. I had read from people who had been involved that apparently both the people who had been maintaining it had gotten caught up in layoffs from meta. [56:52]&lt;/p&gt;
&lt;p&gt;So, But, honestly, it also seemed as though the project had stagnated for quite a while. The thing that gets me, really, is that when Recoil was first announced whenever that was, like 2017, 18 ish there were just so many people who looked at the announcement and took it as Oh look, this is an official React State Management Library. [57:19]&lt;/p&gt;
&lt;p&gt;When in reality it was just some other app team at Meta came up with their own solutions and decided to publish it. But, you know, the combination of Redux backlash, and like, It&#39;s from Facebook, it must be official! meant that a lot of people jumped on it, and then it sort of stalled, and then Jotai came out, and Recoil just sort of went away. [57:45]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Sad to see stuff drop&lt;/p&gt;
&lt;h2 id=&quot;bun-first-class-support-for-s3&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/bun.sh/post/3legdozw3nc2p&quot;&gt;Bun: first-class support for s3&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Alright Bun is shipping first class support for S3, which is interesting. So, first class support for S3 here means being able to use it as like a file system, I guess. standard library tool for implementing Or for interacting with file storage services that themselves implement the S3 API, which is pretty widely supported. [58:11]&lt;/p&gt;
&lt;p&gt;So this is actually pretty interesting because, like, I don&#39;t know, I hate dealing with, stuff like the AWS SDK. I&#39;ve, like, partially avoided learning AWS because it&#39;s just so complicated and annoying. So seeing some little details like S3 interactions being brought into the runtime is actually pretty neat. [58:32]&lt;/p&gt;
&lt;p&gt;Yeah. I&#39;m seeing in the chat, there&#39;s a lot in that 2 announcement. Sadly, I don&#39;t actually use bun in my day to day. So I am just kind of an observer here and I have not stayed super up to date. Just that caught my eye as like, Oh, interesting. What an opinionated stance.&lt;/p&gt;
&lt;h2 id=&quot;interpolate-auto-height-for-animations&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/joshwcomeau.com/post/3lf5zwg2ths22&quot;&gt;Interpolate &lt;code&gt;auto&lt;/code&gt; height for animations&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; There is now, I believe in the latest Chrome, there is an interpolate size CSS property you can set on like high up on your your page to allow interpolating allow animations to interpolate between Auto, like if you say height auto and height zero. Previously you couldn&#39;t animate between those two states. [59:11]&lt;/p&gt;
&lt;p&gt;And now, You can in latest Chrome. That&#39;s super cool. I have always thought it was super weird that that extra step of just letting your size, letting the size of an element be automatically determined meant that you couldn&#39;t use CSS transitions. That just never made sense to me. So it&#39;s, it also doesn&#39;t make sense to me why it took 10 years from me feeling, oh, that&#39;s weird, to this actually shipping, but super cool. [59:37]&lt;/p&gt;
&lt;p&gt;Neat. Love it. I believe it&#39;s currently Chrome only, but yeah, I mean, hopefully it&#39;ll, hopefully it&#39;ll filter out pretty quick. He says, after complaining about waiting 10 years.&lt;/p&gt;
&lt;h2 id=&quot;free-javascript-oracle-not-voluntarily-releasing&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/deno.land/post/3lfapjn7gns2w&quot;&gt;Free javascript; Oracle not voluntarily releasing&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And a small, extremely small update to something we discussed previously, the Deno organization&#39;s campaign to get Oracle to free the JavaScript trademark. [01:00:00]&lt;/p&gt;
&lt;p&gt;Oracle has Declined to voluntarily withdraw the trademark. So Deno is doing legal things to advance the process. This is a legal drama. So this is probably going to be something we&#39;re still talking about in like 2026. And I would not surprise me if it&#39;s like 2030 before the trademark actually, like before this case settles, let&#39;s say. [01:00:23]&lt;/p&gt;
&lt;p&gt;But yeah, neat. Maybe I&#39;ll stop giving updates, but Oh God, it would be so nice if Oracle did not own JavaScript.&lt;/p&gt;
&lt;h2 id=&quot;understanding-react-server-components--tony-alicea&quot;&gt;&lt;a href=&quot;https://tonyalicea.dev/blog/understanding-react-server-components/&quot;&gt;Understanding React Server Components | Tony Alicea&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; All right, and last one Tony Alicea is an educator who has written some very, very good deep dive blog posts into some things like React rendering, which is a topic I care deeply about, so I appreciate that and he recently put up a post on understanding React server components. [01:00:48]&lt;/p&gt;
&lt;p&gt;Now we&#39;ve, we&#39;ve mentioned a lot of different dive into server components type posts over the last couple years. This one walks through a lot of how server components fit into the rendering process, looks at some of the actual JSX related data that is serialized and sent back and forth, and talks about how it then fits into things like streaming and bundlers and hydration. [01:01:12]&lt;/p&gt;
&lt;p&gt;So it&#39;s not something you would read to understand, like, how do I use a server component? But it&#39;s a really good explainer that, you know, how digs through a lot of the technical aspects and talks about why server components work the way they do. [01:01:26]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Oh man. Wouldn&#39;t it be cool if this was put out as like a guest post on the React blog? [01:01:32]&lt;/p&gt;
&lt;p&gt;Cool. Okay. That&#39;s all of the links we have for you this month. Thank you for our persistent listeners who stuck with us all the way to the end. Yeah, we&#39;ll be back on the last Wednesday of February next month or in this episode, we&#39;ll be back in your podcast feed just as soon as we can. Thanks so much for listening. [01:01:50]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Lovely to be here with you all again every single month. it&#39;s always a pleasure. Thank you, Mark. Thank you, Carl Thank you to everyone who&#39;s listening in and see you all in February [01:01:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yep, thank you, appreciate it. And if you want to stay up on the current drama that I am involved in in the React ecosystem, please follow me on Bluesky or watch for my upcoming blog post within the next few days.&lt;/p&gt;
&lt;h2 id=&quot;follow-us-on-bluesky&quot;&gt;&lt;a href=&quot;https://bsky.app/profile/tmir.reactiflux.com&quot;&gt;Follow us on Bluesky!&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Oh yeah, we can follow, you can actually follow this podcast on BlueSky too. We are tmir.reactiflux.com and I&#39;m going to put a link in here. Cause you know what? I should do that. [01:02:23]&lt;/p&gt;
&lt;p&gt;We gather sources from thismonthinreact, bytes.dev, reactstatus, nextjsweekly, the reactjs subreddit, here in Reactiflux from the techreadsandnews channel, and sometimes even directly from people publishing content. [01:02:38]&lt;/p&gt;
&lt;p&gt;If you see anything that would be useful for us to discuss or just that you want to share with the community. Definitely pop it in the Tech Reads the News channel, or if you like, you can send it to hello at reactiflux.com. I will read literally anything you send to that. So, yep, go ahead. If this is a show that you get value from and want to support, best way to do so is by submitting a review, wherever you listen, or tell people about it. [01:03:02]&lt;/p&gt;
&lt;p&gt;It&#39;s great. Help us grow. Woo!&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2025-01</link><guid isPermaLink="false">reactiflux-tmir-2025-01</guid><pubDate>Tue, 28 Jan 2025 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>TMiR 2024-12: React 19 is here 🎉</title><description>&lt;iframe src=&quot;https://creators.spotify.com/pod/show/reactiflux/embed/episodes/TMiR-2024-12-React-19-is-here--2024-is-over-e2sv4o6/a-abn4vvo&quot; height=&quot;102px&quot; width=&quot;400px&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#sponsored-by-infinite-red&quot;&gt;01:45&lt;/a&gt;]&lt;/code&gt; Sponsored by &lt;a href=&quot;https://infinite.red/&quot;&gt;Infinite Red&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#new-releases&quot;&gt;02:46&lt;/a&gt;]&lt;/code&gt; New releases
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#relay-v182&quot;&gt;02:48&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/facebook/relay/releases/tag/v18.2.0&quot;&gt;Relay v18.2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#react-admin-v54&quot;&gt;03:07&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/marmelab/react-admin/releases/tag/v5.4.0&quot;&gt;React-admin v5.4&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#preact-v1025&quot;&gt;03:16&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/preactjs/preact/releases/tag/10.25.0&quot;&gt;Preact v10.25&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#playwright-v149&quot;&gt;05:25&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://playwright.dev/docs/release-notes&quot;&gt;Playwright 1.49&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#astro-v50&quot;&gt;05:33&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://astro.build/blog/astro-5/&quot;&gt;Astro 5.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#radon-ide&quot;&gt;06:00&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://ide.swmansion.com/&quot;&gt;Radon IDE&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#react-19-compatibility-in-react-redux-and-redux-toolkit&quot;&gt;07:57&lt;/a&gt;]&lt;/code&gt; React 19 compat for &lt;a href=&quot;https://github.com/reduxjs/react-redux/releases/tag/v9.2.0&quot;&gt;react-redux&lt;/a&gt; and &lt;a href=&quot;https://github.com/reduxjs/redux-toolkit/releases/tag/v2.5.0&quot;&gt;Redux Toolkit&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#main-content&quot;&gt;10:37&lt;/a&gt;]&lt;/code&gt; Main Content
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#react-19-is-finally-out-blog-post&quot;&gt;10:39&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/facebook/react/releases/tag/v19.0.0&quot;&gt;React 19 is actually out&lt;/a&gt; (&lt;a href=&quot;https://react.dev/blog/2024/12/05/react-19&quot;&gt;blog post&lt;/a&gt;)
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#upgrade-guide-from-april&quot;&gt;11:16&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://19.react.dev/blog/2024/04/25/react-19-upgrade-guide&quot;&gt;Upgrade guide from April 2024&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#removed-things&quot;&gt;11:31&lt;/a&gt;]&lt;/code&gt; Removed things&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#new-things&quot;&gt;17:07&lt;/a&gt;]&lt;/code&gt; New things&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#ref-callbacks-react-19-and-the-compiler&quot;&gt;28:42&lt;/a&gt;]&lt;/code&gt; TKDodo: &lt;a href=&quot;https://tkdodo.eu/blog/ref-callbacks-react-19-and-the-compiler&quot;&gt;Ref Callbacks, React 19, and the Compiler&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#react-native-screens-400&quot;&gt;34:07&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://blog.swmansion.com/introducing-react-native-screens-4-0-0-1b833ff98a55&quot;&gt;Introducing React Native Screens 4.0.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#react-19-and-react-native-and-pr&quot;&gt;37:00&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/react-native-community/discussions-and-proposals/issues/842#issuecomment-2527591610&quot;&gt;React 19 support in React Native TBD&lt;/a&gt; (0.77/78?)
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#expo-experimental-support&quot;&gt;38:58&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/Baconbrix/status/1864785257297305833&quot;&gt;Expo has experimental support&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#next-151&quot;&gt;40:37&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://nextjs.org/blog/next-15-1&quot;&gt;Next 15.1&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#nextjs-experimental-css-inlining&quot;&gt;39:52&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/vercel/next.js/pull/72195&quot;&gt;experimental: css inlining&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#react-native-fast-io&quot;&gt;41:33&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/callstackincubator/react-native-fast-io&quot;&gt;React Native Fast IO now in prerelease&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#npx-create-target&quot;&gt;43:27&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/Baconbrix/status/1868672438898455023&quot;&gt;Create Target Widgets in Expo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#lightning-round&quot;&gt;44:55&lt;/a&gt;]&lt;/code&gt; ⚡ Lightning round ⚡
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#react-native-demo-for-android-xr&quot;&gt;45:02&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/o_kwasniewski/status/1868645896239690009&quot;&gt;React Native demo for Android XR&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#if-not-react-then-what&quot;&gt;45:43&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://infrequently.org/2024/11/if-not-react-then-what/&quot;&gt;If Not React, Then What?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#vitest-vs-jest&quot;&gt;50:14&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.speakeasy.com/post/vitest-vs-jest&quot;&gt;Vitest vs. Jest&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#aiden-bai-render-shaming-sites-while-working-on-react-scan&quot;&gt;52:29&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/aidenybai/status/1862529226727121366&quot;&gt;Aiden Bai “render-shaming” sites&lt;/a&gt; while &lt;a href=&quot;https://react-scan.com/&quot;&gt;working on React Scan&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#lenzs-webers-testing-libraryreact-render-stream-testing-library&quot;&gt;55:14&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/testing-library/react-render-stream-testing-library&quot;&gt;Lenz’s Weber’s testing-library/react-render-stream-testing-library&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-12#outro&quot;&gt;58:13&lt;/a&gt;]&lt;/code&gt; Outro [00:00]&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Hello people. Thank you for joining us for the December edition, the end of 2024. this is almost this year in React, this time around. [00:08]&lt;/p&gt;
&lt;p&gt;But yeah thanks for joining for December&#39;s This Month in React, wherewe recap and digest recent developments in the ever evolving React and web ecosystem. Coming to you live from Reactiflux, the place for professional React developers, and supported by Infinite Red. [00:22]&lt;/p&gt;
&lt;p&gt;I&#39;m Carl. I&#39;m a staff product developer and freelance community leader here at Reactiflux, where I run community programs like this. [00:29]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Hi, I&#39;m Mark. My day job is working at Replay building a time traveling debugger for JavaScript and outside of that I do ridiculous amounts of Redux stuff. [00:39]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; And I am Mo. I head the mobile team at Theodore. I&#39;m quite active in the React Native ecosystem and I organized the React Native London meetup and conferences. [00:47]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Right into it. I don&#39;t really have a job market or conferences coming up this month. I had noted that over the last, six weeks or so, the list of upcoming conferences has dwindled down to zero. I&#39;ve seen them start to pop back up again. [01:01]&lt;/p&gt;
&lt;p&gt;So we&#39;ve rounded that corner of people getting prepared for next year, but we&#39;ll be back with some more conferences. to notify you of next month. [01:10]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; that is that I actually sat down and started trying to do preparation for applying to conferences for next year. Some of them apparently have already closed for next year. So it&#39;s, getting ahead of the timeline process. [01:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; definitely getting ahead of it. Yeah small fun news for me, I am on staff for SquiggleConf next year, so, I&#39;ll have news for that, but it&#39;s not until September, so, no rush. Highly [01:36]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; recommendd folks going to SquiggleConf. It was great. [01:40]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; But yeah, into it. Before we get all the way into the main content a note from our sponsor. [01:45]&lt;/p&gt;
&lt;h2 id=&quot;sponsored-by-infinite-red&quot;&gt;Sponsored by &lt;a href=&quot;https://infinite.red/&quot;&gt;Infinite Red&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; We are sponsored by Infinite Red, which is an expert React Native consultancy. They&#39;ve been around since 2015, so like about to be 10 years, Give it another week or so and that&#39;ll be ten years. They&#39;re owned by Jermaine Holmgren, Todd Wirth, and Gant Laborde. They&#39;re our only sponsor in part because they do so much more than most consultancies and most of the companies in the ecosystem. [02:07]&lt;/p&gt;
&lt;p&gt;there&#39;s just not many other people who operate at the same level as they do. I&#39;ve been seeing their name for as long as I&#39;ve been active professionally. And they&#39;re still around. They&#39;re still doing great stuff. They only do React Native. They&#39;ve built over 75 apps for companies and startups. [02:21]&lt;/p&gt;
&lt;p&gt;And other than great people who&#39;ve done great things for the ecosystem they&#39;re a team of about 30, mostly devs, mostly 10 years of experience or more and they work alongside your team to develop expertise at that company. So if you are spinning up a new product with React Native, or just trying to develop in house expertise with React and React Native, they can definitely help you hit the ground running. [02:44]&lt;/p&gt;
&lt;p&gt;So give them a ring. &lt;a href=&quot;https://infinite.red/&quot;&gt;https://infinite.red/&lt;/a&gt;. [02:46]&lt;/p&gt;
&lt;h2 id=&quot;new-releases&quot;&gt;New Releases&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; cool. Into some new releases. [02:48]&lt;/p&gt;
&lt;h2 id=&quot;relay-v182&quot;&gt;&lt;a href=&quot;https://github.com/facebook/relay/releases/tag/v18.2.0&quot;&gt;Relay v18.2&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; First on the list, we got Relay18. 2. They&#39;ve got an experimental hook for pagination with prefetching and a at catch directive, or the catch directive has been updated so it can be used on fragments and queries and mutations. [03:03]&lt;/p&gt;
&lt;p&gt;So just better error handling, looks like. Better pagination, better error handling. [03:07]&lt;/p&gt;
&lt;h2 id=&quot;react-admin-v54&quot;&gt;&lt;a href=&quot;https://github.com/marmelab/react-admin/releases/tag/v5.4.0&quot;&gt;React Admin v5.4&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; There&#39;s React. Admin, 5. 4 not a lot of notes here, but it&#39;s out, it&#39;s new, if you&#39;re using it, definitely check it out. [03:16]&lt;/p&gt;
&lt;h2 id=&quot;preact-v1025&quot;&gt;&lt;a href=&quot;https://github.com/preactjs/preact/releases/tag/10.25.0&quot;&gt;Preact v10.25&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Preact has a release, 10. 25 looks like stronger types. Support for object interface as a listener, , It looks like the last couple of releases have all been pretty small. So, you know, this is just sort of Preact doing its Preact thing. I&#39;m not really sure if they&#39;re still abiding to the original idea of like drop in replacement for React. It&#39;s, I think, especially with React server components, they&#39;ve diverged a little bit. But yeah, there&#39;s still use for it for sure. [03:45]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yeah, I&#39;ve not sat down and tried to do a strict line by line feature comparison, but I think at this point generally support most of the original hooks. But I think beyond that, , they&#39;ve stopped trying to match things feature for feature. So, if you&#39;re doing relatively straightforward things, then, you may have actual compatibility, especially if you like want to use any of the new, like React 19 features or anything with the Preact bundle, then obviously they wouldn&#39;t work. [04:14]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; right. I guess my mental model for it is this is like, if you&#39;re working in a highly constrained environment where you would still like the niceties of React, React is great, but if you&#39;re not dealing with a highly constrained environment, then might not be necessary. [04:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; So an interesting one, I guess an interesting use case for Preact is that it&#39;s commonly used in TV development. If you&#39;re building web apps that are going to run on TVs, where there&#39;s a very, very small amount of resources. A lot of times I&#39;ve seen people use Preact. So some big names in TV apps that you might&#39;ve known, which I don&#39;t know if I should mention, but you know, some big TV apps will be using Preact because a lot of the apps that you have on TVs are web apps, but they need to be constrained in the resources that they use. Mm [04:57]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; is just ironic how Web app has become the default, way to distribute things everywhere. I [05:05]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Yeah. I mean, web is like kind of a standard almost for TV, for TVs. Like if you&#39;re building for Samsung, if you&#39;re building for LG and a bunch of other TVs, you build it using a web app, so it&#39;s pretty cool that it&#39;s standardized around that. [05:18]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, I talked to someone about React Native on TV too, yeah. Neat. Funny. JavaScript eating the world. [05:25]&lt;/p&gt;
&lt;h2 id=&quot;playwright-v149&quot;&gt;&lt;a href=&quot;https://playwright.dev/docs/release-notes&quot;&gt;Playwright v1.49&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; There&#39;s also Playwright 1. 49. Nothing too fancy there, but pretty widely used test tool, so if you&#39;re using that, there it is. [05:33]&lt;/p&gt;
&lt;h2 id=&quot;astro-v50&quot;&gt;&lt;a href=&quot;https://astro.build/blog/astro-5/&quot;&gt;Astro v5.0&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Astro has a major release, version 5. 0. what they&#39;re calling content layer, a new flexible and pluggable way to manage content, providing a unified type safe API to define, load, and access your content, no matter where it comes from. Sounds a lot like Gatsby&#39;s [05:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; was about to say that, yeah. [05:50]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; So fair enough, you know, like that&#39;s a real need, you know, loading content from many places. Very real need. Sounds like they&#39;re not using GraphQL for it. So, different take. Fair enough. [06:00]&lt;/p&gt;
&lt;h2 id=&quot;radon-ide&quot;&gt;&lt;a href=&quot;https://ide.swmansion.com/&quot;&gt;Radon IDE&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, there was Radon IDE. Mo, you want to talk about that? [06:03]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; it used to be called the React Native IDE, and then they rebranded for obvious branding reasons to Radon IDE, fun little Easter egg. Radon on the element lists is RN. So, anyway React Native traditionally has not had an IDE. So, you know, you build in VS Code, but a lot of the functionalities that, if you were like a Swift or an Android developer, just wouldn&#39;t be there. [06:23]&lt;/p&gt;
&lt;p&gt;And so, the folks at Software Mansion have created Radon IDE as sort of a way to make your VS Code more of a Full fledged IDE for React Native development. So it comes with a bunch of cool stuff like integrating with like your simulator and then being able to inspect elements that are on the screen and find out where they are in code, which is really, really cool. [06:42]&lt;/p&gt;
&lt;p&gt;And it&#39;s sometimes a pain in React Native breakpoint support, understanding your navigation tree. They have debugging kind of nailed down, which has been a real pain in React Native, so that&#39;s quite cool. And then another thing that was a cool little gimmicky feature, I&#39;d say, is instant replays. [06:57]&lt;/p&gt;
&lt;p&gt;So, you know, if something happens on your simulator and you&#39;re like, oh crap, that was a bug you can click back and get, like, the last 5, 10 seconds as a replay and then save that , to a file. So some cool little utilities, I&#39;d say that you can use when you&#39;re building React Native apps. It is a paid IDE, so You know, it starts at, it&#39;s around 20 a month per seat. [07:17]&lt;/p&gt;
&lt;p&gt;But you know, so something to consider. So they&#39;re going for the paid model as almost a paid extension onto VS code. [07:23]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Interesting, huh? Definitely makes sense. I mean, times I&#39;ve worked with React Native, the debugging experience was among the rougher sides of it, so it makes sense to have a stronger IDE integration for debuggability things. Cool. [07:37]&lt;/p&gt;
&lt;p&gt;and I believe Software Mansion is also Nope, never mind. I was gonna say behind React Admin, but no, they&#39;re not. [07:44]&lt;/p&gt;
&lt;p&gt;But then Software Mansion does lots of stuff in the ecosystem. They are Certainly, you know, I say not many companies do as much as Infinite Red and Software Mansion is definitely in the running there. A trusted name for sure. [07:57]&lt;/p&gt;
&lt;h2 id=&quot;react-19-compatibility-in-react-redux-and-redux-toolkit&quot;&gt;React 19 compatibility in &lt;a href=&quot;https://github.com/reduxjs/react-redux/releases/tag/v9.2.0&quot;&gt;react-redux&lt;/a&gt; and &lt;a href=&quot;https://github.com/reduxjs/redux-toolkit/releases/tag/v2.5.0&quot;&gt;Redux Toolkit&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, there&#39;s also React 19 compatibility release of Redux Toolkit. [08:02]&lt;/p&gt;
&lt;p&gt;Mark, anything you want to say there? [08:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; yeah number one, I actually had nothing to do with the work on these. One of the other maintainers, Arya, did all the actual grunt work. in React Redux, we now test against both 18 and 19. you&#39;d think it would be as simple as just bumping the peer dependencies list and shipping, but, you know, you actually want to test against them, you have to check any, any types related issues. [08:27]&lt;/p&gt;
&lt;p&gt;in the Redux toolkit case, it&#39;s actually caused a ripple effect where we. I merged the PR to support React 19 at, you know, at the code level. And we accidentally ended up, semi accidentally ended up bumping React 19 for our DocuSource based docs website. And that ended up breaking client side interactivity because we were still on DocuSource version two. [08:52]&lt;/p&gt;
&lt;p&gt;Which didn&#39;t correctly support React 19 somehow. So the doc site built and you could view it, but it was the static, you know, HTML only and all the client side interactivity broke, search, copy code button, everything else. On the one hand, it&#39;s like, you know, conceptually, it&#39;s simple. On the other hand, there&#39;s actually a lot of work involved. And then there&#39;s always the, you know, the unexpected ripple effects afterwards. [09:19]&lt;/p&gt;
&lt;p&gt;One other ripple effect I&#39;ve seen, which I don&#39;t think we have listed directly, but I&#39;ve seen a lot of people report problems with Create React App because, you know, like, beginners are trying to I assume beginners are trying to create new CRA projects. They&#39;re using, you know, It uses NPM to do the installation by default, and the CRA templates still use an existing version of React testing library that wants React 18 as a peer dependency. [09:50]&lt;/p&gt;
&lt;p&gt;And so, what happens is, NPM tries to install the packages, Also tries to install React 19, because that&#39;s the latest. And then, NPM being its helpful self, throws an error because there&#39;s a peer dependency mismatch between the installed React 19 and React Testing Library 1. 18. So, I&#39;ve seen a bunch of people report, Why can&#39;t I create a new React project? [10:16]&lt;/p&gt;
&lt;p&gt;With that kind of an error in the last couple weeks. And so basically CRE&#39;s borked at this point. I [10:22]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; That is unfortunate, yeah. But also not too surprising. I guess it&#39;s a little bit of a matter of time for that. Too [10:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; in theory it could be fixed with, like, someone publishing updates to the templates, but I have no idea who, if anyone, would do that. [10:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Not sure how actively maintained that is anymore. [10:37]&lt;/p&gt;
&lt;h2 id=&quot;main-content&quot;&gt;Main Content&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Alright, into our main content. [10:39]&lt;/p&gt;
&lt;h2 id=&quot;react-19-is-finally-out-blog-post&quot;&gt;&lt;a href=&quot;https://github.com/facebook/react/releases/tag/v19.0.0&quot;&gt;React 19&lt;/a&gt; is finally out (&lt;a href=&quot;https://react.dev/blog/2024/12/05/react-19&quot;&gt;blog post&lt;/a&gt;)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; The main, main, main, main, main content of React 19 is out. It is officially released and usable. [10:47]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yay! [10:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, so, we&#39;re gonna spend a minute, pretty much everything in these, you know, release notes and, , overview blog posts. , there&#39;s nothing brand new, , they&#39;ve been messaging this, they&#39;ve been talking about it, they&#39;ve been, you know, trickling out bits. over the last year and a half. So pretty much everything in this episode that we&#39;re going to discuss, at least for React 19, we&#39;ve already covered in some detail in the past, but we&#39;re going to bring it all together. this is the one where we talk about it all holistically. [11:16]&lt;/p&gt;
&lt;h2 id=&quot;upgrade-guide-from-april&quot;&gt;&lt;a href=&quot;https://19.react.dev/blog/2024/04/25/react-19-upgrade-guide&quot;&gt;Upgrade guide from April&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, there&#39;s a great upgrade guide from back in April. I think that was before they found the issue with Sibling. [11:23]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yep, because that happened at the start of June. [11:26]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; So that was when they thought it was going out pretty, pretty shortly. Here we are eight months later, and it&#39;s out! [11:31]&lt;/p&gt;
&lt;h2 id=&quot;removed-things&quot;&gt;Removed things&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I&#39;m gonna start with what they took out, because I, it&#39;s a lot of things that I, Remember using, I remember fondly. [11:38]&lt;/p&gt;
&lt;p&gt;So they removed prop types. There&#39;s no more prop types it just silently gets ignored. know, they mentioned prop types were deprecated in April 2017. So here we are seven years later, and it&#39;s finally, a deprecated feature is finally being removed. Wow. Likewise, they removed default props for functions. For class components, those still have default props, but for a function component, just give it a default argument. It&#39;ll figure it out. [12:05]&lt;/p&gt;
&lt;p&gt;Finally removed legacy context. Also, just like prop types, deprecated in October 2018. Six years later, here we are. They removed string refs, the create factory helper, because that was if you can&#39;t use JSX, you can use this instead. So yeah, everyone uses JSX. Widely supported. [12:25]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; I&#39;ve used a couple different little third party helper libraries for JSX environments, but this was one that was sort of built in. [12:34]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yep [12:34]&lt;/p&gt;
&lt;p&gt;some testutils, removed some deprecated DOM helpers. Or, Render and Hydrate are now removed in favor of their concurrent equivalents, the CreateRoot and HydrateRoot, as well as UnmountComponentAtNode and FindDomNode. They also removed UMD builds, Universal Module Declaration definition. [12:58]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Definition, yeah. [12:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, that&#39;s not really been super relevant for a very long time now, not sorry to see that go. What was the, what was the main tool that used UMD? [13:09]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Well, okay, so, recap for people. So we had, you know, we, originally we had script tags and everything&#39;s a global, and then the AMD format, Asynchronous Module Definition, was a, community created module format for use in the browser. CommonJS, loosely put, was designed for use in Node because it requires reading a file off disk synchronously. [13:31]&lt;/p&gt;
&lt;p&gt;UMD was a, someone figured out the incantation to wrap the actual code that you cared about in a complex header that basically tried to figure out, am I being loaded as a script tag, a CommonJS file, or an AMD file, so that one bundle could serve as all three formats. Simultaneously. In practice, UMD files have basically been generated for use as script tags loading off of unpackage or something like that. [14:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; sure, right. Yeah, I was thinking of RequireJS with the AMD module. but yeah, now with ESM and you know, dynamic import and all the bundling tools that we have now, that&#39;s, that hasn&#39;t really been relevant in six or eight years, something like that. Or it hasn&#39;t been cutting edge, at least. Hasn&#39;t been the recommended. [14:22]&lt;/p&gt;
&lt;p&gt;But yeah, so, cool. That&#39;s all the stuff they removed. A lot of old things that haven&#39;t really, that have been deprecated for long enough that, yeah, they can go away. [14:32]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yeah, a couple observations there. One, I made the same decision around removing the UMD bundles from the Redux packages when I shipped RTK 2. 0 last year. The difference there is that I replaced it with an ESM format file that had all the process node env references compiled out of it. [14:52]&lt;/p&gt;
&lt;p&gt;And the React packages still don&#39;t have, quote, proper ESM support. So this, in one sense, they did actually remove something without a direct replacement for it. I&#39;ve seen a number of suggestions to you that if you need to use React, like, in essence, as a script tag, then the intended replacement is to use a site called ESM. SH, which I actually looked into that a little bit, and what it does is it apparently uses ESBuild to compile various third party libraries with some sort of an ESM wrapper around them. So, even though React itself is still only shipped in common JS format, this site, this service it&#39;ll re wrap various packages with ESM around them, even if they didn&#39;t ship with it. [15:46]&lt;/p&gt;
&lt;p&gt;And then serve that up as, you know, a script tag. [15:50]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Interesting. Yeah, I hadn&#39;t heard of esm. sh. Looks like it&#39;s maybe sponsored by Cloudflare? It says the CDN is powered by Cloudflare. So it looks like this might be a service, you know, for the ecosystem that they&#39;re running. [16:05]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; and then the other one is, if you look at the issue with people complaining that find DOM node was about to be removed, there&#39;s, there&#39;s still a number of people who are not terribly happy about that one. they&#39;ve got cases where their component structure is, it&#39;s deep enough, nested enough that they, they needed to rely on find DOM node to Find the right things to interact with and, people are not happy that it&#39;s been taken away. [16:30]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; That seems a little strange to me. I feel like if you&#39;re in that position, there are native browser features that would do you pretty well enough, but okay, sure. I&#39;ve not been in that situation, so I don&#39;t know what the weird technical trade offs involved there might be. [16:44]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; And then our favorite hidden internal non documented API, &lt;code&gt;SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED&lt;/code&gt;, has been renamed to &lt;code&gt;SECRET_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE&lt;/code&gt; [17:00]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; okay, that&#39;s a little more descriptive. It&#39;s a little more actionable. I don&#39;t know of anyone who&#39;s been fired for using those, so, a little more accurate. [17:07]&lt;/p&gt;
&lt;h2 id=&quot;new-things&quot;&gt;New things&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, some, getting into some new things, what they&#39;re, you know, what they&#39;ve added now looks like, to me, it looks like the big stuff is mostly around transitions. my mental model for this is a little bit like, for most of React 18, we used like useState and useEffect and like a couple things around there to do basically everything. [17:31]&lt;/p&gt;
&lt;p&gt;And I think the core team identified that there was a pretty consistent and tricky use case of what happens when you need to take actions and manage state as components are, mounting and unmounting. That was definitely a little bit painful. Getting the intricate dance of as things unmount and remount, or different things swap in to replace them has definitely been awkward and tricky, especially for little things like animations. [18:02]&lt;/p&gt;
&lt;p&gt;Like If you have an animation, you can&#39;t actually unmount until the animation is completed, which may, you know, if you have a state change that would remove the component, but you want an animation to finish, then you need to like add in this like extra ceremony to keep it technically mounted while not actually in use, not actually responding to new events and things like that. So that&#39;s my mental model for what these transitions are intended to support. [18:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; That feels a little different than my understanding. So I&#39;ve not used transitions myself, probably because I haven&#39;t been writing as much React front end stuff lately. But, like we, you know, there used to be the discussion of, you know, React 18 is going to have a concurrent mode. [18:42]&lt;/p&gt;
&lt;p&gt;eventually said, okay, like, having an entire mode isn&#39;t what we need, we&#39;re going to have concurrent features instead. So my, my understanding is that transitions are, primarily part of that concurrent feature set where you&#39;re basically telling React, we&#39;re going to start a render, but this is going to be considered low priority. [19:02]&lt;/p&gt;
&lt;p&gt;This could be interrupted. It will do the, like, you know, render a tree for five milliseconds and then pause to see if the browser has any events. So, my understanding is that transitions are primarily telling React, do some work, but this is considered a low priority render versus all the normal use state type based rendering. [19:26]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Interesting. Okay, fair enough. [19:28]&lt;/p&gt;
&lt;p&gt;so this is where the, you know, confusing verbiage that React introduced around like actions and how now we have many, many, many Actions is a very overloaded term in the ecosystem. [19:40]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; for Redux, another thing for MobX, now another thing for React Forms. [19:44]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Right, and I remember Astro had an actions thing as well a while back. So, right, there&#39;s just many, there&#39;s a lot of actions being taken. Yeah, so functions pass to start transition are actions. There&#39;s some additional hooks that are also able to tap into those, into the Actions as being used by active transitions. [20:05]&lt;/p&gt;
&lt;p&gt;So there&#39;s used action state which is a new hook to order actions inside of a transition with access to the state of the action and the pending state. So it, accepts a reducer that can call actions. So this is this smells a little bit like redux, baked into an interaction. a little bit. [20:24]&lt;/p&gt;
&lt;p&gt;As well as useOptimistic, which ties into these transitions by letting you update state while the transition is in progress, and it returns the state as well as a set function to optimistically update the state within a transition to be the expected final value. So, you know, like if you&#39;re doing optimistic updates within your UI, firing it off to persist in the back end, but immediately updating the local UI as if that has already finished. [20:51]&lt;/p&gt;
&lt;p&gt;But then gracefully handling the actual outcome of the of whatever action you took. [20:57]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; one observation here, you know, less around the behavior and more around the description. When React 19 came out a few weeks ago, the post in the JavaScript subreddit, the main discussion was basically around that paragraph and how hard it is to read for someone who isn&#39;t intimately familiar with React already. [21:19]&lt;/p&gt;
&lt;p&gt;And You know, a couple of different thoughts around this, like, one is that, you know, React has added a lot of things over time. Another is that there&#39;s been some cases where the React team has tried to turn things into proper named nouns in a way. Like, it&#39;s not just like, the useEffect hook, there are capital E effects. [21:44]&lt;/p&gt;
&lt;p&gt;And so, and so now it&#39;s not just, you know, we&#39;re going to do a low priority render, it is a capital T transition. And I, I just glanced at the docs. Like I&#39;m, I&#39;m looking at the use transition docs page and it does intro with use transition as a react hook that lets you render a part of the UI in the background, but like it right away starts using capital T transitions without ever defining what that word means. And there isn&#39;t really like a conceptual explainer. [22:19]&lt;/p&gt;
&lt;p&gt;So, part of it, like I realized that release notes aren&#39;t the right place to, you know, to go out and define a bunch of things, but both reading this specific paragraph, as well as trying to figure out how some of these new features are integrated into the docs and the teaching workflow, it feels like they&#39;re like, we&#39;re kind of missing a bit of a, like a conceptual explainer for some of these terms and how they relate to each other. [22:46]&lt;/p&gt;
&lt;p&gt;it&#39;s fixable, but, you know, like that, that&#39;s just one of the things that stuck out to me. [22:50]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, makes sense. Yeah, that&#39;s fair. it feels like an Apple type of branding. You know, it&#39;s not a, it&#39;s not an mp3 player, it&#39;s the iPod. [22:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; not the, just iPod, iPad, iPhone, whatever. [23:03]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; No articles. Sure. [23:04]&lt;/p&gt;
&lt;p&gt;Yeah. other than transitions, they got the use hook, which is a little bit old hat by now, accepts a promise or context for accessing resources within render. If you give it a promise it will suspend until the Promise is resolved. [23:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; the naming still feels awkward, like, I don&#39;t have a better suggestion, but, in today&#39;s world, naming things for Googleability is very relevant, and giving this thing the name use is like the most un Googleable thing ever. [23:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; There, right, right. [23:38]&lt;/p&gt;
&lt;p&gt;And back to my pet peeve about some of the quirks of React 19. This is the use hook, and it says right in the release notes, use can only be used in render, but can be called conditionally. And like, come on, rules of hooks, like, drilled into us repeatedly. Anything called use Use whatever. Cannot be called conditionally. [24:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; With the exception that you could already get away with, you could apparently already get away with calling useContext conditionally. I&#39;ve never actually done it myself, but apparently, technically that worked. [24:14]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Interesting. I have not either. I don&#39;t think I knew that, actually. So I guess, cool, this is consistent with use context. [24:20]&lt;/p&gt;
&lt;p&gt;So clearly, I guess, it has its lineage in there. It is the way to use context. it just seems a little strange to me to, like, this seems like it&#39;s going to be a very widely used hook, and so for it to break the rules of hooks, quote unquote, quote unquote. [24:34]&lt;/p&gt;
&lt;p&gt;Feels like it adds a lot of, I don&#39;t know, weirdness, ambiguity, confusion. [24:39]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; it does I mean, I know that there&#39;s plans to hopefully expand that down the line. My, my Redux co maintainer, Lens, who also works on Apollo, has been begging for the ability to pass an observable. to use for a while now. So it&#39;s possible that that may happen at some point. It also is kind of one of those things where like they, you know, they needed the rules to be strict originally. [25:03]&lt;/p&gt;
&lt;p&gt;And now that the rules are defined and the ecosystem understands them, they can start to tweak it. But as you know, that also leads to confusion as well. [25:11]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Right, right. it&#39;s all a game of telephone and this adds strangeness. It adds exceptions to the rules. lots of other convenience features coming out with React 19. You can render metadata tags in components wherever, and they&#39;ll automatically get hoisted into the head section, which is great. [25:28]&lt;/p&gt;
&lt;p&gt;I, I think I said it when this was first announced, but like, the, React Helmet was, as far as I know, the main way to really interact with head in React, and it was just like not very consistently maintained. I kept running into, like, I feel like every time I used it, every time I was spinning up a new project and trying to interact with the head, it&#39;s like, oh, React Helmet, cool. [25:48]&lt;/p&gt;
&lt;p&gt;Pull that in. Oh, this does not behave in the way I expect in these many different ways. And so then what I thought was just gonna be a trivial, it works. Was not, was not trivial, did not work. So love that. Love to see that. [26:03]&lt;/p&gt;
&lt;p&gt;But yeah, RIP React Helmet. That was, I remember, I remember when that was released. I remember that was announced and going like, what the hell? NFL is releasing an open source project at the bleeding edge and they called it React Helmet. This is perfect. Protects the [26:18]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; one, definitely one of the best project names ever. [26:21]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yes, absolutely. So, RIP to NFL&#39;s React Helmet. another convenience feature, you can use async scripts. [26:30]&lt;/p&gt;
&lt;p&gt;You can render them anywhere in the component tree, and they will be, React will handle the ordering and deduplication of them, which is neat. Yeah, deduplicating async scripts sounds That makes me a little scared. But yeah, I guess it shouldn&#39;t be too bad as long as you&#39;re not doing any weird stuff with the file name. Yeah, likewise, more head stuff. React 19 will ensure style sheets are inserted into the head before revealing the content of a suspense boundary. So, you know, predictable, Easily anticipated ways of interacting with the head. Also some initial load optimizations. Initial load and transition, page transition optimizations around pre init, pre load, pre fetch DNS, pre connect. [27:14]&lt;/p&gt;
&lt;p&gt;These are all, like, kind of low level optimizations that used to be exposed at the level of, like, script tags, where you could say, you could communicate to browser what level of initial connection to try and get ahead of. You know, because it takes a little bit of time to look up the DNS, to connect to the server, to open, you know, begin streaming data. [27:34]&lt;/p&gt;
&lt;p&gt;So, it sometimes introduced extra latency that was undesirable. So you can now, in React 19, have a little bit more control over how external assets get loaded in that way. You know, just even like pre fetch DNS and pre connect. Will cut the latency a decent amount. I&#39;ve used those things in the past. It&#39;s a pretty nitty gritty performance optimization, but yeah, definitely important that we can now do that. That&#39;s nice. [28:00]&lt;/p&gt;
&lt;p&gt;Yeah, a big one, a nice one. One less use case for Refs can now return cleanup functions, so that&#39;s definitely big. That&#39;s definitely good. I think it had definitely been a pattern to, like, do a useEffect, to do things like setting up event listeners, and that was a little bit weird. [28:19]&lt;/p&gt;
&lt;p&gt;I don&#39;t know, it&#39;s just a little funky, because they&#39;re, they&#39;re clearly tied to the DOM. It&#39;s associated with a DOM node so having to do it in useEffect introduced, it just, extended that distance between the code that was being run and what it relied on. You had to do extra weird deduplication stuff because it was an effect. [28:36]&lt;/p&gt;
&lt;p&gt;So now, because refs support cleanup functions, it&#39;s just a little bit closer, you can keep it a little more self contained. [28:42]&lt;/p&gt;
&lt;h2 id=&quot;ref-callbacks-react-19-and-the-compiler&quot;&gt;&lt;a href=&quot;https://tkdodo.eu/blog/ref-callbacks-react-19-and-the-compiler&quot;&gt;Ref Callbacks, React 19, and the Compiler&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yeah, and there&#39;s a, there&#39;s a good post from Dominic Torfmeister, the, you know, maintainer of React Query, he had written about dealing with, dealing with refs a couple years ago. And so he kind of revisited that topic and showed that, you know, hey, there, here&#39;s, here&#39;s cases when, You know, now you can do things like setting up a resize observer in a ref, and you don&#39;t even have to have a useEffect plus a useRef to manage that. [29:10]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; another very small convenience feature, you can now render just context instead of context. provider. That&#39;s nice, that&#39;s good. Very small, very petite. React 19 also has support for custom elements, i. e. web components. For the first time in React&#39;s history we discussed that at much greater length in previous episodes. I don&#39;t know if there&#39;s that much more to say, web components. If you&#39;re using web components, cool, great, now you can use React as well. [29:36]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; it&#39;s still really complicated You know, a lot of it boiled down to, like, React can, in theory, render any arbitrary HTML tag. React have a hard coded list of element types that it knows are part of HTML. But, React 18 and earlier had issues with properly passing complicated props into web components. [30:02]&lt;/p&gt;
&lt;p&gt;And that&#39;s because of the whole difference between HTML attributes versus JavaScript DOM node properties, which I still only partly understand myself. But think part of the issue was React wanted to pass in. properties, but a lot of these things expected attributes instead. [30:23]&lt;/p&gt;
&lt;p&gt;And so there, there was a mismatch in, in how things would get passed down as well as issues with setting up event listeners as well. And from what I&#39;ve read, went into the, the mile long discussion threads, they&#39;re like the web component spec does not necessarily define how a given web component receives this. [30:42]&lt;/p&gt;
&lt;p&gt;it&#39;s It&#39;s implementation dependent on a per web component basis. So it&#39;s literally how it&#39;s almost as if every single web component author, as they write that component decides, how is this component going to get its data or trigger its events? And so, different libraries, different wrappers, different authors take different approaches. [31:09]&lt;/p&gt;
&lt;p&gt;And so, part of the issue with implementing this was trying to find a reasonable set of heuristics that would work most of the time, and also allow React to pass this web component in framework compat spec that had been put out there. And after React 19 came out, I saw a couple more people posting complaints that certain scenarios didn&#39;t work right. [31:34]&lt;/p&gt;
&lt;p&gt;Like, I guess if you define a function field on your web component class. And then you also try to pass in a prop with that name. React will happily overwrite the function because it just assigns the field name, but ultimately it seems like web component authoring is a very inconsistent and per component basis kind of a thing. [32:00]&lt;/p&gt;
&lt;p&gt;And there&#39;s a lot of edge cases with the interop and so they&#39;re never going to make everybody happy. [32:06]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Awesome. Sounds great. Yeah, the finer points of attributes versus properties is, my eyes began glazing over at that point. [32:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yep. [32:14]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah okay. a convenience that got me a little excited in React 19. Hydration errors will now be collapsed into a single error, even if there are multiple mismatches. [32:23]&lt;/p&gt;
&lt;p&gt;Like, nice. [32:26]&lt;/p&gt;
&lt;p&gt;Just [32:26]&lt;/p&gt;
&lt;p&gt;Right, just having my console be blasted with, like, 30 stack traces because, like, obviously this hydration did not match is, yeah, very happy to have that just be didn&#39;t work, not here&#39;s every point at which hydration did not work. That&#39;s nice. [32:44]&lt;/p&gt;
&lt;p&gt;So kind of subtle, I don&#39;t quite, I don&#39;t understand the, the precise details here, but errors in render are not rethread. If they&#39;re not caught by an error boundary, they&#39;re reported to window report error, not logged with console error. There&#39;s also, they&#39;ve introduced onUncaughtError and onCaughtError methods to the create root and hydrate root. APIs to customize how those errors get handled. So I guess they&#39;re kind of stepping back from like automatically handling every error and logging it to the console to saying, if you have a boundary, we&#39;ll log it. [33:18]&lt;/p&gt;
&lt;p&gt;If you don&#39;t have a boundary, you can configure how it gets handled on your own. [33:23]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; You know, that&#39;s interesting. This, this might be the kind of thing that libraries might end up caring about more, but I, I actually feel like I need to go back to those React 19 compat PRs that I did not write myself, but I did merge. Because I, I think we had some tests where we had, like, assertions that, like, if an error happens while doing, like, a React Redux render or something, that errors would either get thrown of rendering or get logged somewhere. [33:50]&lt;/p&gt;
&lt;p&gt;So now I&#39;m actually curious how we, how those PRs ended up handling them. [33:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Sure. Right. You can never know what you don&#39;t know. obviously that&#39;s the majority of our, I think that&#39;s the majority of what we wanted to get to today. [34:01]&lt;/p&gt;
&lt;p&gt;But uh, yeah, Mo, tell us about React Native screens. Hang [34:07]&lt;/p&gt;
&lt;h2 id=&quot;react-native-screens-400&quot;&gt;&lt;a href=&quot;https://blog.swmansion.com/introducing-react-native-screens-4-0-0-1b833ff98a55&quot;&gt;React Native Screens 4.0.0&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Major version of the React Native Screens library, version 4. 0, came out. So, you, as a React Native developer, probably don&#39;t interact directly with React Native Screens. If you use React Navigation or ExpoRouter, which uses React Navigation under the hood, you will be using React Native Screens. [34:23]&lt;/p&gt;
&lt;p&gt;React Native Screens is native layer implementation of screens on iOS and Android for your app so that you&#39;re not creating JavaScript views and not handling the view transitions on the JavaScript layer, rather you handle them on the native layer. And so a few updates here that will likely be picked up by the React Navigation libraries. [34:43]&lt;/p&gt;
&lt;p&gt;React Navigation and ExpoRouter libraries. One is that they&#39;re adding more support for the forum sheet presentation. So this is kind of the bottom sheet interaction that you&#39;ll be used to on phones. And previously it wasn&#39;t supported on Android. And now there&#39;s an Android support. It was supported on iOS but you had a limitation. [35:02]&lt;/p&gt;
&lt;p&gt;So if you ever played around with those bottom sheets, you can kind of pin them to certain points, and they&#39;ll kind of stick. They call these detents, I think. [35:10]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; This is like the sort of mobile version of a modal, where it&#39;s like an overlay that you slide around. [35:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Yeah, exactly, those ones. So the ones that come from the bottom, and, you know, you&#39;ve got a little modal, and the screen behind it is still kind of visible, and you can adjust how big the modal is. they call them sheets, I guess, in mobile development. Modals, when you&#39;re talking about in a mobile navigation world, it&#39;s the ones that kind of fully cover the screen. [35:35]&lt;/p&gt;
&lt;p&gt;Not the ones that can partially cover the screen. So you&#39;ve got some of these pop ups that fully cover the screen. Sometimes you&#39;ll see them on, like, login pages or something like that. And so, a lot of these sheets, you can kind of control where they are, so you can pin them to different locations. [35:47]&lt;/p&gt;
&lt;p&gt;So, with this new API, you are able to, on iOS, set as many points to kind of have these snap points. And on Android, I believe, there&#39;s three different snap points. That you can define. So this is kind of sticking true to the iOS and Android APIs on the native layer. They&#39;ve also made some minor improvements on animations when it comes to iOS to make it a bit more smooth. [36:11]&lt;/p&gt;
&lt;p&gt;And one of the other things that they&#39;ve done is that if you&#39;ve got a screen that&#39;s now detached, from the main tree of your navigation, so it&#39;s no longer rendered. You can preload these screens, and so this will kind of happen through React Navigation so that if you know a user is going to go onto a specific screen, you preload it, render everything, create the native views, and so you won&#39;t have this delay in getting the screen loaded onto the app, which is quite a nice feature, and I think this is great. [36:39]&lt;/p&gt;
&lt;p&gt;Quite important for optimizing your app and making sure that everything is smooth, quick, and snappy. So those are kind of some of the things. You won&#39;t really be implementing any of these yourself. You&#39;ll probably use React Navigation, so keep an eye out on the React Navigation docs and the ExpoRouter docs, because some of this stuff will be landing. [36:56]&lt;/p&gt;
&lt;p&gt;Some of it&#39;s already been landed as well. [36:58]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Nice. Makes sense. Yeah. [37:00]&lt;/p&gt;
&lt;h2 id=&quot;react-19-and-react-native-and-pr&quot;&gt;&lt;a href=&quot;https://react.dev/blog/2024/12/05/react-19&quot;&gt;React 19 and React Native&lt;/a&gt;, and &lt;a href=&quot;https://github.com/react-native-community/discussions-and-proposals/issues/842#issuecomment-2527591610&quot;&gt;PR&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Tell us about React 19 and React Native. [37:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; so taking a step back, React Native just released the new architecture. So that was the, big release that they&#39;ve been kind of working on for many, many years. And so, I think they&#39;re going through a stabilization period right now. They are I think waiting to make sure that everything is smooth, stable with the last two versions of React Native that have been released. [37:26]&lt;/p&gt;
&lt;p&gt;I suspect this will be some point in early to mid 2025, sometime in the next two releases of React Native, where they&#39;ll actually support React 19. I know that there&#39;s been some issues with supporting React 19 anyway with React Native. I think there&#39;s been some internal testing, but they haven&#39;t conclusively made sure that everything is working as expected. [37:46]&lt;/p&gt;
&lt;p&gt;So, I think there&#39;s just going to be some delay on this. But I think it&#39;s not something that we haven&#39;t seen in the React Native ecosystem. There&#39;s sometimes a lag with these major version upgrades anyway. [37:55]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, that makes sense. And especially, I&#39;m just, I&#39;m kind of connecting dots of what you were just talking about with like React Native screens, adding support for like preloading. And that sounds adjacent to, like, some of the use optimistic or use transition hooks that have popped up now as, like, first class APIs. [38:15]&lt;/p&gt;
&lt;p&gt;So I wonder if that&#39;s maybe some of the tension there, is that now that it&#39;s a first class API, a feature of React 19, React Native needs to figure out how to implement it [38:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Because it&#39;s not just JavaScript there&#39;s also an element of, you know, how do you map those to native functionalities, right? So if you&#39;re transitioning to allow a native component to be rendered, well, how do you handle that on the native layer? [38:41]&lt;/p&gt;
&lt;p&gt;So there&#39;s a lot more support that needs to happen, it&#39;s not just the browser. But you need to also make sure that at least iOS and Android support those features, not to even get into the whole out of tree platform shenanigans where you&#39;ve got a bunch of other platforms that are maintained by the community and they also need to support it. [38:56]&lt;/p&gt;
&lt;p&gt;So yeah, it has a long tail. [38:58]&lt;/p&gt;
&lt;h2 id=&quot;expo-experimental-support&quot;&gt;&lt;a href=&quot;https://x.com/Baconbrix/status/1864785257297305833&quot;&gt;Expo experimental support&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; But it looks like Expo has experimental support. [39:03]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; this is probably one of the musings of Evan Bacon over a weekend just hacking away, but yeah, there&#39;s a lot of these sort of, like, Expo kind of goes ahead of the curve with some of these things and tries to push the React Native ecosystem forward, which is great so, I&#39;m not surprised that this is supported with some sort of flag in Expo. [39:21]&lt;/p&gt;
&lt;p&gt;So yeah, it&#39;s the experiments. reactCanary, setting that to true. In Expo SDK 52, it works. These are very much experimental. Don&#39;t try these for any production apps, but it&#39;s just kind of trying to see what the effects would be ahead of time. I mean, we&#39;ve seen this pattern, like Expo supporting RSCs with the bundler, with some custom changes to the bundler ahead of time before it&#39;s even, you know, supported, in any capacity officially by Meta. [39:46]&lt;/p&gt;
&lt;p&gt;So, it&#39;s cool to see it, but it&#39;s still a long way to go for production apps. [39:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Sure, yeah. Makes sense. [39:52]&lt;/p&gt;
&lt;h2 id=&quot;nextjs-experimental-css-inlining&quot;&gt;&lt;a href=&quot;https://github.com/vercel/next.js/pull/72195&quot;&gt;Next.js experimental CSS inlining&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Well, I have a very, very small bit of React, er, a very small bit of Next. js news. They&#39;ve added a experimental CSS inlining feature. And now, if you are generating, you know, if you&#39;re, you&#39;re, if you&#39;re pulling in CSS styles, instead of it being compiled into a CSS asset and Loaded with a link tag. You can configure next so that it will just inline those styles in a style tag Yeah, this takes advantage of the React 19 precedence in deduping You know, CSS features. [40:28]&lt;/p&gt;
&lt;p&gt;So I guess this is enabled by React 19 But yeah, definitely pretty small, relatively minor performance optimization. [40:37]&lt;/p&gt;
&lt;h2 id=&quot;next-151&quot;&gt;&lt;a href=&quot;https://nextjs.org/blog/next-15-1&quot;&gt;Next 15.1&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; guess a larger bit of news. Thank you, Mark. There&#39;s also Next 15. 1 that&#39;s out Yeah, last episode we talked about how Next 15 was stable and now they&#39;re up to 15. 1 [40:50]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; The biggest one here is that because React 19 is now actually out, they&#39;ve switched to using React 19 everywhere. So actually, it&#39;s kind of funny because for now they&#39;re on React 19 stable, but there&#39;s a good chance that they will continue using those canary releases in future versions of Next down the road. [41:10]&lt;/p&gt;
&lt;p&gt;So this may actually be only a temporary problem. you know, period of time where they&#39;re, where the version of React they use actually exactly matches the stable version. [41:20]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Right. I didn&#39;t know they have, you know, One of the headers on the 15. 1 release notes is React 19, parentheses stable. So yeah, right. They&#39;ve been on Canary for forever. [41:33]&lt;/p&gt;
&lt;h2 id=&quot;react-native-fast-io&quot;&gt;&lt;a href=&quot;https://github.com/callstackincubator/react-native-fast-io&quot;&gt;React Native Fast IO&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Cool. So, next up we&#39;ve got the pre release version of React Native Fast. io out. So this was sort of first showcased at React Native London Con in November. So this is made by Mike Grabowski, who is the co founder and CTO of Callstack. And so it&#39;s basically built on top of the Nitro modules package that we&#39;ve seen and talked about in the past few months that&#39;s been made by Mark Roussevy. [41:59]&lt;/p&gt;
&lt;p&gt;And so it&#39;s a way to create native libraries that are super, super fast to execute. And so, Mike from Callstack has been working on trying to get some of the I. O. functionality in React Native implemented with Nitro modules so that they&#39;re as fast as possible. And hence, React Native Fast I. O. [42:18]&lt;/p&gt;
&lt;p&gt;So he started off with WebSockets but he eventually wants to target WebSockets, Fetch, FileSystem APIs, Blobs, and Streams. And so the whole idea is you can use the WebSockets or the Fetch that comes from React Native Fast. io and in theory it should beat all of the benchmarks for any other implementations of I. [42:36]&lt;/p&gt;
&lt;p&gt;O. related functionality in React Native. So this isn&#39;t anywhere near production. But it&#39;s something that you can give it a shot and play around with and just run some benchmarks on and eventually at some point it should land and it could be quite interesting to see what that means for the whole ecosystem because these are quite core functionalities, right? [42:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah. I uh, definitely pretty low level. If that gets much faster, that enables a lot of other interesting experiments. [43:00]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Exactly. And I think The, one of the things with this is that it&#39;s one of the, like, first implementations of an actual library with Nitro modules. So, so far Nitro modules have been very hypothetical in terms of what you can achieve. Mark&#39;s been using it on a few of his libraries, but nobody else, sort of, in the community has adopted it to this degree to build an actual package. [43:20]&lt;/p&gt;
&lt;p&gt;So, it can really start to push a lot of people towards Nitro modules when they&#39;re building native dependencies. [43:25]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Neat. Cool. [43:27]&lt;/p&gt;
&lt;h2 id=&quot;npx-create-target&quot;&gt;&lt;a href=&quot;https://x.com/Baconbrix/status/1868672438898455023&quot;&gt;NPX Create Target&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; In other news, and we talked about Expo&#39;s random demos that they release with some cool features and going ahead of the curve. Evan Bacon in a very truly Evan Bacon fashion has been working on a new CLI tool specifically for iOS called NPX Create Target. And so the whole idea with this is, is that there are certain parts of an iOS app that you can&#39;t build with React Native and you need to build in the native layer. [43:51]&lt;/p&gt;
&lt;p&gt;So what are those? Those are things like widgets, live activities. Lockscreen widgets, and there&#39;s a whole host of things that are not part of, like, the main app that you use, but are almost extensions on top of on top of your main app. And so, the whole idea with this is, is that it&#39;s been quite difficult to get these up and running with React Native so far, because you need to go into Xcode, add those, widgets and then kind of do the binding between your React Native app and the widgets that you create or those targets that you create. [44:19]&lt;/p&gt;
&lt;p&gt;And so the whole idea with this is is that it&#39;s a simple NPX command that you can run and you choose the type of target or widget that you want to use and then it kind of bootstraps all the code, links it to your React Native app, has a way for them to communicate between each other, and all you need to do is just write the Swift code to basically implement that on the native layer. [44:37]&lt;/p&gt;
&lt;p&gt;And so it&#39;s a much easier way to add these targets to your existing application to your existing Expo application. So it&#39;s a pretty cool thing. It&#39;s, it&#39;s it&#39;s nothing that you couldn&#39;t do before, but it obviously was a lot more work. And this just makes it significantly easier to get up and running with those features to make your app feel even more interconnected within the OS, within the person&#39;s phone. [44:55]&lt;/p&gt;
&lt;p&gt;I [44:55]&lt;/p&gt;
&lt;h2 id=&quot;lightning-round&quot;&gt;Lightning round&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Alright, that&#39;s all of our main content. Let&#39;s jump into the lightning round. Moe, you&#39;re up again. [45:02]&lt;/p&gt;
&lt;h2 id=&quot;react-native-demo-for-android-xr&quot;&gt;&lt;a href=&quot;https://x.com/o_kwasniewski/status/1868645896239690009&quot;&gt;React Native demo for Android XR&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; So, quick thing. Android released some new features. Cool mixed reality stuff Android XR. So there&#39;s a whole release on that. And of course someone had to create a demo of React Native running on it. So there&#39;s a quick tweet showing React Native running on Android XR. [45:17]&lt;/p&gt;
&lt;p&gt;We&#39;ll see how this expands, but it&#39;s always within days that someone creates a demo of React Native running on any new platform or any new APIs. [45:25]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Nice, cool. Okay, so this looks kind of like Android version of Apple Vision. [45:30]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Yeah, it seems like it&#39;s a competitor to Vision OS, basically but Android&#39;s really trying to standardize the way that XR goggles are built with Android. [45:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; right, cool. Good luck. [45:43]&lt;/p&gt;
&lt;h2 id=&quot;if-not-react-then-what&quot;&gt;&lt;a href=&quot;https://infrequently.org/2024/11/if-not-react-then-what/&quot;&gt;If Not React, Then What?&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Another post from Alex Russell was going around in the last few weeks. Alex generally is on a one man crusade against client side JavaScript and the React ecosystem in particular. This one was titled, If Not React, Then What? And most of it boils down to most sites shouldn&#39;t be single page applications. [46:04]&lt;/p&gt;
&lt;p&gt;Most sites shouldn&#39;t be using react. I guess there&#39;s other client side libraries that you can use, but generally they shouldn&#39;t be client side in the first place, which is frankly, like, like my own summary is actually a, like a reasonable stance to take. And if he phrased it that way, he would probably have more people listening to him. [46:23]&lt;/p&gt;
&lt;p&gt;But the vitriol and the vehement and the anger that he puts into these posts, even when he has valid points, makes it really hard for people to actually listen to what he&#39;s saying. [46:33]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Sure. I haven&#39;t read this in depth yet. I would like to but yeah, he like very strongly states that, let me pull a direct quote. &quot; React is a legacy technology, but it continues to appear in Greenfield projects. In short, nobody should start a new project in the 2020s based on React. Full stop.&quot; That is uh, not something I&#39;d agree with. Strongly stated. [46:57]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; reading the About Me page, and Alex Russell, I didn&#39;t know this, works at Microsoft. And he&#39;s a partner project manager on the Edge team. [47:05]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; he was previously at Google and he also basically invented like two thirds of what we now know as the web component spec as well. I. [47:11]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Yeah, I wonder how Microsoft feels about these stances. all of these posts are, these are not my, you know, employer&#39;s opinions. These are endorsed by no one except me. [47:22]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I randomly, I was just trying to refresh my memory on who Alex Russell is. Cause I, I recognize his name, I know his Twitter handle is slightly late, and I have seen him for years, as like, somebody in the ecosystem. So I was just trying to refresh my memory more specifically, and I quickly found A random Hacker News comment that describes him as early member of the Chrome team, three time elected member to the W3C from 2013 to 2019, and representative of TC39 from 2006 to 2017. [47:52]&lt;/p&gt;
&lt;p&gt;this is from two years ago, and it says, Lately, he&#39;s been very critical of single page apps in React, going as far as to call the past ten years a lost decade. guess he&#39;s been on this for a minute, but has some, like, Drawing deep credentials to, on, you know, web technologies. So, interesting. [48:08]&lt;/p&gt;
&lt;p&gt;Curious. But if he&#39;s on, if he&#39;s coming at this from a web components perspective, that adds a lot of color to my understanding of the situation and his arguments. [48:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; my take on it is like, he, he absolutely has the technical credentials to back up most of his opinions as well as statistics on like how bad, I mean, like many website bundles actually are like, he&#39;s not wrong about that, but he then goes from that to say that anyone using react is doing it wrong. Basically any single page app is wrong and the people who push react have been doing so with malicious intent from day one. Which is way over the line. [48:49]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, I&#39;m gonna, I would disagree strongly with that. I feel like in, I feel like I can understand his macro perspective there, cause like, I have used a lot of like news websites that are like clearly using React very badly. It has been, it has been put in a lot of contexts that I don&#39;t know that it was the best tool for the job, because it was a popular tool that was easy to hire for. So I guess I can empathize with the perspective a little bit, but, I don&#39;t know, the nuance there, I feel like there&#39;s more nuance [49:18]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; no nuance, and that&#39;s the issue. [49:20]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Well, just to go a little bit more into this. I just read his Rebuttal to if someone says, well, what about React Native? And I&#39;m just going to read this verbatim. &quot;React Native is a good way to make slow apps that require constant hand tuning and an excellent way to make a terrible website. It has also been abandoned by its poster child, [referring to Airbnb]&quot;. And then he goes on to suggest that you should use Capacitor and Cordova instead. Cordova is The poster child of making awful applications. [49:47]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; everything he just said applies way more to Cordova than to React Native. [49:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; yeah, his, he seems to be pushing you to make web apps and use those on mobile with responsiveness. So I&#39;ve at least on the native side, I think his opinions are incredibly unvalidated. He&#39;s probably has more credentials on the web, but that is a bizarre take to then go and say Capacitor and Cordova are better options. [50:10]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Oh yeah, yeah, definitely agree with that one. [50:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Moving right along. [50:14]&lt;/p&gt;
&lt;h2 id=&quot;vitest-vs-jest&quot;&gt;&lt;a href=&quot;https://www.speakeasy.com/post/vitest-vs-jest&quot;&gt;Vitest vs. Jest&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Great post titled Vitest vs Jest. I think this is Very needed. I think this is a great post. Just it starts with like just like a raw feature comparison comparing what does Vitest support and what does Jest support. And just goes into a bit of like a oral history of like, why did Jest appear? Why did it succeed? always appreciate some oral histories. I think it&#39;s really useful to understand how things came about. [50:41]&lt;/p&gt;
&lt;p&gt;Like I remember when ultimately Jest succeeded because it got open sourced. Also by Meta right, like within six months after React came on the scene. So like people had started using React, people had started using all of the everything Facebook was putting out, Facebook at the time was putting out React and Flux and then like, Oh sure, Jest. [51:06]&lt;/p&gt;
&lt;p&gt;So it definitely got a huge, huge, huge boost by the timing of its open source release. I never really got a ton of professional experience using other tools like Mocha or Chai and all of those. I don&#39;t really know what the comparison is from my perspective like functionality wise they all seemed about the same and But I don&#39;t know I used Jest because I was early in my career and I didn&#39;t have opinions and it seemed popular So why not? [51:31]&lt;/p&gt;
&lt;p&gt;Yeah, over the years definitely it became It, it became not a preferred tool of mine because I found myself needing to maintain parallel bundle configurations for, a production build, and then for Jest, and then for like end to end testing, and then, and so it&#39;s just like, it just became like one more target that made upgrading instance, like, new webpack or new, I don&#39;t know, any new core technology, I found updating Jest was just a huge pain in the butt. [52:03]&lt;/p&gt;
&lt;p&gt;So it became not my preferred tool for that reason. And Vitest seems to be a little bit better about that, but But I have not had that same professional experience of, I&#39;m on a team with 15 other engineers trying to update a core technology without breaking everything or stopping work. So that&#39;s really the litmus test for me on a tool like Vitest or Jest. [52:23]&lt;/p&gt;
&lt;p&gt;And I&#39;ve had negative experiences with Jest and no experiences with Vitest. Ergo, Vitest is obviously better. But [52:29]&lt;/p&gt;
&lt;h2 id=&quot;aiden-bai-render-shaming-sites-while-working-on-react-scan&quot;&gt;&lt;a href=&quot;https://x.com/aidenybai/status/1862529226727121366&quot;&gt;Aiden Bai “render-shaming” sites&lt;/a&gt; while &lt;a href=&quot;https://react-scan.com/&quot;&gt;working on React Scan&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; there&#39;s a young engineer named Aiden Bai, who I, I think is, I could be wrong on this, might not even be 20 years old yet. But he&#39;s the creator of a tool called Million. js, which is kind of like a, almost like a proto version of React compiler where you could isolate parts of your component tree and it would optimize like the text updates in there. [52:50]&lt;/p&gt;
&lt;p&gt;And he&#39;s since gone on and been working on a bunch of other React related performance tools. Some of them have been branded with Million as well. I think there&#39;s a like a million lint and like a a million VS code extension that try to highlight some React performance issues. But he&#39;s working on a tool called React Scan, and it loosely put pretends to be the React DevTools in the browser in order to get access to React saying, I just got done rendering, here&#39;s the new component tree. [53:24]&lt;/p&gt;
&lt;p&gt;And he&#39;s been advertising this with a tweets that are kind of render shaming. Sites like he did one where he pointed out that like typing in a search input in Twitter Makes basically every component on the page Rerender and those naturally got a lot of circulation and stuff going around So he called out a number of sites that way And it&#39;s, it&#39;s both really, really clever marketing, as well as, you know, a bit of an example of ways that React does not necessarily lead to a pit of success kind of a thing you know, just because of, you know, React&#39;s default render behavior. [54:07]&lt;/p&gt;
&lt;p&gt;I&#39;ve very briefly dug, you know, dug into the source code just enough to see that that&#39;s how it&#39;s hooking into React&#39;s updates. I&#39;ve not tried to go through the code and see how the rest of the analysis is implemented. But this feels very similar in spirit to some of the work I&#39;ve done at Replay over the last couple years. [54:24]&lt;/p&gt;
&lt;p&gt;So I, I always approve of people digging inside React&#39;s internals in ways they&#39;re not supposed to. [54:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, I small reaction. I saw one of the site, one of the render shaming tweets he put out was about GitHub. [54:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; The list view that is used to render source code was re rendering all the list items every time you scrolled. And so, scrolling performance was relatively bad. And he tweeted it, tagged someone at GitHub, and they did actually fix it like a day or so later. [54:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; yeah, that&#39;s worse than I was thinking. I thought it was uh, something about typing, but scrolling, ooh, rendering every line of code on a diff while scrolling. Yeah. That&#39;s, that&#39;s, that&#39;s not going to do good things. [55:03]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; it&#39;s virtualized, so like it wasn&#39;t rendering like 50, 000 lines of code at once. But even just what was on screen could be, you know, relatively slow. [55:14]&lt;/p&gt;
&lt;h2 id=&quot;lenzs-webers-testing-libraryreact-render-stream-testing-library&quot;&gt;Lenz’s Weber’s &lt;a href=&quot;https://github.com/testing-library/react-render-stream-testing-library&quot;&gt;testing-library/react-render-stream-testing-library&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; And then the last one plug for a friend uh, Lenz Weber is co maintainer of Redux Toolkit and works on Apollo Client. And he&#39;d been putting in a ton of work to try to write tests for Apollo in conjunction with React Suspense and ran into all kinds of problems. And this is one of those things that is, it&#39;s a library maintainer problem. [55:36]&lt;/p&gt;
&lt;p&gt;This is not an app developer. But, you know, like we&#39;ve, we&#39;ve had lots of tests in the React Redux code base over the years that say, okay, I&#39;m going to render a component, do an update. And I expect React will have re rendered this many times in the process. And as React&#39;s internal behavior changed over time, we kept having to go in and tweak those assertions, you know, like when, when React 18 switched to batching by default, like the number of render counts changed in a lot of our tests. [56:07]&lt;/p&gt;
&lt;p&gt;And in fact, at one point we had to say, like, if it&#39;s 17, then we expect that this test will render four times. If it&#39;s 18, we expect it&#39;ll render three times, et cetera. So like, this is not the kind of thing that an application test would need to care about, but a lot of library tests needed to care about this thing. [56:26]&lt;/p&gt;
&lt;p&gt;And, you know, we always implemented it with basically. You know, having a, having a variable outside a component, the components defined inside the test and you count how many times it rendered. So in the process of working on the test for Apollo, Lens came up with a new approach, which he&#39;s called the React Render Stream Testing Library, and it actually got included in the testing library. [56:52]&lt;/p&gt;
&lt;p&gt;organization, part of the, like the RTL group that we all know and love. And this takes a different approach where it actually kind of buffers up all the renders that occurred. And then you can say, okay, give me almost like a wrapper for the contents of the next render in the sequence. [57:12]&lt;/p&gt;
&lt;p&gt;And then let me write assertions against the contents of the DOM as it happened in that render. So you&#39;re still doing the usual testing library approach of, like, let me look for a button, let me, you know, assert that certain text is on screen. But rather than kind of conceptually testing it against a, quote, live version of the DOM, You&#39;re asking for a series of snapshots of it, and this library does the work of kind of buffering those, and then you can just sort of take the next one, do some assertions, take the next one, do some assertions. [57:47]&lt;/p&gt;
&lt;p&gt;I actually tried making use of this in a test with Redux Toolkit the other day. And it required a bit of a mental model shift to try to use it that way, but it actually ended up being much more consistent, and like, I didn&#39;t have to write any waitfors, because it wasn&#39;t timing based anymore. So, again, if you&#39;re not writing libraries, you probably don&#39;t need this, but if you are writing libraries, this might be useful. [58:13]&lt;/p&gt;
&lt;h2 id=&quot;outro&quot;&gt;Outro&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; All right. That&#39;s all the news we have for you this month, this year. Woo! Thanks for joining us. We will be back next month on the last Wednesday of January here in the live stage, or back in your podcast feed just as soon as we can. [58:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; And Mo was worried we wouldn&#39;t have enough to talk about. [58:31]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Haha, it&#39;s gonna be a short episode. [58:32]&lt;/p&gt;
&lt;p&gt;Well, [58:33]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; all. Yeah look forward to talking with you folks next month, and enjoy the break, everybody. [58:39]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; yeah. Happy holidays. [58:40]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Always a pleasure. Hope everyone has a lovely time off, and enjoys the festivities, and uh, looking forward to what next year&#39;s got in store for us. [58:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; 2024 was good to you. Good to you all. It was good to me. It&#39;s been a, it&#39;s been a weird year for me, but a good one. Yeah, end of episode. Personal updates. this has been the first year of my life when I accepted for myself that I&#39;m queer. I&#39;m not straight. It&#39;s been a good year for me, I hope it&#39;s been a good year for you. [59:06]&lt;/p&gt;
&lt;p&gt;Thanks so much. We gather sources from This Week in React, Bytes. dev, React Status, Next. js Weekly, our React. js, the subreddit, here in Reactaflux, and direct from those publishing articles. If you see anything newsworthy, definitely let us know at hello at reactaflux. [59:21]&lt;/p&gt;
&lt;p&gt;com. Bye! I read every email that comes in, even the spam, so send me an email. I&#39;ll check it out. If this is a show you get value from and want to support, the best way you can do so is by submitting a review wherever you listen, and by telling your friends and co workers about it. Cheers. Thanks for listening.&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2024-12</link><guid isPermaLink="false">reactiflux-tmir-2024-12</guid><pubDate>Sun, 22 Dec 2024 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>TMiR 2024-11: React 19 is unblocked, Next 15 is &#39;stable&#39;, Expo launch week. The cool kids are on BlueSky</title><description>&lt;iframe src=&quot;https://creators.spotify.com/pod/show/reactiflux/embed/episodes/TMiR-2024-11-React-19-is-unblocked--Next-15-is-stable--Expo-launch-week--The-cool-kids-are-on-BlueSky-e2rn2pu&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#job-market-fred-data-layoffsfyi&quot;&gt;01:35&lt;/a&gt;]&lt;/code&gt; Job market: &lt;a href=&quot;https://fred.stlouisfed.org/series/IHLIDXUSTPSOFTDEVE&quot;&gt;FRED data&lt;/a&gt;, &lt;a href=&quot;https://layoffs.fyi/&quot;&gt;Layoffs.fyi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;New releases
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#vscode-195&quot;&gt;01:51&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://code.visualstudio.com/updates/v1_95&quot;&gt;VSCode 1.95&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#node-v23&quot;&gt;02:20&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://openjsf.org/blog/announcing-node.js-23-key-features-and-enhancement?ck_subscriber_id=1888282043&quot;&gt;Node v23&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#docusaurus-36&quot;&gt;04:12&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://docusaurus.io/blog/releases/3.6&quot;&gt;Docusaurus 3.6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#react-navigation-70&quot;&gt;04:40&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactnavigation.org/blog/2024/11/06/react-navigation-7.0/&quot;&gt;React Navigation 7.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#better-auth-v10&quot;&gt;04:46&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.better-auth.com/v1&quot;&gt;better-auth v1.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#mantine-v7140&quot;&gt;05:06&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://mantine.dev/changelog/7-14-0/&quot;&gt;Mantine v7.14.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#storybook-84&quot;&gt;05:14&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://storybook.js.org/blog/storybook-8-4/&quot;&gt;Storybook 8.4&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#gatsby-v514&quot;&gt;05:22&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/gatsbyjs/gatsby/releases/tag/gatsby%405.14.0&quot;&gt;Gatsby v5.14&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#rspack-11&quot;&gt;05:34&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://rspack.dev/blog/announcing-1-1&quot;&gt;Rspack 1.1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#angular-beat-react-to-v19&quot;&gt;05:39&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://blog.angular.dev/meet-angular-v19-7b29dfd05b84&quot;&gt;Angular beat React to v19&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#conferences&quot;&gt;05:57&lt;/a&gt;]&lt;/code&gt; Conferences
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#react-day-berlin&quot;&gt;06:06&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactday.berlin/&quot;&gt;React Day Berlin&lt;/a&gt; Berlin, DE Dec 13 &amp;amp; 16&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#main-content&quot;&gt;07:39&lt;/a&gt;]&lt;/code&gt; Main Content
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#react-19-rc1&quot;&gt;07:39&lt;/a&gt;]&lt;/code&gt; React 19 RC1
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#tech-writeup-of-a-solution-to-the-sibling-rendering-issue-that-delayed-react-19s-release&quot;&gt;08:17&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/facebook/react/issues/29898#issuecomment-2477449973&quot;&gt;Tech writeup of a solution to the sibling rendering issue&lt;/a&gt; that delayed React 19’s release&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#nextjs-15&quot;&gt;11:27&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://nextjs.org/blog/next-15&quot;&gt;Next.js 15&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#ts-57&quot;&gt;15:25&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-5-7/&quot;&gt;TS 5.7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#react-router-v7--remix&quot;&gt;19:48&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://remix.run/blog/react-router-v7&quot;&gt;React Router v7 | Remix&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#vite-v6&quot;&gt;24:28&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://vite.dev/blog/announcing-vite6.html&quot;&gt;Vite v6&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#environment-api&quot;&gt;24:50&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/vitejs/vite/discussions/16358&quot;&gt;Environment API&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#expo-launch-party&quot;&gt;27:52&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://expo.dev/launch-party&quot;&gt;Expo Launch Party&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#the-magic-of-expo-dom-components&quot;&gt;28:19&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://expo.dev/blog/the-magic-of-expo-dom-components&quot;&gt;The magic of Expo DOM Components&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#introducing-workflows-cicd-built-for-your-app&quot;&gt;32:24&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://expo.dev/blog/expo-workflows-automate-your-release-process&quot;&gt;Introducing Workflows: CICD built for your app&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#environment-variables-in-eas-new-changes-to-simplify-setup&quot;&gt;33:33&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://expo.dev/blog/environment-variables&quot;&gt;Environment variables in EAS: new changes to simplify setup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#expo-sdk-52&quot;&gt;36:59&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://expo.dev/changelog/2024/11-12-sdk-52&quot;&gt;Expo SDK 52&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#new-css&quot;&gt;40:10&lt;/a&gt;]&lt;/code&gt; New CSS
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#a-friendly-introduction-to-container-queries&quot;&gt;40:14&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.joshwcomeau.com/css/container-queries-introduction/&quot;&gt;A Friendly Introduction to Container Queries&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#a-framework-for-evaluating-browser-support&quot;&gt;41:05&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.joshwcomeau.com/css/browser-support/&quot;&gt;A Framework for Evaluating Browser Support&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#state-of-css-2024&quot;&gt;43:48&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://2024.stateofcss.com/&quot;&gt;State of CSS 2024&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#framework-betas:&quot;&gt;47:02&lt;/a&gt;]&lt;/code&gt; Framework betas:
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#rsc-in-expo-router-is-now-in-beta!&quot;&gt;47:08&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://expo.dev/blog/universal-react-server-components-developer-preview&quot;&gt;RSC in Expo Router is now in Beta!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#tanstack-start-beta&quot;&gt;47:29&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://tanstack.com/router/latest/docs/framework/react/start/overview&quot;&gt;TanStack Start beta&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#react-native-077-rc0&quot;&gt;49:14&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/facebook/react-native/releases/tag/v0.77.0-rc.0&quot;&gt;React Native 0.77 RC0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#new-list-dropped-in-react-native&quot;&gt;50:02&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/jmeistrich/status/1855663310386958840&quot;&gt;New List dropped in React Native&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#twitter---bluesky-migration&quot;&gt;51:45&lt;/a&gt;]&lt;/code&gt; Twitter -&amp;gt; Bluesky migration
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#starter-packs-ericclemmonsawesome-starter-packs-stevendborrellibluesky-tech-starter-packs-bluesky-directory-a-complete-guide-to-bluesky-&quot;&gt;54:54&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/ericclemmons/awesome-starter-packs&quot;&gt;ericclemmons/awesome-starter-packs&lt;/a&gt;, &lt;a href=&quot;https://github.com/stevendborrelli/bluesky-tech-starter-packs&quot;&gt;stevendborrelli/bluesky-tech-starter-packs&lt;/a&gt;, &lt;a href=&quot;https://mackuba.eu/2024/02/21/bluesky-guide/&quot;&gt;A complete guide to Bluesky 🦋&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#technical-debate-over-how-decentralized-bluesky-actually-is&quot;&gt;55:13&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://dustycloud.org/blog/how-decentralized-is-bluesky/&quot;&gt;Technical debate&lt;/a&gt; over &lt;a href=&quot;https://whtwnd.com/bnewbold.net/3lbvbtqrg5t2t&quot;&gt;how “decentralized”&lt;/a&gt; Bluesky actually is.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#web-without-walls--react-universe-conf-2024&quot;&gt;55:57&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=F1sJW6nTP6E&quot;&gt;Web Without Walls | React Universe Conf 2024&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#-lightning-round-&quot;&gt;59:03&lt;/a&gt;]&lt;/code&gt; ⚡ Lightning round ⚡
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#deno-v-oracle-canceling-the-javascript-trademark&quot;&gt;59:06&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://deno.com/blog/deno-v-oracle&quot;&gt;Deno v. Oracle: Canceling the JavaScript Trademark&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#two-ways-to-the-two-reacts&quot;&gt;59:27&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bobaekang.com/blog/two-ways-to-the-two-reacts&quot;&gt;Two ways to the two Reacts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#thats-not-an-abstraction-thats-just-a-layer-of-indirection&quot;&gt;59:52&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://fhur.me/posts/2024/thats-not-an-abstraction&quot;&gt;That&#39;s not an abstraction, that&#39;s just a layer of indirection&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#react-anti-pattern-stop-passing-setters-down-the-components-tree&quot;&gt;01:00:04&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://matanbobi.dev/posts/stop-passing-setter-functions-to-components&quot;&gt;React Anti-Pattern: Stop Passing Setters Down the Components Tree&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#what-is-http3&quot;&gt;01:00:31&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.cloudflare.com/learning/performance/what-is-http3/&quot;&gt;What is HTTP/3?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#leaked-vercel-v0-system-prompts&quot;&gt;01:01:03&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://old.reddit.com/r/LocalLLaMA/comments/1gwwyia/leaked_system_prompts_from_v0_vercels_ai/&quot;&gt;Leaked Vercel v0 system prompts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#react-scan-to-highlight-component-renders-by-the-author-of-millionjs-which-he-used-to-point-out-githubs-code-view-re-rendering-on-every-scroll&quot;&gt;01:01:59&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react-scan.million.dev/&quot;&gt;React Scan to highlight component renders&lt;/a&gt; (by the author of Million.js), which he used to point out &lt;a href=&quot;https://x.com/aidenybai/status/1859267710498263073&quot;&gt;Github’s code view re-rendering on every scroll&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#whats-next-for-the-react-compiler&quot;&gt;01:02:56&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=qd5yk2gxbtg&quot;&gt;What’s Next for the React Compiler?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-11#framer-motion-spinning-out-as-an-oss-tool-motion-and-conversely-gsap-is-joining-webflow&quot;&gt;01:03:14&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://motion.dev/blog/framer-motion-is-now-independent-introducing-motion&quot;&gt;Framer Motion spinning out as an OSS tool (Motion)&lt;/a&gt;, and conversely &lt;a href=&quot;https://gsap.com/blog/webflow-GSAP/&quot;&gt;GSAP is joining WebFlow&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Hello everyone. Thank you for joining us for October&#39;s This Month in React, where we recap and digest the recent developments in the ever evolving React and web ecosystem come and do live out of Reactiflux, the place for professional React developers and supported by Infinite Red a React Native consultancy, but more about them later. [00:18]&lt;/p&gt;
&lt;p&gt;I&#39;m Carl. I&#39;m a staff product developer and freelance community leader here at Reactiflux, where I run community programs like events like this. And build some tools to help keep the community operating smoothly. [00:31]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I&#39;m Mark. My day job is working at Replay, which is a time traveling debugger for JavaScript, and outside of that I do way too much Redux stuff. [00:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; And I am Mo. I head the mobile team at Theodo. I am an active, semi active part of the React Native community. And I organize the React Native London conference and the meetups and sometimes dabble in open source with libraries like Expo and Tamagui. [00:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; If you&#39;re only semi active, what qualifies as active? [00:57]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I don&#39;t know. I, I feel like I&#39;m less active than I was a few months ago. Maybe I just need to take a little bit of a break and become reactive. [01:05]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; You just ran a conference! [01:07]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Yeah, maybe that&#39;s taking most of my energy out of my sails. [01:10]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, right. I think organizing a conference gives you a little bit of a pass on other contributions. That&#39;s a lot. That was a [01:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Yeah, it was it was a fun time. Intense, but fun time. [01:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; All right. Jumping into some quick hits. I&#39;m gonna change up the format a little bit. The last couple months we&#39;ve had so many new releases that new releases are just mostly part of the content now. But I&#39;m gonna run through some quick new releases with like, no discussion. Just like, this is out, go check it out if you want. If it&#39;s relevant to your life. [01:35]&lt;/p&gt;
&lt;h2 id=&quot;job-market-fred-data-layoffsfyi&quot;&gt;Job market: &lt;a href=&quot;https://fred.stlouisfed.org/series/IHLIDXUSTPSOFTDEVE&quot;&gt;FRED data&lt;/a&gt;, &lt;a href=&quot;https://layoffs.fyi/&quot;&gt;Layoffs.fyi&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; But job market stuff looks pretty steady state compared to last month. Like, layoffs. 23andMe has laid off a couple of folks. But, generally seems to be pretty stable again. not much to say there. Okay. [01:50]&lt;/p&gt;
&lt;p&gt;New releases, lightning mode. [01:51]&lt;/p&gt;
&lt;h2 id=&quot;vscode-195&quot;&gt;&lt;a href=&quot;https://code.visualstudio.com/updates/v1_95&quot;&gt;VSCode 1.95&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; VS Code they released like every, I don&#39;t know, six weeks, something like that. They&#39;ve got VS Code 1. 95, which mostly looks like it brings out co pilot things. thing that caught my eye the most was you can add multiple files to like a working set, they call it, in the co pilot AI assistant stuff. [02:10]&lt;/p&gt;
&lt;p&gt;So that seems kind of neat. I haven&#39;t used the copilot very much, but being able to say, here are the files that are relevant. Please do this for me. That seems neat. That seems cool. [02:20]&lt;/p&gt;
&lt;h2 id=&quot;node-v23&quot;&gt;&lt;a href=&quot;https://openjsf.org/blog/announcing-node.js-23-key-features-and-enhancement?ck_subscriber_id=1888282043&quot;&gt;Node v23&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; There is a new version of Node, Node 23 Which means Node 22 is now LTS Two things caught my eye that seemed neat Biggest one is they now have native support for loading ES modules using Require. [02:37]&lt;/p&gt;
&lt;p&gt;this seems like a huge compatibility bridge between common JS and ESM, which has been a pain point for like five years, literally since the ES modules were released. So that&#39;s cool. It&#39;s been experimental for a long time and is now no longer experimental. It&#39;s just stable. So that&#39;s cool. [02:54]&lt;/p&gt;
&lt;p&gt;They also added a native, flag to node, the node executable to run your package. JSON scripts. So no longer do you have to do NPM run. Now you can do node dash dash run. Which is just kind of cool. that was like a weird coupling between NPM and node. So like moving that into the runtime just kind of makes sense to me. So cool. Just especially while we have more variation in like runtimes and, Package management [03:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; tools and whatever. [03:20]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I agree that Node having support for being able to use require to pull ESM modules into CommonJS a huge thing. I think you could do it the other way around where you could import CJS files, apparently. I&#39;m still hazy on that one. But in general, the interop panes between ESM and CommonJS in Node have been the big barrier and reason why package maintainers like myself have had to go through shenanigans trying to get our packages defined and published properly with multiple different artifacts inside. [03:58]&lt;/p&gt;
&lt;p&gt;As always, the fact that a new version of Node. js has support for this doesn&#39;t mean we&#39;ll be able to drop that immediately because, you know, the long tail but at least it&#39;s a step in the right direction. [04:12]&lt;/p&gt;
&lt;h2 id=&quot;docusaurus-36&quot;&gt;&lt;a href=&quot;https://docusaurus.io/blog/releases/3.6&quot;&gt;Docusaurus 3.6&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; DocuSource put out 3. 6. It&#39;s faster apparently. Seems good. [04:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Apparently that&#39;s because they did switch from using Webpack to using RSPack, which is, it&#39;s effectively Webpack. But rebuilt in Rust, so it&#39;s like public API compatible. So, an example of a migration path to get faster build tools without having to sort of switch which build tool ecosystem you&#39;re in. [04:40]&lt;/p&gt;
&lt;h2 id=&quot;react-navigation-70&quot;&gt;&lt;a href=&quot;https://reactnavigation.org/blog/2024/11/06/react-navigation-7.0/&quot;&gt;React Navigation 7.0&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; React Navigation put out version 7 if you&#39;re in React Native World. [04:46]&lt;/p&gt;
&lt;h2 id=&quot;better-auth-v10&quot;&gt;&lt;a href=&quot;https://www.better-auth.com/v1&quot;&gt;better-auth v1.0&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; A project I&#39;ve mentioned at least once on this show for authentication, BetterAuth, is at 1. 0. They&#39;ve been doing a really fast, rapid release cycle, I&#39;ve noticed. like, last month they were on version, 0. 6 and then they did, like, 0. 0. 9, and now 1. 0. So, cool. Seems good. Love authentication. And it seems like a good project for it. [05:06]&lt;/p&gt;
&lt;h2 id=&quot;mantine-v7140&quot;&gt;&lt;a href=&quot;https://mantine.dev/changelog/7-14-0/&quot;&gt;Mantine v7.14.0&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Mantine put out version 7. 14. Seems like a decent UI toolkit. [05:14]&lt;/p&gt;
&lt;h2 id=&quot;storybook-84&quot;&gt;&lt;a href=&quot;https://storybook.js.org/blog/storybook-8-4/&quot;&gt;Storybook 8.4&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Storybook has 8. 4. I have opinions about Storybook. I don&#39;t use it. But hey, if you do, they are talking more about like testing and stuff. [05:22]&lt;/p&gt;
&lt;h2 id=&quot;gatsby-v514&quot;&gt;&lt;a href=&quot;https://github.com/gatsbyjs/gatsby/releases/tag/gatsby%405.14.0&quot;&gt;Gatsby v5.14&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Throwback Gatsby released version 5. 14. It&#39;s out. [05:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; genuinely surprised anyone&#39;s still working on it. [05:30]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Gatsby is still here. It still exists. Me too, a little bit, [05:34]&lt;/p&gt;
&lt;h2 id=&quot;rspack-11&quot;&gt;&lt;a href=&quot;https://rspack.dev/blog/announcing-1-1&quot;&gt;Rspack 1.1&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; RSPack put out 1. 1. We talked about version 1 release Recently. [05:39]&lt;/p&gt;
&lt;h2 id=&quot;angular-beat-react-to-v19&quot;&gt;&lt;a href=&quot;https://blog.angular.dev/meet-angular-v19-7b29dfd05b84&quot;&gt;Angular beat React to v19&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And amusingly, Angular has released version 19, beating React to the punch. Nothing that means anything, but yeah, well, Angular&#39;s got a new major version out. [05:50]&lt;/p&gt;
&lt;p&gt;I saw they&#39;re looking to revise their style guide, which is apparently 52 pages long currently. So that&#39;s ridiculous. [05:57]&lt;/p&gt;
&lt;h2 id=&quot;conferences&quot;&gt;Conferences&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, conferences. Mo, you wanna talk? [06:00]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Yeah, sure. So, we&#39;re reaching the end of the year, which means conferences are going into hibernation mode as expected. [06:06]&lt;/p&gt;
&lt;h2 id=&quot;react-day-berlin&quot;&gt;&lt;a href=&quot;https://reactday.berlin/&quot;&gt;React Day Berlin&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; But we&#39;ve got one more left for you all this year, React Day Berlin. And React Day Berlin happens in December every year. It&#39;s a really cool gathering of people. I was there last year and I&#39;ll be doing a talk this year with a friend of mine from Amazon, Anisha Malde, about universal React, so it&#39;s a, it&#39;s a great of React people. [06:25]&lt;/p&gt;
&lt;p&gt;They have a really cool venue called Cosmos It&#39;s a really historical city. If you&#39;re in Europe, I&#39;d recommend you come around. It&#39;s, it&#39;s a good time. [06:32]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And it&#39;s on my birthday, so I&#39;m not going. [06:34]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Happy birthday, Carl. Early birthday. Very early birthday. [06:38]&lt;/p&gt;
&lt;h2 id=&quot;sponsored-by-infinite-red&quot;&gt;Sponsored by &lt;a href=&quot;https://infinite.red/&quot;&gt;Infinite Red&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; All right, sponsor time. We are sponsored currently exclusively by Infinite Red. They&#39;re an expert React Native consultancy that&#39;s been around since 2015. Coming up on 10 years, wild. They&#39;re our only sponsor in part because very few companies do as much as they do for the React Native ecosystem. [06:55]&lt;/p&gt;
&lt;p&gt;And so just really happy to be a part of it. Have a earnest collaborator in that kind of way. Yeah, I&#39;ve seen their name around for as long as I&#39;ve heard about React Native being used professionally. They only do React Native and have built over 75 apps for companies from startups to like the biggest fortune, whatever companies in the world. [07:13]&lt;/p&gt;
&lt;p&gt;than being great people who I&#39;m happy to collaborate with, be sponsored by they&#39;re a team of about 30, mostly developers, mostly with more than 10 years of experience. And they work alongside your team to help you develop expertise in React Native. So if you are working for a company, spinning up a new product with React Native, and want to hit the ground running, definitely give them a ring. [07:36]&lt;/p&gt;
&lt;p&gt;Infinite. red is the website. Cool, all right, [07:39]&lt;/p&gt;
&lt;h2 id=&quot;main-content-react-19-rc1&quot;&gt;Main content React 19 RC1&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; so we actually have a very, very big Big development if you&#39;ve been paying attention the last few months, we&#39;ve been tracking that the React 19 release has got delayed because of concerns over changes to suspense behavior when multiple sibling components all want to suspend you know, the change had been made last fall, the community pointed out problems with it, Back in the spring, and the React team said okay, fine, we&#39;ll hold on React 19 until we can come up with a solution for this issue. Well, the good news is, that fix is actually done and out as a new React 19 RC. [08:17]&lt;/p&gt;
&lt;h2 id=&quot;tech-writeup-of-a-solution-to-the-sibling-rendering-issue-that-delayed-react-19s-release&quot;&gt;&lt;a href=&quot;https://github.com/facebook/react/issues/29898#issuecomment-2477449973&quot;&gt;Tech writeup of a solution to the sibling rendering issue&lt;/a&gt; that delayed React 19’s release&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And the React team put together a very good visual and technical explanation of what they changed and how the behavior works. They&#39;re in the GitHub issue link, so I highly recommend taking a look at that. Big picture is that the original behavior as of 18, if you had multiple sibling components that all wanted to suspend, was it kind of acted like a promise. [08:40]&lt;/p&gt;
&lt;p&gt;all, Where, in one render pass, it would kick off all of them, wait for them all to complete, and then actually show the content. The change that effectively broke things was it would render the first child that&#39;s suspended, see it, and say, oh, wait, let&#39;s wait for that one to complete, then pick up with the siblings, making it more like a serial for loop. [09:05]&lt;/p&gt;
&lt;p&gt;And the new behavior is when that first child suspends, It will go ahead and show the fallback, but it will kick off kind of a pre warming step in the background. So like, not like a complete render, but I guess kind of like a partial render, enough to kick off the requests. So that at least the other requests are in flight right away. [09:29]&lt;/p&gt;
&lt;p&gt;And so the overall behavior should be at least as good as it originally was, if not maybe actually kind of better. In, in some certain ways. So the two key takeaways here are that the, you know, the suspense behavior that people were concerned about has been addressed. It did take them a few months, but they, they did it in a comprehensive way, not just slapping in a bug fix. [09:52]&lt;/p&gt;
&lt;p&gt;And also that hopefully React 19 final is very, very close. There&#39;s still no specific timeline, but they did make the comment that we hope to publish 19 stable. Boy, [10:03]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, and just maybe to restate what you were saying in different words, so my understanding of like the problem that they introduced and why they introduced it is Like you said previously, it was just sort of rendering all of the siblings before it handled the suspense. [10:18]&lt;/p&gt;
&lt;p&gt;And that was undesirable because it introduced latency before the fallback would be rendered. It did a bunch of work before showing the fallback. So they wanted to change it so that the fallback would be shown quicker, but caused requests to behave as a waterfall rather than kicking off in parallel. [10:36]&lt;/p&gt;
&lt;p&gt;It would kind of waterfall shape of your component tree. If you had requests being kicked off by like child components and sibling components and stuff and so now they managed to find like a happy balance where they don&#39;t do all of the work of rendering, you know doing the I&#39;m fuzzy on the terminology around like commits and rendering and all that so I can&#39;t speak to precisely there [11:00]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; someone had a blog post that explained these things. [11:03]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I read that but many moons ago, yeah, so it&#39;s a nice Midpoint between what it used to do and what they wanted it to do and now it works correctly. [11:13]&lt;/p&gt;
&lt;p&gt;So yeah, They delayed it back in June and they now have a fix So, you know, only a couple of months delayed. It&#39;s only all year that we&#39;ve been talking about React 19. So maybe it&#39;ll be released soon. moving on. [11:27]&lt;/p&gt;
&lt;h2 id=&quot;nextjs-15&quot;&gt;&lt;a href=&quot;https://nextjs.org/blog/next-15&quot;&gt;Next.js 15&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Next. js has version 15, out and stable. You know, they call it out and stable, but I don&#39;t know, it&#39;s stable version is like using of the big changes is using like React 19. RC in the apps router, the app router. And so that still feels to me like the proving ground for React 19. [11:50]&lt;/p&gt;
&lt;p&gt;So calling Next. js 15 stable when it&#39;s recommending that you use an unstable version of React feels funky to me. Feels like a, like a workaround to the problem of people don&#39;t test, you know, release candidates, so they&#39;re just going to call it stable. [12:06]&lt;/p&gt;
&lt;p&gt;But yeah, I&#39;m not sure that I personally would base a production system off of the app router in Next 15 because it just, because of that, it feels like a beta, beta is maybe too strong, but it feels like they&#39;re still exploring. claim it&#39;s stable, I don&#39;t know what sort of underlying technical issues might cause things to have to be changed. [12:27]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; This touches on multiple different aspects that we&#39;ve talked, at least I think we&#39;ve talked about previously. One is that, you know, especially with all the server component stuff, the React team used to be able to, pre alpha test all their ideas internally at Facebook, but they can&#39;t do that with server components because it relies on having a separate server, and Facebook has all their own server, which is one of the reasons they ended up collaborating with Vercel. [12:55]&lt;/p&gt;
&lt;p&gt;To be like, they convinced Vercell to go with their vision, but also it conveniently aligned with, we need someone who doesn&#39;t have Facebook server infra to let us build out server components and prove that it works. Along with that the app router has always used a pre release version of react. [13:14]&lt;/p&gt;
&lt;p&gt;Like this. Like, even before they came up with the Canary system, it was using, assorted, experimental, unstable builds. And so, haven&#39;t been keeping track of which version specifically, but, I would assume that over the last year, versions of Next 14 have been using, you know, React 19 Canaries, betas, RCs. [13:36]&lt;/p&gt;
&lt;p&gt;So, if anything, it&#39;s, More stable now than it was a year ago. But part of the point was that, the App Writer needs all this new functionality in 19 in order to work. And the whole point of the Canary system was that, well, even if it&#39;s not fully 100 percent stable stable as a standalone release, frameworks like Next are able to paper over the rough edges so that from their point of view and from the consumer&#39;s point of view, It&#39;s stable. [14:05]&lt;/p&gt;
&lt;p&gt;So, I agree that the versioning system is funky, but it&#39;s also not a new thing. [14:10]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right. Definitely not new for sure. But yeah, if you&#39;re doing a little side project, probably fun to play with. If you&#39;re a founding engineer at a new company, I&#39;m not sure I would start a new thing on it. It&#39;s not sure I would start a new revenue generating entity on it. [14:25]&lt;/p&gt;
&lt;p&gt;So, yeah, one new thing that they introduced is an instrumentation. js file, hook, I don&#39;t know. It&#39;s a place where you can plug in to the core, like, network level of the system. Next. js for things like observability and monitoring. [14:43]&lt;/p&gt;
&lt;p&gt;So that seems pretty cool. I think that is one of those like quiet underrated things that every app needs and that is not always super easy to figure out how to fit it in. In the past, I have done a fetch wrapper that introduced things like performance metrics and observability and stuff. So just having that as like a a framework feature in Next. Makes a lot of sense to me. Glad to see it. [15:07]&lt;/p&gt;
&lt;p&gt;They also put out a, a form component, which seems like it overlaps with like the native behavior that the native form enhancements that React 19 is introducing, so I&#39;m a little bit fuzzy on like what that abstraction is super duper for, but yeah, it&#39;s there. [15:22]&lt;/p&gt;
&lt;p&gt;Cool. On to TypeScript. [15:25]&lt;/p&gt;
&lt;h2 id=&quot;ts-57&quot;&gt;&lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-5-7/&quot;&gt;TS 5.7&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So, the TypeScript release chain also keeps chugging along. I think they do releases every two or three months. And so we&#39;re now up to TypeScript 5. 7. There are a couple nice to haves, like checking for variables that never got initialized, like borderline winter. Related stuff, but at the types level. The, the interesting thing from an ecosystem perspective the story around, you know, how TypeScript interacts with module output and file paths has always been very complicated, because it&#39;s always been very complicated at the JavaScript level. [16:00]&lt;/p&gt;
&lt;p&gt;And one of the things that had been kind of a pain point, weird point, frustration thing was that even when you were writing, like, Writing TypeScript files in order for some ES module, you know, import behavior to work properly, your imports still had to say you were importing from a js file in the import path. [16:25]&lt;/p&gt;
&lt;p&gt;And that always felt really weird. It&#39;s like, yes, I realized that&#39;s what is actually executing at runtime and that the build output is a bunch of js files, but the file name I&#39;m, but with the file that I&#39;m writing this in is a ts file. Like this, this doesn&#39;t make sense. This is weird. I don&#39;t want to have to do this. [16:45]&lt;/p&gt;
&lt;p&gt;And the TS team had resisted trying to make changes here because after the first couple of years of doing TypeScript features that required actual separate output, like enums, they&#39;re now very much on board with like, we are a superset of the JavaScript language and the compiler doesn&#39;t do anything to have to rewrite the actual behavior of your code. [17:11]&lt;/p&gt;
&lt;p&gt;But they appear to have actually added a mode that will change import path names. So when you have an import that says import from something. ts If this flag is enabled, it will rewrite that to say import something from a js. It only does this in certain conditions where it&#39;s a relative path and not, and not a, like a globally scoped path. [17:41]&lt;/p&gt;
&lt;p&gt;I, I don&#39;t pretend to understand the rationales behind it. I&#39;m mostly just going off the release notes here. So, it seems like a rather grudging Decision to tweak things in favor of better ecosystem interop. [17:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; this feels very much like stuck between a rock and a hard place in that, like, Now there are more and more ways to run your TypeScript code without doing a full compilation pass, sending it fully through the TypeScript compiler, TSC, It&#39;s an intersection of like, there are more ways to run your code without fully compiling it and executing the built output. And there are more ways to, or rather, imports are getting stricter about file extensions and just like, Ooh, oh no, what do you do with that? Those are like incompatible assumptions. [18:29]&lt;/p&gt;
&lt;p&gt;this seems, I agree, this seems like a grudging, I don&#39;t know if I want to call it a hack fix or a band aid or something, but like, just even as they&#39;re talking about it in the release notes, it&#39;s, I feel like I can sense their trepidation and like angst over, like, you know, like a quote from it is like, you might need to use conditional exports with scoped custom conditions to make this work for like absolute paths, like if you&#39;re using, you know, your TS config to, you know, import, you know, structure and not use relative paths and it&#39;s just like, Oh no, that&#39;s [18:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; so thrilling, [19:01]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right! [19:01]&lt;/p&gt;
&lt;p&gt;It&#39;s like, oh god, that&#39;s, this sounds like a whole new problem. they&#39;re trying to fix a problem. They may introduce more problems. I think this is going to be painful for a long time. [19:11]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; but it&#39;s there. If you feel you need this. [19:14]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; maybe you do. Yeah, I don&#39;t know. Anyway, seems, seems rough. V8 introduced compile caching, which allows runtimes to reuse some of the like JIT compilation steps. So TypeScript is taking advantage of that new V8 feature to improve its startup time. They talked about, you know, if you do like TSC dash dash version, it now prints faster. [19:38]&lt;/p&gt;
&lt;p&gt;So like, that&#39;s cool. That&#39;s nice. Startup time is definitely a pain point for Node generally, JavaScript generally. And that&#39;s nice. Less latency. [19:48]&lt;/p&gt;
&lt;h2 id=&quot;react-router-v7--remix&quot;&gt;&lt;a href=&quot;https://remix.run/blog/react-router-v7&quot;&gt;React Router v7 | Remix&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool, okay, moving on. React Router v7 slash, you know, the one with Remix. headline, big pull quote, &quot; We encourage all Remix v2 users to upgrade to React Router v7.&quot; This seems really neat. I want to play more with this, but I think really playing with it is going to take a lot. I have an app in mind that I want to try and move over. [20:12]&lt;/p&gt;
&lt;p&gt;It&#39;s currently using Remix 1, so I can upgrade to 2 and then upgrade to React Router 7. Woo! Multistage upgrades. Yeah, the big highlight here, I guess, is that Essentially, I think my mental model for understanding this change, you know, Remix to React Router is what was Remix is now Framework Mode in React Router. [20:34]&lt;/p&gt;
&lt;p&gt;So you can still use React Router as you always have, as just like a library. Or you can use it in Framework Mode, which has a Vite plugin to get more control over, you know, the build step, the compilation, which is what used to be Remix. So it feels like they explored a lot of like API surface area. [20:55]&lt;/p&gt;
&lt;p&gt;Like, how do we fix this? How do we make this work correctly as we want it to with Remix? And then it feels like they got it, they got it where they want, they refined it to where it was just kind of an abstraction over existing build tools. Like that was the big push to not have like, you don&#39;t interact with Remix, you interact with Vite and there&#39;s a plugin that is Remix. [21:15]&lt;/p&gt;
&lt;p&gt;And so now this feels like the next logical step there where like it is truly just an agglomeration of existing tools that you can choose how to use in the way you want. I think that&#39;s pretty neat. That seems pretty cool. I definitely want to play with this a lot more. [21:27]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; as I roughly understand the sequencing, so Remix itself was originally based on ESBuild, and there was no way to really mess with that configuration. Then they managed to come up with a Vite plugin, which did the same thing. And then the Vite plugin, I guess, became the default way to use Remix. [21:44]&lt;/p&gt;
&lt;p&gt;And now that it&#39;s like, well, at this point, there actually isn&#39;t much left that&#39;s specific to Remix the framework. It&#39;s all in the plugin. And so that enabled them to help take some of this, and take basically all this functionality, back into React Router, the library. And so as you said, there&#39;s the client side piece, which has always been there, and then it&#39;s like, well, all this stuff that used to be server related, and used to be specific to the Remix framework, is now encapsulated in the Vite plugin, so it&#39;s just there if you want to use it. [22:14]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I mean, it&#39;s quite interesting because I feel like this idea of, frameworks being almost add ons or plugins to the bundler, whether it&#39;s Vite, I guess I&#39;ve seen this with Vite only, is quite an interesting premise and I think it&#39;s picking up a little bit, maybe almost as a response to how Next. js is such like a, tightly It&#39;s not proprietary, but proprietary like piece of software where you&#39;re like really buying into Next rather than buying into the tools that are, you know, underlying Next. [22:43]&lt;/p&gt;
&lt;p&gt;And I see that with the new React Native Framework One as well, where it&#39;s really kind of, it&#39;s a Vite plugin. Everything&#39;s on Vite and we&#39;re building on top of Vite and we have some extra functionalities that comes out if you want to use it as kind of a framework. So it&#39;s interesting to see how this shift from the Remix team has had, I think, probably reverberations across to other, parts of the ecosystem. [23:04]&lt;/p&gt;
&lt;p&gt;I guess the question that I still have is, why have they done this from a branding perspective? Like, it seems like a lot of brand capital that they probably had in Remix Is, kind of disappearing by going into React Router. Now you could argue whether or not that&#39;s good brand capital or not, because Remix has had its fair share of controversies. [23:22]&lt;/p&gt;
&lt;p&gt;it&#39;s an interesting move for me. [23:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I would raise, as a counterpoint, That they already captured the brand value because they sold Remix to Shopify, [23:31]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; It&#39;s a monetary brand value rather than anything else. Like a monetary for acquisition brand value. [23:36]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I think there&#39;s a decent argument to be made there. but also like react router has been Around for like 12 years 11 years Literally, like, the original way of doing routing in React. So it kind of makes sense to me to say like, Look, we solved this problem. [23:54]&lt;/p&gt;
&lt;p&gt;I have been watching them try to figure out where the boundaries are between routing and, like, server and, they&#39;ve been trying to figure out how to do data loading and, bundle splitting at the router level. For that entire time. So it feels to me like they spun up a new brand to do more experimentation and now got there and then folded it back into the original tool that they&#39;ve been trying to solve this in forever. [24:20]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; the process got acquired, which is a nice payout as well. [24:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; great bonus. Yeah. [24:25]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Yeah, makes sense. [24:27]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Speaking of Vite. [24:28]&lt;/p&gt;
&lt;h2 id=&quot;vite-v6&quot;&gt;&lt;a href=&quot;https://vite.dev/blog/announcing-vite6.html&quot;&gt;Vite v6&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So associated with that Vite version six just came out. And it&#39;s interesting because they&#39;ve tagged it as the most significant release since Vite 2. And yet I was looking through the announcement and the migration guide, and it looks like there isn&#39;t a lot that really feels user facing in terms of features and changes. [24:50]&lt;/p&gt;
&lt;h2 id=&quot;environment-api&quot;&gt;&lt;a href=&quot;https://github.com/vitejs/vite/discussions/16358&quot;&gt;Environment API&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Best as I can tell, a lot of this one is on the inside, and it looks like they did a lot of major refactoring internally to enable what they&#39;re calling the Environment API. And as I understand it, the idea is that because JavaScript these days is used in so many different ways, it&#39;s used in the browser, it&#39;s used in Node, in Deno, in Bun, in worker runtimes, that may have differing constraints. [25:18]&lt;/p&gt;
&lt;p&gt;It seems that the environment API is going to allow you to generate build output targeted for different environments based on certain definitions. I&#39;m still kind of hazy on that part myself. I have seen a number of mentions that things like some of the other, Framework level Vite wrappers are going to benefit from having the environment API available. [25:45]&lt;/p&gt;
&lt;p&gt;So, seen some mentions here, I don&#39;t quite know how all the pieces connect. general takeaway is like, it seems like, a fairly easy upgrade. saw a couple people on Reddit say like, yeah, I just like bumped the version and it just worked. So it might not have an immediate benefit for an application in terms of speed or build output per se, but it does seem like it&#39;s fairly foundational for a lot of the framework level stuff that&#39;s going on in the ecosystem. [26:12]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, we definitely agree with that. I&#39;ve encountered a little bit of that environment pain. Not using Vite, but just like trying to use Cloudflare workers. Trying to do, a worker serverless type of architecture. Definitely can tell that it is, Like bleeding edge of the ecosystem and a lot of the existing tooling is just like not well suited to support it precisely. [26:37]&lt;/p&gt;
&lt;p&gt;Yeah, just like having an existing, like daemon, existing process that is long lived. It&#39;s just a very different set of constraints from a short lived process that Handles a request and shuts down. So, Remember the era of the, of the acronym for rendering? SSG and SSR and ISR and S So, I feel like this environment API to me, it feels like a reaction to that, of like, look, we have all of these contexts in which web pages are being rendered and used. [27:08]&lt;/p&gt;
&lt;p&gt;And we don&#39;t even have a language to talk about it. I guess Vite has, spent most of the version five release iterating on what has then turned into this environment API. It sounds like they introduced it as. Something else the runtime API in 5. 1 and iterated on it, iterated on it, realized that what they landed on was different enough from that, that they just came up with a new name for it and put out a major release. So yeah, definitely looks interesting and valuable. [27:38]&lt;/p&gt;
&lt;p&gt;And yeah, given how Vite seems to be like the common building block that everyone else is starting to rely on, here for it. This seems like the kind of exploration that is super, super valuable, especially given that place in the ecosystem. [27:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Definitely. [27:52]&lt;/p&gt;
&lt;h2 id=&quot;expo-launch-party&quot;&gt;&lt;a href=&quot;https://expo.dev/launch-party&quot;&gt;Expo Launch Party&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; yeah, let&#39;s move on to some React Native land. And interestingly so, towards the end of November, we&#39;ve had Expo&#39;s launch week. This is where Expo kind of bundle a bunch of the stuff that they&#39;ve been working on and launch it in one go over a few days. it&#39;s been quite interesting to see some of the stuff that&#39;s been coming off. [28:10]&lt;/p&gt;
&lt;p&gt;Nothing is particularly a big surprise but it&#39;s interesting to see the culmination of some of the stuff being released out to the public. So, I&#39;ll go through some of this bit by bit, and we&#39;ll talk through it. [28:19]&lt;/p&gt;
&lt;h2 id=&quot;the-magic-of-expo-dom-components&quot;&gt;&lt;a href=&quot;https://expo.dev/blog/the-magic-of-expo-dom-components&quot;&gt;The magic of Expo DOM Components&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; So, the biggest thing that the Expo team has been talking about over the last few months, I&#39;d say, is DOM components. [28:26]&lt;/p&gt;
&lt;p&gt;This idea of how uh, Can we make it super easy to run web based DOM elements inside of a native app without turning the entire app into a Cordova Ionic sort of web view based app? this is controversial at the best of times, I think, right now. A lot of people seem to really like it. [28:44]&lt;/p&gt;
&lt;p&gt;There&#39;s some people who feel like it&#39;s kind of a step I think the expo team is trying to take this pragmatic approach of, a lot of people have React web apps, how do we kind of get them to migrate incrementally and introduce them into the React native ecosystem. So, The article that we&#39;ve linked has some interesting use cases. It kind of looks at the integration of, you know, you still, if you have a WebView based app, maybe there&#39;s some cases where you still want to introduce some native functionality. [29:11]&lt;/p&gt;
&lt;p&gt;So, you know, you press a button, maybe you still want to have a haptic on the native device. So how do you integrate those things together? And make it kind of feel native in some capacity. So it talks about some of that, some of the patterns that you want, and some use cases. So some of the things that have been really difficult to do in React Native is things like displaying markdown. [29:28]&lt;/p&gt;
&lt;p&gt;Markdown, you know, you have to create your own renderer with native components for it. And it&#39;s a lot of work to do that natively. Anyone who&#39;s done that will kind of attest to that. And Stuff like that gets really easy because it&#39;s a solved problem in the web world. So, they&#39;re kind of not saying you should use this for your entire app. [29:44]&lt;/p&gt;
&lt;p&gt;They&#39;re kind of being very, very, very clear about that. thinking of using that in places as an escape hatch more than anything. [29:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; More interop is always a good thing. [29:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; yeah, you know, it&#39;s good to have that. Now, this isn&#39;t something that necessarily is new. Like, you can always use WebViews in React Native. It&#39;s been around for probably since the very, very, very early days. [30:03]&lt;/p&gt;
&lt;p&gt;It&#39;s nothing new. There was always React Native WebView as a library. this is just an easier way and a nicer way to do it. And it uses the favorite directives that everyone has now in the React ecosystem, which is the use directive at the top of the file. And you just pop in a use DOM and it kind of works. [30:18]&lt;/p&gt;
&lt;p&gt;I think we&#39;re starting to overuse directives. We should probably stop as an ecosystem. It&#39;s just getting a bit out of hand, but that&#39;s a different conversation for another time. I see Carl passionately nodding at this. Mm [30:30]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; flashbacks to like, I guess it was like ES6 when the use strict directive was introduced. And I just remember the emphatic, you know, like people would say like, Ooh, what if we did this other directive? And I just remember the reaction being like an emphatic, like, No, this is the only directive we&#39;re ever going to do. Never again. This is terrible. We should not have had to do this, but we needed to. Never again. [30:53]&lt;/p&gt;
&lt;p&gt;And so now seeing like, we got like, what, four or five now in React? And they don&#39;t even have the same semantics. Like it used to be only at the top of the file and now it&#39;s like top of the source file, which is technically different. Not the, and like some of them are at the tops of functions. It&#39;s, it&#39;s complicated. It&#39;s too much complication. [31:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I tend to agree with you. I quickly want to touch on some of the limitations to dissuade people from trying to use this for their entire app, so I&#39;ll just quickly quickfire those. The first thing is that performance is really going to suffer. Because, you know, when you&#39;re running a React Native app, it does have a JavaScript engine that uses Hermes under the hood. [31:30]&lt;/p&gt;
&lt;p&gt;But for this, you&#39;re basically instantiating a new JavaScript engine that will run web code, so that can be JSC on iOS and V8 on Android. And that basically slows down your load time quite significantly. And then if you do want to tackle that, you&#39;re probably going to have to have some hacky stuff to preload these components, hide them, and then display them. [31:48]&lt;/p&gt;
&lt;p&gt;It becomes a mess. So you really want to use this when you have no other options, or, you know, You have an escape path long term to basically get rid of these, these webviews. And then the other thing here is you have to be very, very clear as to how you handle your navigation. Because the worst thing for a user experience is having multiple layers of navigation. [32:06]&lt;/p&gt;
&lt;p&gt;So, you know, you have your stacks and your tabs inside of your native app, and then suddenly someone clicks a button inside of the webview, and it just adds a new screen onto your webview. And so you&#39;ve got like two or three layers of navigation. It gets messy. Be careful, think about it deeply basically use at your own risk and think about the consequences of your actions. [32:24]&lt;/p&gt;
&lt;h2 id=&quot;introducing-workflows-cicd-built-for-your-app&quot;&gt;&lt;a href=&quot;https://expo.dev/blog/expo-workflows-automate-your-release-process&quot;&gt;Introducing Workflows: CICD built for your app&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; In other things that the Expo team&#39;s been launching so Expo launched workflows. This was one of the more surprising things. They hadn&#39;t, they kind of kept this under wraps a little bit. But the whole concept with this is so far you know, Expo&#39;s got their cloud build tools, EAS build and EAS update. [32:38]&lt;/p&gt;
&lt;p&gt;So you can use builds to create your mobile native builds. They&#39;ve got a submit tool. solution as well, which kind of pushes that thing to the App Store for you on Google Play and Apple App Stores. And they also had an update mechanism, which allowed you to issue over the air updates to your users. [32:52]&lt;/p&gt;
&lt;p&gt;Now, this, they never had a workflow or like a proper CICD tool. So you would have to basically almost run your CICD on another cloud or another sort of CICD tool and then call Expose. servers just to trigger the build or trigger the update. So they&#39;ve kind of created some very basic workflow functionality. [33:11]&lt;/p&gt;
&lt;p&gt;It&#39;s YAML based. You know, you can run bash commands, you can run NPM commands in it. It has some very basic control flows as well. So if you kind of want to get away from, you know, using GitHub actions for your, for your mobile builds and mobile updates, it&#39;s a cool option if you don&#39;t want to add that as an extra piece that interacts with Expo. [33:30]&lt;/p&gt;
&lt;p&gt;It&#39;s something to see how they develop and extend over time. [33:33]&lt;/p&gt;
&lt;h2 id=&quot;environment-variables-in-eas-new-changes-to-simplify-setup&quot;&gt;&lt;a href=&quot;https://expo.dev/blog/environment-variables&quot;&gt;Environment variables in EAS: new changes to simplify setup&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; other unexpected, but this is incredibly welcome news they have revamped the way that you handle environment variable handling within Expo. Now this is something that has been a real pain. I think it&#39;s the place that the Expo team probably struggled the most to come up with a good and comprehensive solution. [33:52]&lt;/p&gt;
&lt;p&gt;Because you&#39;ve got sort of different layers of environment variables when you&#39;re dealing with a mobile app. You have sort of secrets that are stored inside of the app&#39;s binary. Then you&#39;ve got JavaScript based environment variables that anyone can inspect if they go into the JavaScript, so you don&#39;t really want to use any secrets or put any secrets within them. [34:10]&lt;/p&gt;
&lt;p&gt;Then you&#39;ve got some stuff for your build processes. So there&#39;s sort of these like multiple layers of environment variables and they each had different sort of sensitivities or levels of secrecy that you needed to maintain. And so they&#39;ve centralized all of this in one place. So EAS can kind of manage all of this for you. [34:26]&lt;/p&gt;
&lt;p&gt;And they&#39;ve tried to centralize this because environment handle, variable handling in Expo was a nightmare. You had to kind of deal with three different environment variables, like working in a consultancy was one of those things that clients would come to us and be like, why is this so hard? And I would be like, I don&#39;t know, there&#39;s probably should be a solution. [34:43]&lt;/p&gt;
&lt;p&gt;One of our clients actually, prior to start a startup, like, like, thought very seriously about starting a startup to solve this problem, and I told them don&#39;t, please don&#39;t, Expo will probably solve it, and they have. So, it&#39;s good. I think it&#39;s still to be seen how it bodes in practice, but from first glance, it looks like you kind of define these centralized environments, and they have all of your environment variables in one place managed by Expo, which can make things significantly easier, and you can kind of define the visibility, visibilities as well. [35:08]&lt;/p&gt;
&lt;p&gt;So this is very welcome, because I think it&#39;s. It&#39;s kind of long overdue and it&#39;s one of those things that was a big pain point. [35:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I love that. It sounds great. Sounds like a real problem that needs, you know, sounds like an improvement, but I have never worked anywhere that did not have some kind of pain with environment variables, including on my like solo projects, like currently the, you know, the main app that I write code for. As a stupid, terrible environment variable setup, because like, you know, it&#39;s CICD with GitHub Actions deploying to a Kubernetes cluster. [35:41]&lt;/p&gt;
&lt;p&gt;And so like, I have to take, I can&#39;t remember the, I think I put all of the secrets in GitHub. But then they get loaded into GitHub Actions alongside lots of context, build context, that the action provides on its own. And then I have to manually take all of the information that&#39;s relevant to the executing code and put that in a secret in Kubernetes and then load that. [36:03]&lt;/p&gt;
&lt;p&gt;So, like, I&#39;m glad they&#39;re trying to improve it. I also just kind of think dealing with secret data is just a hard problem. So, I suspect this may not be the end of it. [36:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I don&#39;t think it&#39;s the end of it. If they make it marginally better, especially, I think, I think it kind of ties hand in hand with their workflows functionality because they needed a, you know, solution to environment variables if they&#39;re creating almost a CICD. So, I think it&#39;s kind of hand in hand with that, but yeah, the exact same problem, right? [36:29]&lt;/p&gt;
&lt;p&gt;Like, even if you, before these workflows, what you had was you had the same environment variables, probably in GitHub, and then you had them replicated somewhere in EAS for your builds, and then somewhere else in your, for your updates. Maybe this removes some of that duplication, so at least your client side secrets. are sort of shared by Expo and managed by Expo. I hear your pain with the Kubernetes and backends, like infrastructure environment variables. I&#39;ve done the exact same thing with GCP and Terraform and trying to manage those and it&#39;s not a, it&#39;s not a fun ride. [36:58]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Nope. [36:59]&lt;/p&gt;
&lt;h2 id=&quot;expo-sdk-52&quot;&gt;&lt;a href=&quot;https://expo.dev/changelog/2024/11-12-sdk-52&quot;&gt;Expo SDK 52&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Cool, and last but not least, obviously they also released Expo SDK 52. they say that this is their biggest release ever and I kind of believe it because the new architecture is out Cool. So that is a big, big revamp of everything in the internals of React Native, and they obviously manage a massive SDK with a bunch of different libraries. [37:16]&lt;/p&gt;
&lt;p&gt;So they&#39;ve had to make sure all of it is compatible. So far we&#39;re hearing about some pains with Expo Go. Some people are having some troubles with Expo Go because it suddenly switched to the new architecture by default. So people are having some upgrades. Issues, but that&#39;s to be expected, to be honest, with such a big revamp of the internals and people will need to update their apps. [37:35]&lt;/p&gt;
&lt;p&gt;Some interesting highlights, just quickly running through these. Expo Video is a new library that&#39;s become stable now. So this is a revamp of the old Expo AV library that handled audio and video. They&#39;re splitting these out to Expo Video and Expo Audio. And it comes with a whole bunch of cool stuff. [37:50]&lt;/p&gt;
&lt;p&gt;Like, being able to generate thumbnails, being able to have picture in picture and a whole bunch of other stuff which is, is needed to, to kind of play video in a, in a high quality way in native apps. They&#39;ve also released a beta of Expo Audio, which is, again, a rewrite, and this is great, and hopefully it just becomes a little bit nicer implementation. [38:09]&lt;/p&gt;
&lt;p&gt;And then they&#39;re releasing a whole bunch of stuff to their file system libraries, their cameras, and so on and so forth, Expo Images getting some updates. So there&#39;s a lot of good things. I&#39;m not going to go through all of them because it is a massive changelog. But go and try it out. DOM Components as well, which we mentioned earlier on, is available with Expo SDK 52. [38:25]&lt;/p&gt;
&lt;p&gt;So if you want to play around with those DOM Components and figure out how you can integrate WebViews inside of your existing app with DOM Components, go for it. Expo SDK 52 is the place to try it out. [38:36]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Sounds like a pretty big deal. [38:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Yep. [38:39]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Maybe one day I&#39;ll use Expo. [38:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I&#39;d love to hear your feedback on it, Carl, because it&#39;s quite a nice DevEx. I&#39;ve had people who&#39;ve, like, have you, you&#39;ve built for React Native back in the day, right? [38:49]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yes. Short answer, yes. [38:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; it&#39;s usually people who have built with React Native or built native apps before, ages ago, and then they come in and try Expo, and they&#39;re like, holy crap, this is something. it has that, like, mind blowing effect, so I&#39;d love for you to try it and then come with your feedback. [39:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I briefly tried Expo like five years ago, [39:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Not the same. yeah, they&#39;re totally different, totally different, totally different ecosystem. Yeah. [39:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I remember it had a huge constraint of, it felt a little bit like a create react app in that it did a lot. But if you were building a production app, you were going to have to eject from it sooner or later. And the ejection story sounded pretty rough. [39:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; yeah, ejection was not a fun time. they had a lot of, I think that was the biggest, like Expo had almost a dip in reputation and it was because of ejecting. And so they, they completely got rid of ejecting. You don&#39;t eject anymore. You can add native dependencies as you wish. And it&#39;s a totally different mechanism. [39:42]&lt;/p&gt;
&lt;p&gt;So Expo in 2019, 2019. is a very different thing to Expo in 2024. And I&#39;d say they&#39;ve regained that reputation, which is great. [39:52]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool. Sounds good. Yeah. I guess my, perception way back when was like, this feels like create react app, create react app feels like it&#39;s dying. This feels like it might die, but here we are five years later and it is totally transformed. Looks really great. This is definitely what I would, you know, were I to try a native app. I got a long list of other things to do. [40:10]&lt;/p&gt;
&lt;h2 id=&quot;new-css&quot;&gt;New CSS&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool. Okay moving on. This is slightly unstructured. [40:14]&lt;/p&gt;
&lt;h2 id=&quot;a-friendly-introduction-to-container-queries&quot;&gt;&lt;a href=&quot;https://www.joshwcomeau.com/css/container-queries-introduction/&quot;&gt;A Friendly Introduction to Container Queries&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I&#39;m going to frame this conversation around a Josh Kumo article about a friendly introduction to container queries. I don&#39;t think I had heard of container queries, but like, I was reading this was like, holy shit, there is so much new CSS stuff that I, that has just not crossed my radar. [40:31]&lt;/p&gt;
&lt;p&gt;So container queries are basically media queries, but for the containing element. So you can say all sorts of things. not super duper sure what the support story looks like for them. that&#39;s basically why I checked out of paying close attention to CSS news is because it was so much of it is like Chrome only, or, you know, not supported in Firefox or Safari. [40:54]&lt;/p&gt;
&lt;p&gt;And so like, stopped paying attention because so many of the things that looked really interesting and neat were not stable. And if a CSS feature is not stable, you can&#39;t polyfill it in the same way as JavaScript. Bye. [41:05]&lt;/p&gt;
&lt;h2 id=&quot;a-framework-for-evaluating-browser-support&quot;&gt;&lt;a href=&quot;https://www.joshwcomeau.com/css/browser-support/&quot;&gt;A Framework for Evaluating Browser Support&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Conveniently on that note, Josh also just put out a post that discusses his approach for looking at browser support for various features, CSS or JavaScript, and sort of like his mental model of, how do I decide when a feature works? Might be good for me to actually use in practice. Of course, like it literally, it basically boils down to it depends, but he walks through kind of the process of how he gets to that and the article actually literally starts out according to can I use container queries are supported for almost 93 percent of users. [41:39]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right, and I see in the, thumbnail, in the, you know, preview image, is 93 percent good enough? And that was exactly my response to that. So, I don&#39;t know. it&#39;s a hard thing. [41:47]&lt;/p&gt;
&lt;p&gt;so, container queries just caught my eye as like a great Way to do a great enhancement over media queries because media, queries, you can adjust your styling based on, you know, the size of the screen, based on the capabilities of the device, but container queries, it looks like, I don&#39;t know the depth of the capabilities, but the most obvious one I&#39;m seeing right here, you know, the first one it shows is, you know, mid width of the containing element and like, that&#39;s great. [42:18]&lt;/p&gt;
&lt;p&gt;I have had so many responsive. design bugs where, I try to reuse an element in a new context and it&#39;s narrower because I wanted to put more elements next to each other or something than I did in the previous one and it looks like with container queries I could Avoid those bugs by saying, if the space this is in is this size, render in this way. Which is a very different, much more powerful method of querying than just the device support. So, yeah, that seems really [42:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I&#39;m curious as to when, I think it&#39;s still probably in, experimental phase, but I&#39;d love to see when this becomes available for something like Tailwind. [43:01]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right, and it might, I wonder if it would even be like a breaking change. Because they currently have, you know, SM, MD, different size constraints. Thanks. Thanks. And it feels like they might be able to just modify those to be based on the container. [43:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; they&#39;ve done that exact pattern when they like introduced the group functionality. Like, they obviously had like hover, active, focus, or whatever for the different states, and then they just added a group colon active. So I wonder if this becomes like a container dash sm, container dash md, or something like that. [43:31]&lt;/p&gt;
&lt;p&gt;Like, that would be consistent in my mind, at least. [43:34]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; quick Google search says that they put out a first party plug in for container queries back in 2022. And there&#39;s something involving an at container wrapper on a parent. [43:48]&lt;/p&gt;
&lt;h2 id=&quot;state-of-css-2024&quot;&gt;&lt;a href=&quot;https://2024.stateofcss.com/&quot;&gt;State of CSS 2024&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I said this is going to be kind of a loosely structured thing, related to this conversation, there was a state of CSS survey, you know, same as state of React, state of JS, whatever, Devographics, Sasha Greif and I was just looking at the list of CSS features and thinking like, wow, I have not used more than half of these. CSS is totally different. And you know, in the introduction to this State of CSS survey shouts out, &quot;let me make a prediction. We&#39;ll look back at 2024 as the turning point between CSS classic and new CSS.&quot; And that&#39;s interesting. I feel I definitely learned and became expert in classic CSS. CSS Classic. [44:31]&lt;/p&gt;
&lt;p&gt;Describes as like, the build steps and all of that. I had to learn floats and positioning and box model and I feel like none of those things are super relevant anymore. Now it&#39;s grid and flex. And so it&#39;s just like a whole new set of Primitives that I have not had professional experience using like oh dang cool. Wow shifting landscape know what? I thought was stable land is now totally different just really [45:01]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I the one that always, like, that winds me up that I learned about a little while back, that was just like, What? Why does this exist? But it&#39;s also very impressive that it exists. Is, like, the mathematical functions that you can use now in, like, CSS for calculating values. Like, power of, square root, logarithms. Like, how do I, what case do I have where I need to, like, calculate a size based off of a logarithm in CSS? Like Cool, I&#39;m glad it exists, but I can never imagine needing to use that. [45:30]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; we do some funny layout logic and on the Reactiflux website. And yeah, you can do that. the font size is based on the viewport width, for instance. [45:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; but would you ever use a logarithm based off of that? [45:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Hey, maybe if I wanted to, you know, nonlinear scaling, [45:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Yeah, maybe. Anyway, it&#39;s quite cool. [45:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I don&#39;t know. Wild. [45:49]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; big picture metaphor. I think what&#39;s come into my mind is that it feels like it&#39;s a little bit like the ES 2015 spec where you could do a lot of stuff in JavaScript prior to that. And a lot of stuff in ES2015 was effectively syntax sugar for stuff you could do before. But there were also a number of things in ES2015 that required support at the language runtime level, like proxies, that simply could not be done before and enabled virtualization. [46:17]&lt;/p&gt;
&lt;p&gt;A whole lot of new functionality from there. So, you know, I, I know that CSS is not like a strictly versioned spec the way that, you know, the JS language is at this point, but I think that&#39;s kind of the, the metaphor that we&#39;re going for here. [46:31]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; yeah. [46:32]&lt;/p&gt;
&lt;p&gt;interesting. Complete side note before we move on, but since we started with this, Josh Comeau his website is like one of the most beautifully designed tech websites I&#39;ve seen. Like, I say this every time I look at it, I&#39;m like, wow, this is beautiful. He&#39;s done a phenomenal job with this website. [46:47]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Josh is amazingly talented, he is an amazing educator, his blog is wonderful, I can vouch for his courses without having looked at them because I see the care and effort he&#39;s put into his blog post. So, highly recommend all of Josh&#39;s stuff. [47:00]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Very, very true. [47:02]&lt;/p&gt;
&lt;h2 id=&quot;framework-betas&quot;&gt;Framework betas:&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Okay, moving on a little more quickly, a couple different frameworks and pieces are in beta. [47:08]&lt;/p&gt;
&lt;h2 id=&quot;rsc-in-expo-router-is-now-in-beta&quot;&gt;&lt;a href=&quot;https://expo.dev/blog/universal-react-server-components-developer-preview&quot;&gt;RSC in Expo Router is now in Beta!&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; One is that the Expo router now has support for server components. And Mo can probably talk a little bit more about the actual implementation nuances here, but big picture, it&#39;s a big deal because it&#39;s server components coming out in any framework other than Next, and more specifically within the React Native ecosystem. [47:29]&lt;/p&gt;
&lt;h2 id=&quot;tanstack-start-beta&quot;&gt;&lt;a href=&quot;https://tanstack.com/router/latest/docs/framework/react/start/overview&quot;&gt;TanStack Start beta&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And then as sort of an inverse of that, Tanner Linsley&#39;s 10 stack start framework is now in beta, and it&#39;s a deliberately non server component framework for now. Tanner has said he will look at adding some server component support down the road, but his argument, and he&#39;s made BlueSky within the last few days, is that he feels server components are actually of very limited use. [47:59]&lt;/p&gt;
&lt;p&gt;and really much less flexible compared to a server function concept architecture for managing data. So he did just do a talk about and kind of advertising some of the features at React Summit New York last week. I looked, if you check out the Git Nation website, the video is available for people who have, you know, paid up for the early access to the videos and it&#39;ll go public sometime in the next month. [48:27]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Just to quickly touch on the exporouter RSC stuff, So it is very much an experimental at this point, it&#39;s beta. You can&#39;t even host it on a production server, you need to do it locally, so it just means you&#39;re basically testing it out in dev at this point. It was previously just on Evan Bacon&#39;s machine, and now it&#39;s on, you can have it on your machine, which is quite, quite cool. [48:47]&lt;/p&gt;
&lt;p&gt;But yeah, like the cool thing about RSCs and React Native is that you&#39;re rendering native components under the hood. So you almost render native views, native texts, native images, and you almost do a building block of components through an RSC that is then rendered natively, so it&#39;s not web views or anything like that. [49:03]&lt;/p&gt;
&lt;p&gt;So it&#39;s very different to the DOM component stuff that we talked earlier, which makes it very interesting. Still very early days, but we&#39;ve seen really cool demos of this over the last year at React Conf and beyond. [49:14]&lt;/p&gt;
&lt;h2 id=&quot;react-native-077-rc0&quot;&gt;&lt;a href=&quot;https://github.com/facebook/react-native/releases/tag/v0.77.0-rc.0&quot;&gt;React Native 0.77 RC0&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Picking on the React Native terrain, very quickly, React Native version 0. 77 has had its release candidate, which is very quick after 0. 76. This is a very small release. Expectedly so, after the massive release that was the new architecture becoming default. So, just some quick things. Swift templates for iOS. [49:35]&lt;/p&gt;
&lt;p&gt;This is taken away from the Objective C base of code in the internals of React Native and making it more Swift based and more modern, which is great. They&#39;ve done some improvements on tvOS integration, which is great because tvOS has kind of been one of those platforms that&#39;s been in the shadows and not well supported. [49:52]&lt;/p&gt;
&lt;p&gt;And there&#39;s some general better performance improvements specifically when dealing with animations. So there&#39;s some minor improvements, but nothing super major and not a whole lot of breaking changes. [50:02]&lt;/p&gt;
&lt;h2 id=&quot;new-list-dropped-in-react-native&quot;&gt;&lt;a href=&quot;https://x.com/jmeistrich/status/1855663310386958840&quot;&gt;New List dropped in React Native&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Now, speaking of the new architecture Last month we had the release of the new architecture with 0. 76, and we&#39;re already seeing some interesting stuff coming out of it. [50:12]&lt;/p&gt;
&lt;p&gt;So, Jay Meistrich, who I&#39;ve known for a little while now, actually released a completely new list component for React Native called LegendList. So, Jay maintains a few libraries called, like, LegendState, another state management library, and I think LegendMotion, which is an animation library. And he recently Created a new list, and now he, he claims that I inspired him to do this at a talk that I did at React Advanced, which is very flattering, and I think he&#39;s giving me way too much credit and I definitely don&#39;t deserve that, but basically the, the whole concept is with the new event loop in React Native, you can kind of synchronously call on layout events. [50:50]&lt;/p&gt;
&lt;p&gt;Which you previously couldn&#39;t with React Native and so this is a JS only implementation as a list and it seemingly, on first glance, outperforms FlashList and the FlatList that comes default with React Native so it may be the quickest list in the React Native ecosystem right now. A lot of people are very, very excited by it. [51:08]&lt;/p&gt;
&lt;p&gt;Jay is quite good at performance stuff because he spent a lot of his time as a game developer back in the early 2000s basically. So, he was dealing with a lot of very, very, very low memory and low CPU devices. And I guess he kind of knows this stuff decently well. So it&#39;s going to be interesting. [51:25]&lt;/p&gt;
&lt;p&gt;He&#39;s released it to public, so you can go and try it out right now. But it&#39;s still to be seen. He&#39;s adding more and more APIs as we, as we speak. So it&#39;s quite interesting. [51:33]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Super cool. Mo, I&#39;m going to challenge you on that because if somebody tells you that you were an inspiration, I think you should [51:39]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Take all the credit. [51:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I just did a talk. It was nothing special. [51:44]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Ah, that&#39;s pretty special. [51:45]&lt;/p&gt;
&lt;h2 id=&quot;twitter---bluesky-migration&quot;&gt;Twitter -&amp;gt; Bluesky migration&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; All right, and our, our last big item for this episode is, is not directly tech related, but it is, because React is more than the tech, it&#39;s the people in the community, and, you know, we, we spend time talking about conferences, but, you know, we, we get a lot of our links and keep an eye on things from, you know, historically, from Twitter, and Twitter has been where, you know, most of the web dev community has chatted and interacted online for the last several years. [52:11]&lt;/p&gt;
&lt;p&gt;And without going into, you know, some of the, the political or, you know, aspects behind it Twitter has declined a lot in the last couple of years. And there&#39;s been various waves of people saying I&#39;m done with Twitter and I&#39;m leaving. And the main alternative that a lot of people had gone with was Mastodon. [52:27]&lt;/p&gt;
&lt;p&gt;But Mastodon&#39;s always had sort of that, like, I&#39;m a Linux user and I know how to set up everything myself kind of a vibe to it. And there&#39;s been an alternative to Twitter called BlueSky, which had been invite only for a while. I believe they opened up to public signups maybe about a year ago. But it always felt very niche. [52:48]&lt;/p&gt;
&lt;p&gt;And really the main thing I knew about it over the last year was that Dan Abramov, after leaving Facebook had gone over there to actually work on their web and native apps as, as his day job. Well, there has been a massive migration of the greater web development tech community from Twitter over to BlueSky really within just the last month. [53:13]&lt;/p&gt;
&lt;p&gt;And I mean, there&#39;s, there&#39;s been lots of other. Twitter communities that have moved over there black Twitter, football, Twitter, basketball, Twitter, science, Twitter, etc. And feels like, to me, like one, in the earlier era of Twitter where it was people talking rather than just bots or big businesses. And two, the, you know, just the general atmosphere and sort of discussions that are, that are happening. [53:43]&lt;/p&gt;
&lt;p&gt;So, a lot of people from the React community have signed up and started being very active over there. A number of people have specifically deleted their old Twitter accounts. As an example, Seb Markbaga from the React team. I believe actually nuked all his old tweets, and moved over to Blue Sky. I think Dan Abramov&#39;s Twitter accounts are, are, are gone at this point. [54:09]&lt;/p&gt;
&lt;p&gt;So a number of people are doing the Scorched Earth thing, and like, wiping out all their old messages, which I&#39;ll be honest, as someone who has always depended a lot on, you know, archiving the web and, you know, linking to external discussions makes me sad because I hate to see historical discussions and tweets and artifacts go away. [54:33]&lt;/p&gt;
&lt;p&gt;Having said that, as far as the community goes, I personally am feeling Like Blue Sky is probably where I&#39;m going to put my posting energy going forward. There is, there&#39;s a lot of people there. It feels like the community is self sustaining at this point. And it&#39;s where a lot of the discussion is happening now. [54:54]&lt;/p&gt;
&lt;h2 id=&quot;starter-packs-ericclemmonsawesome-starter-packs-stevendborrellibluesky-tech-starter-packs-bluesky-directory-a-complete-guide-to-bluesky-&quot;&gt;Starter packs: &lt;a href=&quot;https://github.com/ericclemmons/awesome-starter-packs&quot;&gt;ericclemmons/awesome-starter-packs&lt;/a&gt;, &lt;a href=&quot;https://github.com/stevendborrelli/bluesky-tech-starter-packs&quot;&gt;stevendborrelli/bluesky-tech-starter-packs&lt;/a&gt; &lt;a href=&quot;https://blueskydirectory.com/&quot;&gt;Bluesky Directory&lt;/a&gt; &lt;a href=&quot;https://mackuba.eu/2024/02/21/bluesky-guide/&quot;&gt;A complete guide to Bluesky 🦋&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; One nice thing is that Blue Sky has these things called starter packs, where anyone can just make a list of people they recommend on a certain topic. And it makes it very easy to follow some or all of them. At once. There are directories of starter packs out there. there&#39;s a question about whether BlueSky is kind of related to crypto related things. [55:13]&lt;/p&gt;
&lt;h2 id=&quot;technical-debate-over-how-decentralized-bluesky-actually-is&quot;&gt;&lt;a href=&quot;https://dustycloud.org/blog/how-decentralized-is-bluesky/&quot;&gt;Technical debate&lt;/a&gt; over &lt;a href=&quot;https://whtwnd.com/bnewbold.net/3lbvbtqrg5t2t&quot;&gt;how “decentralized”&lt;/a&gt; Bluesky actually is&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; there were a couple good articles talking about some of the technical implementation differences at the server level between Mastodon and BlueSky and like how actually decentralized things are. Loosely put, BlueSky is semi centralized, but it&#39;s possible to run your own server and own your own data, somehow. [55:38]&lt;/p&gt;
&lt;p&gt;So, big picture, a lot of folks who are from the React community are no longer active on Twitter, and they are now active on BlueSky. [55:47]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yep, can confirm. Definitely saw a massive shift in the last, like, month. It&#39;s been notable. Yeah. Definitely a lot more people posting out there, yeah. [55:57]&lt;/p&gt;
&lt;h2 id=&quot;web-without-walls--react-universe-conf-2024&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=F1sJW6nTP6E&quot;&gt;Web Without Walls | React Universe Conf 2024&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; because of the crypto question, if you&#39;re interested in how the BlueSky backend and like the decentralized nature of BlueSky operates, Dan Abramov did a talk at React Universe Conf about this called Web Without Walls, so I&#39;ve just shared that and that gives a pretty comprehensive, it is a 40 minute talk, but that gives a pretty long and comprehensive discussion about what the nature, the decentralized nature of BlueSky is. [56:22]&lt;/p&gt;
&lt;p&gt;Quickly to add on this, actually, BlueSky is a universal React Native app. So it uses ExpoRouter and it&#39;s basically using the same code base for web and mobile, which is quite cool. And you&#39;re seeing something in production that&#39;s being used by, as we speak, 17, 18 million users now, which is pretty [56:40]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; They reached over, like, 21 million a couple days ago. okay. So I&#39;m clearly off of the uh, off of the numbers. [56:47]&lt;/p&gt;
&lt;p&gt;There was about a week and a half where they were adding about a million people a day. [56:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; React Native London Conf, we actually had the and Sam from the BlueSky team. Dan now works mostly on the AT protocol stuff, but Sam works on the mobile app and the web app. They are talking about it. This was while they were getting a million per day. So it was quite cool to see them there talking about some of the stuff that they&#39;re working on. [57:06]&lt;/p&gt;
&lt;p&gt;It&#39;s a really cool team, and it&#39;s a very small team that&#39;s building this, which makes it all the more impressive. And it&#39;s super cool that they can take on the likes of a certain someone who&#39;s multi multi multi billionaire who&#39;s trying to create his own community. So, you know, pretty cool. [57:20]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yep, it is super cool. I could probably talk a lot more about it. I have opinions on this. And I&#39;ve been thinking about the need for data portability and the benefits, the potential benefits of decentralization in the context of social media for most of a decade. I&#39;m actually considering if I want to try and do a business effort based on the underlying data that is BlueSky. [57:45]&lt;/p&gt;
&lt;p&gt;I think that there&#39;s a lot of opportunity to iterate on the UI layer of social media. And if you have a common public data set, that&#39;s a lot easier to do. [57:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; on that Carl, the current BlueSky app was not the original BlueSky app Which makes it all the more interesting. So Sam created his own BlueSky client It was better than the original BlueSky app because he could use it with the AT protocol And then they just hired him and made Sam So it kind of shows that like, with this decentralized nature, anyone can make a client and sometimes it&#39;ll be better. [58:14]&lt;/p&gt;
&lt;p&gt;Kind of like the, what was that Reddit client that was better on, on iOS back in the day, but then Reddit shut it down? I forget [58:20]&lt;/p&gt;
&lt;p&gt;the name. [58:21]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; of them. Apollo? [58:22]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Well, [58:23]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; all, all of them, yeah. [58:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; all of them, but Apollo. So yeah, similar story, but the decentralized nature helps with that. [58:29]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; It does. And also the BlueSky client is both a universal React native app, and it&#39;s also open source. So I&#39;ve seen a bunch of React and web people, like not just posting on BlueSky, but what they&#39;re posting is their experiments building, you know, iterate changing the UI of the client they&#39;re posting from like, Oh, wouldn&#39;t it be great if we had Markdown support in BlueSky? [58:51]&lt;/p&gt;
&lt;p&gt;Look at this proof of concept that just hacked [58:52]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; We&#39;re splitting [58:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; a PR. [58:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; the notifications tab into subtabs. [58:56]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; could talk a lot more about this. We&#39;re already 10 minutes over and. Still need to do the lightning round. But yeah, okay, Blue Sky&#39;s great. Follow me. [59:03]&lt;/p&gt;
&lt;h2 id=&quot;-lightning-round-&quot;&gt;⚡ Lightning round ⚡&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Alright, lightning round, go! [59:06]&lt;/p&gt;
&lt;h2 id=&quot;deno-v-oracle-canceling-the-javascript-trademark&quot;&gt;&lt;a href=&quot;https://deno.com/blog/deno-v-oracle&quot;&gt;Deno v. Oracle: Canceling the JavaScript Trademark&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Deno vs. Oracle. We mentioned this a while ago. I think two months ago. Deno opened a petition to ask Oracle to release the JavaScript trademark, and this is a follow up to that. Seems neat. Seems cool. Love it. They are like formally asking Oracle now. It has moved on from just a petition. [59:27]&lt;/p&gt;
&lt;h2 id=&quot;two-ways-to-the-two-reacts&quot;&gt;&lt;a href=&quot;https://bobaekang.com/blog/two-ways-to-the-two-reacts&quot;&gt;Two ways to the two Reacts&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Next up, an author named Bobae Kang has written some good articles talking about the mental mindset of React at a very conceptual, architectural level. And has a good post called, The Two Ways to the Two Reacts, which kind of contrasts Next, where everything is about the server first, versus something like a tan stack start, which is client first, and then optionally adding in the server. [59:52]&lt;/p&gt;
&lt;h2 id=&quot;thats-not-an-abstraction-thats-just-a-layer-of-indirection&quot;&gt;&lt;a href=&quot;https://fhur.me/posts/2024/thats-not-an-abstraction&quot;&gt;That&#39;s not an abstraction, that&#39;s just a layer of indirection&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Another one. Great post that I love, called, That&#39;s not an abstraction, that&#39;s just a layer of indirection. [59:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; True that [01:00:00]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Just generally true, like, end of, end of comment. [01:00:04]&lt;/p&gt;
&lt;h2 id=&quot;react-anti-pattern-stop-passing-setters-down-the-components-tree&quot;&gt;&lt;a href=&quot;https://matanbobi.dev/posts/stop-passing-setter-functions-to-components&quot;&gt;React Anti-Pattern: Stop Passing Setters Down the Components Tree&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Related, while I was looking for, you know, doing my final pass of resources to pull in I&#39;ve seen this anti pattern kind of blog post called stop &quot;passing setters down the components tree&quot; and, agree. [01:00:17]&lt;/p&gt;
&lt;p&gt;That is a wonderful example of not an abstraction. If you&#39;re just passing the set state setter down as a prop, you should probably do it differently. [01:00:26]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; something something dispatching actions. [01:00:29]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Aha. What Redux? [01:00:31]&lt;/p&gt;
&lt;h2 id=&quot;what-is-http3&quot;&gt;&lt;a href=&quot;https://www.cloudflare.com/learning/performance/what-is-http3/&quot;&gt;What is HTTP/3?&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, I saw a neat post from Cloudflare called, What is HTTP 3? That made me go, whoa, I didn&#39;t know there was an HTTP 3. So yeah, that exists. It&#39;s something about QUIC. And I think it&#39;s related to, like, I don&#39;t know. It sounded like the promise benefits. They sounded very familiar from what I remember reading about HTTP 2, which as far as I know have not really been realized. So Seems like a new attempt to edit something something UDP, HTTP 3. [01:01:03]&lt;/p&gt;
&lt;h2 id=&quot;leaked-vercel-v0-system-prompts&quot;&gt;&lt;a href=&quot;https://old.reddit.com/r/LocalLLaMA/comments/1gwwyia/leaked_system_prompts_from_v0_vercels_ai/&quot;&gt;Leaked Vercel v0 system prompts&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Someone posted on Reddit that they managed to exfiltrate the system prompts for Vercel&#39;s V0 AI UI generation tool. And that&#39;s cool, that&#39;s interesting. It looks like this was not, you know, any weird black hat stuff, like they just saw something leak. and managed to continue prompting the AI until they got the full system prompt. [01:01:25]&lt;/p&gt;
&lt;p&gt;So this is output from the AI, which means it might not be real, but it does seem approximately correct. You know, Must write valid JavaScript code that uses state of the art Node. js features and follows best practices. Does not use the components. You know, so it&#39;s like massive, massive prompt. [01:01:44]&lt;/p&gt;
&lt;p&gt;I think it&#39;s an interesting, you know, peek behind the curtain. This is what the wizard looks like kind of [01:01:50]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And today&#39;s example of why I do not want to spend the rest of my career writing prompts. I want to write code. [01:01:57]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; What&#39;s the difference? [01:01:59]&lt;/p&gt;
&lt;h2 id=&quot;react-scan-to-highlight-component-renders-by-the-author-of-millionjs-which-he-used-to-point-out-githubs-code-view-re-rendering-on-every-scroll&quot;&gt;&lt;a href=&quot;https://react-scan.million.dev/&quot;&gt;React Scan to highlight component renders&lt;/a&gt; (by the author of Million.js), which he used to point out &lt;a href=&quot;https://x.com/aidenybai/status/1859267710498263073&quot;&gt;Github’s code view re-rendering on every scroll&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Alright, a couple perf related items. Aiden Bai, the author of the Million. js React plugin for performance, I guess. Recently put out a new tool called React Scan, which can be used to identify, you know, components that are over rendering in your app. I glanced at the source code for 30 seconds and saw that it&#39;s messing around with some of the internals of React&#39;s Fibretree, and as someone who has spent a lot of time messing around with the React code, And React&#39;s internals in the React DevTools. [01:02:28]&lt;/p&gt;
&lt;p&gt;I have a sense of how this is probably working, and I approve. In fact, he actually used it to identify that GitHub&#39;s current source file display, which is based on React, was apparently re rendering all the lines every time you scrolled. And he even managed to identify, yeah, like, here&#39;s the component. [01:02:46]&lt;/p&gt;
&lt;p&gt;And here&#39;s like the prop that needs to be memoized in order to fix that. And a couple hours later, some GitHub engineer actually fixed it. So that&#39;s a step in the right direction. [01:02:56]&lt;/p&gt;
&lt;h2 id=&quot;whats-next-for-the-react-compiler&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=qd5yk2gxbtg&quot;&gt;What’s Next for the React Compiler?&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; On a similar note, Satya from the React team just did a, just did a, an update talk called what&#39;s next for the React compiler talking about some of the upcoming features they&#39;re thinking of working on that would hopefully further improve performance. [01:03:10]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Very smooth. Unrelated, non smooth transition [01:03:14]&lt;/p&gt;
&lt;h2 id=&quot;framer-motion-spinning-out-as-an-oss-tool-motion-and-conversely-gsap-is-joining-webflow&quot;&gt;&lt;a href=&quot;https://motion.dev/blog/framer-motion-is-now-independent-introducing-motion&quot;&gt;Framer Motion spinning out as an OSS tool (Motion)&lt;/a&gt;, and conversely &lt;a href=&quot;https://gsap.com/blog/webflow-GSAP/&quot;&gt;GSAP is joining WebFlow&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Framer Motion which is a React animation tool. Uh, Is spinning out. It is no longer under the Framer brand and it is no longer React specific. Uh, It&#39;s just an open source tool called Motion, which seems cool. Framer Motion is definitely something I&#39;ve heard about a lot for doing like complex, advanced animations and whatever. [01:03:37]&lt;/p&gt;
&lt;p&gt;So yeah, it seems cool. Love it. In the inverse direction GreenSock animation platform, GSAP, was acquired by Webflow. Love it. Love seeing open source tools get money. The maintainers do a lot of work and they deserve to be compensated for it. So yeah, super happy to see that. [01:03:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; This feels like that, you know, that classic line about there&#39;s two ways to make money. Bundling and unbundling. [01:04:00]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yes. 100%. [01:04:03]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; One library leaves, another library joins. [01:04:05]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right, every company is either a bundling or unbundling play and here we go. Here&#39;s two examples. Well, all right Thank you everyone for joining us and sticking with us all the way to the end. We will be back Well, actually we will not be back on the last Wednesday of the month because the last Wednesday of December is Christmas and we are Not recording on Christmas. I am so sorry. I&#39;m not sorry [01:04:26]&lt;/p&gt;
&lt;p&gt;But yeah, we so we will be back recording at the end of December probably that Monday TBD Or back in your podcast feed as soon as we can. Yeah, thanks so much, Mark. Yeah. Always [01:04:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; nice too be here. I&#39;m very much looking forward to a nice long Thanksgiving break where we&#39;ll probably mostly be hacking and Redux stuff. [01:04:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; yeah, it&#39;s always a pleasure to be here. Um, Lovely chatting with you all and loved getting into blue sky shenanigans this month, so we&#39;ll see what next month has in store for us. [01:04:52]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Thank you for the behind the scenes bit on that. I did not know that they&#39;d swapped clients. [01:04:56]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I&#39;ll hopefully share the recording once we have it live and everyone can hear the story from the comforts of their home. [01:05:02]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool. All right. We gather sources from this week in React, bytes. dev, react status, Next. js Weekly, the React. js subreddit, here in Reactaflux, and directly from people publishing articles, mostly on BlueSky. If you see anything newsworthy, definitely let us know by posting it in the Tech News and Reads channel here in Reactaflux, or send me an email. [01:05:24]&lt;/p&gt;
&lt;p&gt;I will read it if you send me an email to hello at reactiflux. com yeah, I read everything. I will read it. If this is a show you get value from and want to support, best way to do so is by submitting a review and by telling your friends and coworkers about it. Help them get as smart as you are about React. [01:05:41]&lt;/p&gt;
&lt;p&gt;See you next month.&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2024-11</link><guid isPermaLink="false">reactiflux-tmir-2024-11</guid><pubDate>Tue, 26 Nov 2024 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>This Month in React, October 2024: React DevTools update, React Native 0.76 (new architecture dropped), Web Components are(n&#39;t) the future</title><description>&lt;iframe src=&quot;https://podcasters.spotify.com/pod/show/reactiflux/embed/episodes/TMiR-2024-10-React-DevTools-update--React-Native-0-76-new-architecture-dropped--Web-Components-arent-the-future-e2qi6bb&quot; height=&quot;102px&quot; width=&quot;400px&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#job-market-fred-data-layoffsfyi&quot;&gt;00:56&lt;/a&gt;]&lt;/code&gt; Job market: &lt;a href=&quot;https://fred.stlouisfed.org/series/IHLIDXUSTPSOFTDEVE&quot;&gt;FRED data&lt;/a&gt;, &lt;a href=&quot;https://layoffs.fyi/&quot;&gt;Layoffs.fyi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#new-releases&quot;&gt;01:40&lt;/a&gt;]&lt;/code&gt; New releases
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#react-native-076-proper&quot;&gt;01:43&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactnative.dev/blog/2024/10/23/release-0.76-new-architecture&quot;&gt;React Native 0.76 proper&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#new-architecture-is-here&quot;&gt;01:54&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactnative.dev/blog/2024/10/23/the-new-architecture-is-here&quot;&gt;New Architecture is here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#bluesky-and-expensify&quot;&gt;05:18&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/bluesky-social/social-app/releases/tag/1.92.0-na-rc.2&quot;&gt;BlueSky&lt;/a&gt; and &lt;a href=&quot;https://blog.swmansion.com/sunrising-new-architecture-in-the-new-expensify-app-729d237a02f5&quot;&gt;Expensify&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#react-compiler-beta&quot;&gt;06:22&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react.dev/blog/2024/10/21/react-compiler-beta-release&quot;&gt;React Compiler Beta&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#react-devtools-v6&quot;&gt;07:23&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/facebook/react/blob/main/packages/react-devtools/CHANGELOG.md#600&quot;&gt;React DevTools v6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#zustand-v5&quot;&gt;07:50&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/pmndrs/zustand/releases/tag/v5.0.0&quot;&gt;Zustand v5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#eslintpluginreacthooks-v5&quot;&gt;08:17&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/facebook/react/releases/tag/eslint-plugin-react-hooks%405.0.0&quot;&gt;eslint-plugin-react-hooks v5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#announcing-deno-2&quot;&gt;08:45&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://deno.com/blog/v2.0&quot;&gt;Announcing Deno 2&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#rbun-deno-2-vs-bun-what-are-your-thoughts-rdeno-deno-2-vs-bun-what-are-your-thoughts&quot;&gt;08:45&lt;/a&gt;]&lt;/code&gt; /r/bun: &lt;a href=&quot;https://www.reddit.com/r/bun/comments/1fp9ndk/deno_2_vs_bun_what_are_your_thoughts/&quot;&gt;Deno 2 vs Bun? What are your thoughts?&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;https://www.reddit.com/r/Deno/comments/1fp9mom/deno_2_vs_bun_what_are_your_thoughts/&quot;&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;/r/deno: &lt;a href=&quot;https://www.reddit.com/r/Deno/comments/1fp9mom/deno_2_vs_bun_what_are_your_thoughts/&quot;&gt;Deno 2 vs Bun? What are your thoughts?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#tauri-20&quot;&gt;10:14&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://v2.tauri.app/blog/tauri-20/&quot;&gt;Tauri 2.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#one-the-new-rn-framework&quot;&gt;11:40&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://onestack.dev/&quot;&gt;One - the new RN framework&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#creators-of-tamagui&quot;&gt;11:40&lt;/a&gt;]&lt;/code&gt; Creators of &lt;a href=&quot;https://tamagui.dev/&quot;&gt;Tamagui&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#built-on-zerosync&quot;&gt;11:40&lt;/a&gt;]&lt;/code&gt; Built on &lt;a href=&quot;https://zerosync.dev/&quot;&gt;ZeroSync&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#cloudflare-workers-updates&quot;&gt;16:15&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://blog.cloudflare.com/builder-day-2024-announcements/?ck_subscriber_id=1888282043/&quot;&gt;Cloudflare Workers updates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#zeego-20&quot;&gt;22:05&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/nandorojo/zeego/releases/tag/v2.0.0&quot;&gt;Zeego 2.0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#conferences&quot;&gt;22:33&lt;/a&gt;]&lt;/code&gt; Conferences
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#halfstack-london-london-uk-nov-13&quot;&gt;22:35&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://halfstackconf.com/london/spon&quot;&gt;HalfStack London&lt;/a&gt; London, UK Nov 13&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#react-native-london-london-uk-nov-15&quot;&gt;22:40&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://guild.host/events/rnlconf-2024-y9arho/attend?discount=TMIR&quot;&gt;React Native London&lt;/a&gt; London, UK Nov 15
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Special Discount for podcast listeners with discount code TMIR&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#react-summit-us-new-york-usa-nov-1821&quot;&gt;23:10&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactsummit.us/&quot;&gt;React Summit US&lt;/a&gt; New York, USA Nov 18-21&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#react-africa-casablanca-morocco-nov-29&quot;&gt;23:14&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react-africa.com/&quot;&gt;React Africa&lt;/a&gt; Casablanca, Morocco Nov 29&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#react-day-berlin-berlin-de-dec-13-&amp;amp;-16&quot;&gt;23:19&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactday.berlin/&quot;&gt;React Day Berlin&lt;/a&gt; Berlin, DE Dec 13 &amp;amp; 16&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#sponsored-by-infinite-red&quot;&gt;23:33&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://infinite.red/&quot;&gt;Sponsored by Infinite Red&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#some-react-19-progress-but-no-eta&quot;&gt;24:50&lt;/a&gt;]&lt;/code&gt; Some React 19 progress, but no ETA
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#lazy-context-propagation&quot;&gt;24:50&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/sebastienlorber/status/1841042683122286641&quot;&gt;Lazy Context Propagation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#%E2%80%9Cserver-actions%E2%80%9D-renamed-to-%E2%80%9Cserver-functions%E2%80%9D&quot;&gt;25:51&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://19.react.dev/reference/rsc/server-functions&quot;&gt;“Server Actions” renamed to “Server Functions”&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#react-native-bottom-tabs-library-using-native-bottom-tabs&quot;&gt;26:08&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/okwasniewski/react-native-bottom-tabs&quot;&gt;React Native Bottom Tabs library using native bottom tabs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#meta-connect-showcasing-new-arvr-apps-built-with-rn&quot;&gt;27:45&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://engineering.fb.com/2024/10/02/android/react-at-meta-connect-2024/&quot;&gt;Meta Connect showcasing new AR/VR apps built with RN&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#static-hermes-updates&quot;&gt;29:07&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/EvanBacon/expo-static-hermes-demo&quot;&gt;Static Hermes Updates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;Reddit is revolting against Epic React
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#anyone-else-feel-burnt-by-epic-react--rreactjs&quot;&gt;30:16&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://old.reddit.com/r/reactjs/comments/1fwks6r/anyone_else_feel_burnt_by_epic_react/&quot;&gt;Anyone else feel burnt by Epic React? : r/reactjs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#epic-react-v1-=%3E-v2-upgrade-&amp;amp;-deception&quot;&gt;30:42&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://old.reddit.com/r/reactjs/comments/1fut75h/epic_react_v1_v2_upgrade_deception/&quot;&gt;Epic React V1 =&amp;gt; V2 Upgrade &amp;amp; Deception.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#web-components-are-not-the-future&quot;&gt;37:12&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://dev.to/ryansolid/web-components-are-not-the-future-48bh&quot;&gt;Web Components Are Not the Future&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#followup-to-this-from-march-2020-maybe-web-components-are-not-the-future&quot;&gt;37:12&lt;/a&gt;]&lt;/code&gt; Followup to this from March 2020: &lt;a href=&quot;https://dev.to/ryansolid/maybe-web-components-are-not-the-future-hfh&quot;&gt;Maybe Web Components are not the Future?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#web-components-are-not-the-future--they%E2%80%99re-the-present&quot;&gt;37:34&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.abeautifulsite.net/posts/web-components-are-not-the-future-they-re-the-present/&quot;&gt;Web Components Are Not the Future — They’re the Present&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#liskovs-gun-the-parallel-evolution-of-react-and-web-components&quot;&gt;37:53&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.baldurbjarnason.com/2024/liskovs-gun/&quot;&gt;Liskov&#39;s Gun: The parallel evolution of React and Web Components&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#announcing-voidzero-next-generation-toolchain-for-javascript&quot;&gt;44:10&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://voidzero.dev/posts/announcing-voidzero-inc&quot;&gt;Announcing VoidZero - Next Generation Toolchain for JavaScript&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#oxc-transformer-alpha&quot;&gt;44:37&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://twitter.com/boshen_c/status/1840322879424258115&quot;&gt;OXC compiler&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#oxc-compiler&quot;&gt;44:37&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://oxc.rs/blog/2024-09-29-transformer-alpha.html&quot;&gt;OXC Transformer Alpha&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#updates-from-the-104th-tc39-meeting&quot;&gt;45:23&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://dev.to/hemanth/updates-from-the-104th-tc39-meeting-14cp&quot;&gt;Updates from the 104th TC39 meeting&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;Stage 4 proposals
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#promisetry&quot;&gt;45:33&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/tc39/proposal-promise-try&quot;&gt;Promise.try&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#sync-iterator-helpers&quot;&gt;46:21&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/tc39/proposal-iterator-helpers&quot;&gt;Sync Iterator Helpers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#import-attributes&quot;&gt;46:48&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/tc39/proposal-import-attributes&quot;&gt;Import Attributes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#json-modules&quot;&gt;46:58&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/tc39/proposal-json-modules&quot;&gt;JSON modules&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#regexp-modifiers&quot;&gt;47:05&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/tc39/proposal-regexp-modifiers&quot;&gt;RegExp Modifiers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#language-evolution-jssugar-proposal&quot;&gt;47:11&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://docs.google.com/presentation/d/1ylROTu3N6MyHzNzWJXQAc7Bo1O0FHO3lNKfQMfPOA4o/edit#slide=id.g30432c5cd9c_0_30&quot;&gt;Language Evolution&lt;/a&gt; “JSSugar” proposal
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#nullvoxpopuli-on-x&quot;&gt;47:11&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/nullvoxpopuli/status/1842389133810913338&quot;&gt;NullVoxPopuli on X&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#nullvoxpopuli-on-x&quot;&gt;47:11&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/nullvoxpopuli/status/1842389157693227375&quot;&gt;NullVoxPopuli on X&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#brendaneich-on-x&quot;&gt;47:11&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/BrendanEich/status/1842630141304025263&quot;&gt;BrendanEich on X&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#daniel-ehrenberg-thoughts&quot;&gt;47:11&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://gist.github.com/littledan/a590784a72f2e1b8cc633ff5ff8a9dc2&quot;&gt;Daniel Ehrenberg thoughts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#%E2%9A%A1-lightning-round-%E2%9A%A1&quot;&gt;50:44&lt;/a&gt;]&lt;/code&gt; Lightning Round
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#the-disappearance-of-an-internet-domain--io&quot;&gt;50:44&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://every.to/p/the-disappearance-of-an-internet-domain&quot;&gt;The Disappearance of an Internet Domain&lt;/a&gt; – .io&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#how-to-control-a-react-component-with-the-url&quot;&gt;51:51&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://buildui.com/posts/how-to-control-a-react-component-with-the-url&quot;&gt;How to control a React component with the URL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#if-wordpress-is-to-survive-matt-mullenweg-must-be-removed&quot;&gt;53:16&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://joshcollinsworth.com/blog/fire-matt&quot;&gt;If WordPress is to survive, Matt Mullenweg must be removed&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#web-without-walls--dan-abramov&quot;&gt;55:09&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=F1sJW6nTP6E&quot;&gt;Web Without Walls — Dan Abramov&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#preact-compat-discussion&quot;&gt;57:23&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://old.reddit.com/r/reactjs/comments/1fy2jjh/i_ran_into_preacts_false_promise_what_can_i_do/&quot;&gt;Preact compat discussion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#content-visibility-in-css&quot;&gt;57:44&lt;/a&gt;]&lt;/code&gt; Content-visibility in CSS
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#using-css-containment&quot;&gt;57:44&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_containment/Using_CSS_containment&quot;&gt;Using CSS containment&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#contain-caniuse&quot;&gt;58:00&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/contain&quot;&gt;contain&lt;/a&gt; - &lt;a href=&quot;https://caniuse.com/mdn-css_properties_contain&quot;&gt;CanIUse&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#contentvisibility-caniuse&quot;&gt;59:50&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/content-visibility&quot;&gt;content-visibility&lt;/a&gt; - &lt;a href=&quot;https://caniuse.com/mdn-css_properties_content-visibility&quot;&gt;CanIUse&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#how-i-built-my-blog-%E2%80%A2-josh-w-comeau&quot;&gt;01:00:39&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.joshwcomeau.com/blog/how-i-built-my-blog-v2/&quot;&gt;How I Built My Blog • Josh W. Comeau&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-10#types-of-react-components-2024&quot;&gt;01:02:24&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.robinwieruch.de/react-component-types/&quot;&gt;Types of React Components 2024&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Hello everyone. Thank you for joining us for the October edition of This Month in React, where we recap and digest the recent developments in the ever evolving React and web ecosystem. We&#39;re coming to you live from Reactiflux, the place for professional React developers. [00:14]&lt;/p&gt;
&lt;p&gt;And we&#39;re supported by Infinite Red, a consultancy that exclusively works with React Native, but we&#39;ll do a little ad read for them later. [00:21]&lt;/p&gt;
&lt;p&gt;Hello, I&#39;m Carl. I&#39;m a staff product developer and freelance community manager here at Reactiflux where I run community programs like these events and the star helpers, and do other stuff to keep the community running smoothly. [00:33]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Hi, I&#39;m Mark. My day job is at replay. io, which we&#39;re going to have a slight tangent on the io part of this later on. And other than that, on Redux stuff. [00:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; The mobile team at Theodo which is a global consultancy and I&#39;m active within the React Native ecosystem, organizing the React Native community and here and there dabbling in some open source. Happy to be here as always. [00:56]&lt;/p&gt;
&lt;h2 id=&quot;job-market-fred-data-layoffsfyi&quot;&gt;Job market: &lt;a href=&quot;https://fred.stlouisfed.org/series/IHLIDXUSTPSOFTDEVE&quot;&gt;FRED data&lt;/a&gt;, &lt;a href=&quot;https://layoffs.fyi/&quot;&gt;Layoffs.fyi&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. First up, some quick hits while people start filtering in. We did not do a job market update last month. It was actually pretty quiet. Not a lot of news. It seems kind of back to baseline. data for posts made to Indeed is still, like, two thirds of what it was at the beginning of 2020 before pandemic hit. [01:14]&lt;/p&gt;
&lt;p&gt;that might have been a high watermark for the industry, so it&#39;s, it&#39;s kind of hard to say. Layoffs at least have been, look very low for the last two months in a row. So that seems good, but yeah, the hiring has not really picked up. But not sure it&#39;s going to. [01:29]&lt;/p&gt;
&lt;p&gt;I wonder about that. Definitely the vibe I&#39;ve been getting is that most of the roles being hired for are more on the seniors end of the scale, which is Not ideal, not great, but yeah, seems to be where it&#39;s at. [01:40]&lt;/p&gt;
&lt;h2 id=&quot;new-releases&quot;&gt;New releases&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, into some new releases. [01:41]&lt;/p&gt;
&lt;p&gt;Moe, you want to tell us about React Native? [01:43]&lt;/p&gt;
&lt;h2 id=&quot;react-native-076-proper&quot;&gt;&lt;a href=&quot;https://reactnative.dev/blog/2024/10/23/release-0.76-new-architecture&quot;&gt;React Native 0.76 proper&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Yes, indeed. I feel like this is years in the making, so I&#39;ve got to really drum this up as much as possible. But, the new architecture is finally here, [01:54]&lt;/p&gt;
&lt;h2 id=&quot;new-architecture-is-here&quot;&gt;&lt;a href=&quot;https://reactnative.dev/blog/2024/10/23/the-new-architecture-is-here&quot;&gt;New Architecture is here&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Woohoo! [01:55]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; So this is React Native version 0. 76. And if you go back into likethe history of React Native over the last five years, the first mention of the new architecture publicly was in 2019. [02:08]&lt;/p&gt;
&lt;p&gt;And really what the whole purpose of the new architecture was, was to make a more stable Baseline for React Native interacting with native platforms. How components are rendered. How does JavaScript code trigger native code and native modules? And how do we move different things around different threads and make sure that everything is optimized and consistent? [02:28]&lt;/p&gt;
&lt;p&gt;A lot of people think that the new architecture is like a performance oriented update. It doesn&#39;t really have that many major performance improvements. There&#39;s minor ones, but really what it&#39;s trying there for mainly is, I think, for library maintainers and for framework authors to be able to create a more consistent pattern of communicating between native and React Native. [02:47]&lt;/p&gt;
&lt;p&gt;So, for a little bit of context, React Native&#39;s old architecture used this thing called the bridge. So it was basically a messaging bridge where you could pass in serialized JSON from the JavaScript layer and from the native layer and it would kind of get communicated across this bridge. But the issue with a bridge is that it can have some traffic, right? [03:03]&lt;/p&gt;
&lt;p&gt;So you can bombard it with a lot of JSON and suddenly because it&#39;s asynchronous it has limits in terms of how much it can communicate if you were trying to update things frequently or send a lot of data through that bridge you would block that, and what we would call that is that the JS thread is blocked, and so your app would basically drop in its frame rate, the CPU usage would spike, and everyone would be unhappy, and your users would be like, Hmm, this is not quite native feeling to me. [03:30]&lt;/p&gt;
&lt;p&gt;But, as of now, there&#39;s been a lot of work that&#39;s been done. React Native has a bunch of different stuff that I&#39;m not going to go into too much detail about. But the bridge has been replaced with what we call the JavaScript interface. And so what that means is JavaScript code can get a reference to a C object that communicates with a native layer, and it can directly invoke methods within that C layer that would live on the native layer. [03:51]&lt;/p&gt;
&lt;p&gt;So it removes the bridge and it&#39;s just direct communication via JavaScript interface to the native layer. So that makes things significantly more efficient. It&#39;s not just that, the new architecture is a lot of different parts. There&#39;s the new event loop, there&#39;s the new renderer and then there&#39;s the new native module system, and of course the JSI, which is kind of underpinning all of that. [04:11]&lt;/p&gt;
&lt;p&gt;the article that you shared in the chat has a lot of details and it&#39;s a good summary, so I would start from there if you&#39;ve been kind of under the rocks. In the React Native ecosystem and not,really hearing much about the new architecture. I think it&#39;s a really good summary about why it matters, what you can achieve. [04:25]&lt;/p&gt;
&lt;p&gt;And ultimately, I think one of the biggest things is that it&#39;s giving you parody with React behaviors, because a lot of things that were in React before just didn&#39;t work in React Native properly and people were figuring that out on usage. Basically, it wasn&#39;t really documented very well anywhere. very exciting times. [04:40]&lt;/p&gt;
&lt;p&gt;it&#39;s finally happened. [04:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, I feel like this is an update that&#39;s a little easy to be, you know, under a rock on. If it&#39;s been in progress for literally five years now, I could see how that might slip into the back of your mind as something like, There&#39;s a lot of things I waited five years for, and by about the third or fourth year, I started wondering if it was ever going to actually happen. [05:01]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; exactly, and you know, it&#39;s one of those things where yeah, it&#39;s been happening for five years, but you do get new architecture talks every conference that&#39;s a React Native conference or like React Native adjacent. So it&#39;s been the topic of conversation and everyone&#39;s like, Oh, that&#39;ll probably come at some point. [05:15]&lt;/p&gt;
&lt;p&gt;And it feels quite surreal to have it actually here. [05:18]&lt;/p&gt;
&lt;h2 id=&quot;bluesky-and-expensify&quot;&gt;&lt;a href=&quot;https://github.com/bluesky-social/social-app/releases/tag/1.92.0-na-rc.2&quot;&gt;BlueSky&lt;/a&gt; and &lt;a href=&quot;https://blog.swmansion.com/sunrising-new-architecture-in-the-new-expensify-app-729d237a02f5&quot;&gt;Expensify&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool. I saw a post from Software Mansion, which is a React Native focused, consultancy as far as I know, talking about bringing the new architecture into the Expensify app, and I understand that the Blue Sky native app is doing a release candidate for it that&#39;s like, opt in, and they say it&#39;s, you know, it&#39;s a release candidate, it&#39;s unsupported, try it at your own risk, please report bugs. [05:41]&lt;/p&gt;
&lt;p&gt;But like, those are real apps, like Expensify is widely used enterprise app. So that&#39;s some real usage. That&#39;s pretty cool. [05:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; props to the meta team, they actually spent a lot of time with real apps that are large scale apps that, you know, were popularly React Native. They approached the developers of those apps and said, Hey, can you turn on the new architecture before we release and make sure that it&#39;s working and behaving and functioning in a way that doesn&#39;t really have regressions and is actually better than it was before. [06:06]&lt;/p&gt;
&lt;p&gt;So they&#39;ve really tested this out and drawn it out. They&#39;ve worked with library maintainers one on one to get them on to the new architecture boat. So, this is as good as it ever will get in terms of just biting the bullet and releasing. [06:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Nice. Yeah. [06:22]&lt;/p&gt;
&lt;h2 id=&quot;react-compiler-beta&quot;&gt;&lt;a href=&quot;https://react.dev/blog/2024/10/21/react-compiler-beta-release&quot;&gt;React Compiler Beta&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; The first one is that the React compiler is now in beta. The first, you know, early adopter, I guess, releases came out at React Conf back in May. And it&#39;s now in beta you can actually meaningfully try it out, they&#39;ve done a lot of work to try to improve the behavior against real world applications. [06:42]&lt;/p&gt;
&lt;p&gt;Along with that, there&#39;s a couple different ESLint plugins the Rules of React Hooks plugin has been updated, and it&#39;s got some additional checks for whether things are actually components. Along with that, the compiler has its own associated plugin that tries to check for the rules of React behavior. [07:02]&lt;/p&gt;
&lt;p&gt;You know, basically, are you doing anything that is considered illegal, even if it technically runs inside of your React component? And so they&#39;re highly recommending that people start trying to use the rules of React plugin in your applications to find places where you&#39;re doing things that you&#39;re really not supposed to in React. [07:23]&lt;/p&gt;
&lt;h2 id=&quot;react-devtools-v6&quot;&gt;&lt;a href=&quot;https://github.com/facebook/react/blob/main/packages/react-devtools/CHANGELOG.md#600&quot;&gt;React DevTools v6&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Along with that, there&#39;s a new React DevTools extension release. They did a lot of shuffling around of the internals, but what is probably most relevant here is that the DevTools now actually have support for showing server components in the tree. And this is a big deal, because up until now there really hadn&#39;t been any way to atsee what server components were actually, being used when you were looking at the code on the client side. [07:47]&lt;/p&gt;
&lt;p&gt;So that&#39;s a pretty distinct improvement there. [07:50]&lt;/p&gt;
&lt;h2 id=&quot;zustand-v5&quot;&gt;&lt;a href=&quot;https://github.com/pmndrs/zustand/releases/tag/v5.0.0&quot;&gt;Zustand v5&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Flipping away from that over into state management, Zustan just came out with version 5, and it doesn&#39;t have any new features, but it does drop some, legacy backwards compatibility changes, default exports, a couple other things, and it now requires React 18. [08:08]&lt;/p&gt;
&lt;p&gt;So if you&#39;re using Zustan, you may want to look at picking that up. [08:11]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Hang on. The Redux guy talking about another state management library. Hold up. [08:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I&#39;m allowed to. ( laughter) [08:17]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; For sure . [08:17]&lt;/p&gt;
&lt;h2 id=&quot;eslint-plugin-react-hooks-v5&quot;&gt;&lt;a href=&quot;https://github.com/facebook/react/releases/tag/eslint-plugin-react-hooks%405.0.0&quot;&gt;eslint-plugin-react-hooks v5&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; There&#39;s also a new major version of the ESLint plugin for React Hooks. Looks like it supports ESLint v9, and it doesn&#39;t look like there&#39;s a lot of changes, I think it&#39;s mostly just compatibility for latest versions. But, they did change how the rule works for component names. [08:33]&lt;/p&gt;
&lt;p&gt;So now, previously it used to require a non lowercase letter. So it&#39;ll let you do things like an underscore in front, and now it doesn&#39;t. Now it has to be an uppercase letter. they kind of flipped the bit on that. [08:44]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Picky, picky. [08:45]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool. [08:45]&lt;/p&gt;
&lt;h2 id=&quot;announcing-deno-2&quot;&gt;&lt;a href=&quot;https://deno.com/blog/v2.0&quot;&gt;Announcing Deno 2&lt;/a&gt;&lt;/h2&gt;
&lt;h2 id=&quot;rbun-deno-2-vs-bun-what-are-your-thoughtsrdeno-deno-2-vs-bun-what-are-your-thoughts&quot;&gt;/r/bun: &lt;a href=&quot;https://www.reddit.com/r/bun/comments/1fp9ndk/deno_2_vs_bun_what_are_your_thoughts/&quot;&gt;Deno 2 vs Bun? What are your thoughts?&lt;/a&gt;&amp;nbsp;/r/deno: &lt;a href=&quot;https://www.reddit.com/r/Deno/comments/1fp9mom/deno_2_vs_bun_what_are_your_thoughts/&quot;&gt;Deno 2 vs Bun? What are your thoughts?&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Deno released version 2 as well. We&#39;ve covered Deno sporadically over the last couple of episodes, but the highlights here that they shout out are backwards compatibility with Node. [08:56]&lt;/p&gt;
&lt;p&gt;js and NPM, native support for the package. json and Node modules. I guess that&#39;s part of backwards compatibility. More package management, I know, you know, the original idea behind Deno dependencies was just like a little bit more URL based and kind of free for all like no registry just like install code very like go Inspired and I guess they&#39;re walking that back pretty hard. [09:21]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; they&#39;ve walked [09:22]&lt;/p&gt;
&lt;p&gt;back a lot of things around NPM compatibility. [09:25]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yes, I feel like they started out heavily opinionated and are walking back a lot of those opinions, which okay I mean, I guess fair enough. They did also do a lot of work on the standard library and things So it could well be that some of those opinions were just like this is less work. [09:40]&lt;/p&gt;
&lt;p&gt;We&#39;re gonna launch it they&#39;ve got a standard library Support for private NPM registries. Yeah, a lot of these things are just kind of like details on backwards compatibility with node and NPM they&#39;re doing LTS releases. They&#39;ve got their own JSR, JavaScript, something registry. [09:57]&lt;/p&gt;
&lt;p&gt;And there were a couple of threads that I wanted to shout out of exact same title posted in the Bun and Dino subreddits, Dino2 vs Bun. What are your thoughts? I won&#39;t summarize them. It&#39;s just like a bunch of Reddit commenters, you can see, see the two, the two camps reacting to the news, [10:14]&lt;/p&gt;
&lt;h2 id=&quot;tauri-20&quot;&gt;&lt;a href=&quot;https://v2.tauri.app/blog/tauri-20/&quot;&gt;Tauri 2.0&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; The Tari framework, which lets you build desktop apps using web technologies as an alternative to Electron just came out with version two. They have some improvements around HMAR and plugins and various other internal improvements. If you&#39;re building desktop apps, probably worth taking a look. [10:32]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, I thought it was neat that they added a permissions model. I guess they used to have like an allow list of things that your app was allowed to do. And they talked a little bit about enhancing that with, you know, a permissions model, which seems like a good improvement. Yeah, they also mentioned mobile support, which was like, what? I feel like they buried the lead on that. It&#39;s like, I want to know a lot more about that. I feel like Rust based native app framework where you can use React on Android and iOS. Like, huh, I want to know a lot more about that, but they didn&#39;t say too much in the announcements. [11:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Yeah, it&#39;s, as with all things with thisso it&#39;s not official yet with Taure. I think they&#39;re just kind of working on it, so I,suspect they&#39;re kind of saying, hey, we&#39;re working on it. The general gist with all of these Electron like frameworks it ultimately ends upbeing something like Cordova with Ionic. [11:22]&lt;/p&gt;
&lt;p&gt;it&#39;s a web view that triggers some native functionality. It won&#39;t be a truly native app, which is, I guess, one of the distinguishing factors of React Native. But it&#39;d be very interesting to see how they play this out. And how it works in practice. It might be something a bit different, but they&#39;re being very cryptic about it so far. [11:38]&lt;/p&gt;
&lt;p&gt;So, remains to be seen. [11:40]&lt;/p&gt;
&lt;h2 id=&quot;one-the-new-rn-framework&quot;&gt;&lt;a href=&quot;https://onestack.dev/&quot;&gt;One the new RN framework&lt;/a&gt;&lt;/h2&gt;
&lt;h2 id=&quot;creators-of-tamagui&quot;&gt;Creators of &lt;a href=&quot;https://tamagui.dev/&quot;&gt;Tamagui&lt;/a&gt;&lt;/h2&gt;
&lt;h2 id=&quot;built-on-zerosync&quot;&gt;Built on &lt;a href=&quot;https://zerosync.dev/&quot;&gt;ZeroSync&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Moving on. So, earlier this year the React Native Core team came up with this big announcement saying, Hey, we think you should use frameworks. And not build your own frameworks every time you initialize a new React Native app. And so at that point they introduced Expo as the only option to, as a pre built framework. [11:57]&lt;/p&gt;
&lt;p&gt;They said, you know, you&#39;re either using Expo, or you&#39;ve built your own framework by building on top of the core of React Native. And so now we have finally gotten a second framework that&#39;s come in and said, Hey, I I&#39;m a contender for that spot as well. the framework is called one. I&#39;m not too sure why there&#39;s, that&#39;s the naming, but, there we are. [12:16]&lt;/p&gt;
&lt;p&gt;You have a theory. All right. [12:17]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; so it looks like they&#39;re built on a sync engine that&#39;s called Zero. ZeroSync. so I guess this is, you know, they&#39;re built on Zero so they are one. [12:26]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Cool. So, this is an interesting development because the person who&#39;s behind this is behind the library called Tamagui. So Tamagui is a styling library within the React Native Ecosystem. the whole spiel with Tamagui is that it&#39;s an optimized view layer library that you can use not just for your React Native apps, but also in things like Next. [12:46]&lt;/p&gt;
&lt;p&gt;js. So you can kind of share your UI across the board between React Native and the web. it&#39;s used to build these universal apps. Tamagui is quite an interesting project. It&#39;s actually a very heavyweight library, because it comes with things like a styling solution, a compiler that, does view flattening. [13:05]&lt;/p&gt;
&lt;p&gt;Next. js optimizations out of the hood. it&#39;s a very heavy styling solution when you&#39;re using it just for React Native, and it&#39;s notoriously complicated as well. they&#39;ve taken Tamagui, paired it with a whole bunch of other stuff, like a file system routing based solution, and the most interesting part, I&#39;d say arguably, is the fact that this is beat based.previous to this, you couldn&#39;t use Vite for React Native because you&#39;d have to use either Metro or in some cases you could use Webpack, but it was quite a pain to actually get that working. the creator of this, Nate, has been working on seeing if Vite can become a compiler for React Native. [13:42]&lt;/p&gt;
&lt;p&gt;React Native, and it seems like there&#39;s some good movement on this. So, it uses Veep by default to kind of standardize the bundler across web and mobile. So, it&#39;s a very interesting proposition and they have a lot of experience but it&#39;s still going to be interesting to see how this plays out. [13:58]&lt;/p&gt;
&lt;p&gt;It&#39;s very early days. So, I would Tread with caution until it&#39;s reached some point of stability and it&#39;s being used. But it&#39;s very interesting to see how it&#39;s forming. [14:09]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, definitely early days, but like, I&#39;m taking this reasonably seriously. It seems like a pretty clever and opinionated take on how to do a framework on React Native. I guess, you know, like, my rough mental model for this this feels to me like the React Native equivalent for Remix. [14:28]&lt;/p&gt;
&lt;p&gt;in large part because it&#39;s beat based, you know, okay. [14:31]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; but it has a lot of, like, very similar ideas, right? Like, they&#39;ve kind of introduced this concept of loaders as well. it&#39;s very Remix esque. so I can see why you take that comparison. [14:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; another thing that I find fascinating here is they put local first and sync engine very heavy in their homepage marketing for this. they talk a lot about this being built on zero sync, which is built by a company that I&#39;ve heard of and that the CEO follows me on Twitter. [14:57]&lt;/p&gt;
&lt;p&gt;I think that&#39;s cool. it&#39;s being built by a team that worked at a decentralized exchange that I had heard of. Six years ago. So they worked on decentralized tech that I took seriously as someone I also worked in decentralized tech six years ago. So I think it&#39;s really interesting that that&#39;s the Opinion they&#39;re bringing to this company that they named that they worked at Uniswap I viewed as one of the serious contenders in web 3 before it became overtaken by scams So it looks like they have now moved out of Web3, taken that decentralized technology experience, and are building a React Native framework that is based around local first, you know, data on your device, primarily synced to a backend. [15:40]&lt;/p&gt;
&lt;p&gt;And I think that&#39;s really cool. I am pretty bullish on local first generally, I&#39;m very curious to see how this works. Early days, like you said, it&#39;s interesting to me. I am intrigued. [15:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; and Uniswap is built with Tamagui. So the web and the mobile app is built with Tamagui which kind of is a real implementation, real world production app that&#39;s using the universal app paradigm. they know how to do it. It&#39;s just a matter of how, easy to use it is for other developers who aren&#39;t that familiar with this sort of framework or this [16:10]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; it&#39;s Yeah, right. It&#39;s easy to say how powerful and useful something is when you are the person who made it. [16:15]&lt;/p&gt;
&lt;h2 id=&quot;cloudflare-workers-updates&quot;&gt;&lt;a href=&quot;https://blog.cloudflare.com/builder-day-2024-announcements/&quot;&gt;Cloudflare Workers updates&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cloudflare Workers released a bunch of new updates, and a lot of them look really cool to me. So I&#39;m using Cloudflare Workers a little bit in like, a side project or two. [16:24]&lt;/p&gt;
&lt;p&gt;I would like to use it more for ReactiFlux projects, but actually Discord does not allow the gateway to connect to like, the Cloudflare Workers durable objects. For some reason, I don&#39;t know why, that seems weird. than the fact that you just can&#39;t connect to the API, they seem like a really powerful way to interact with Discord. [16:43]&lt;/p&gt;
&lt;p&gt;So, I would love to use them for that. Sadly, I can&#39;t. ButI think Cloudflare released, yeah, 18 big updates to the workers platform is the headline here. Literally the title of release. Something that I found really interesting is they are advertising CICD with PR preview releases for workers. [17:01]&lt;/p&gt;
&lt;p&gt;I think that&#39;s not going to be quite as like turnkey, instantly useful as it is in like Netlify or you know, Vercel where, you know, like, you get a PR preview on your website, you just get a new domain, boom, done, everything kind of works. Assuming you didn&#39;t like actively screw something up and how you are doing, you know, base URLs. [17:22]&lt;/p&gt;
&lt;p&gt;I think for a backend service like this, it&#39;s just not going to be quite so simple and like zero effort to take advantage of PR previews. Like you, you need to have a staging environment where you can be notified of a new URL being available and then dynamically swap out the, like, base route for this. [17:39]&lt;/p&gt;
&lt;p&gt;And then like other stuff, like what about. Seeding test data and things like that. So I don&#39;t think this is quite so like Mind blowingly immediately useful as it is on a web deployment CICD, but that&#39;s still super cool Like that&#39;s you know, like for it for a discord bot, which is mostly where I&#39;ve tried to use these like that&#39;s still pretty Accessible. [18:00]&lt;/p&gt;
&lt;p&gt;Yeah, so I think that&#39;s pretty pretty useful some other smaller stuff Logging on the dashboard for your workers. I have run into issues with like Observability was not easy before this, so I have actually already enabled logging on the dashboard in one of my projects because I needed it, and I was like, oh, cool, great, now I can just do it&#39;s not effort. [18:17]&lt;/p&gt;
&lt;p&gt;Better Node. js compatibility, they have, because it&#39;s a serverless runtime, they don&#39;t have stuff, like FS or HTTP or things like that. It was a little bit more Sandbox, like, Request Lifetime, they give you the entire environment in the request handler. So, when they say greater Node. [18:35]&lt;/p&gt;
&lt;p&gt;js compatibility, I&#39;m not quite sure how to interpret that. The, they had like a compatibility chart, and it included like 100 percent on, you know, NodeFS. But like, I don&#39;t know what that means when you don&#39;t have a file system, you know. I don&#39;t think they are actually emulating a file system where you can read and write. [18:52]&lt;/p&gt;
&lt;p&gt;Maybe they are, I don&#39;t think they are. [18:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; [18:54]&lt;/p&gt;
&lt;p&gt;they&#39;re slowly going through the list of Node APIs, And I think they support like only 50 percent of them. So they still don&#39;t support like file system in any capacity, just because it doesn&#39;t make sense for the runtimes they have, because our workers kind of just run in a V8 isolate. [19:11]&lt;/p&gt;
&lt;p&gt;just running somewhere on their edge network [19:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; That&#39;s what confused me though, because the compatibility thing said 100 percent coverage for FS. And so it&#39;s like, I know you don&#39;t support this because of the environment, what does that mean? I don&#39;t know how to interpret this chart. [19:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; yeah, I think some of them are probably just weird polyfills or just like shimmed values. I&#39;m [19:30]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, I mean, I guess even like, doesn&#39;t immediately explode is an improvement, you [19:36]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Is it an improvement yet? [19:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Which is where it&#39;s been for me, like, oh my god, there were some weird things that happened when I was trying to develop that. Like, CommonJS imports and things, yeah, so, yeah, I have to play around with that a little bit more. [19:48]&lt;/p&gt;
&lt;p&gt;Yeah, they also have Next. js support. via open next, which they&#39;ve open sourced. So like, cool, here&#39;s an open source runtime that they are using themselves in production to provide next support. And like, that&#39;s enormous. I think I saw when this was announced Vercel, some of the big Vercel DevRel folks who are active on Twitter seemed a little bit like they were nervous. [20:12]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I&#39;ve used Cloudflare Workers quite a lot recently, and they had some, like, Next. js support, limited. They&#39;ve been increasing it for the past few years. They started off with just, like, you can static export Next sites. Great. You can do that with anywhere and host it anywhere. Right? Then it was like, we&#39;ll support some limited sub features of Next. [20:28]&lt;/p&gt;
&lt;p&gt;And I think they&#39;re now supporting it almost fully with the OpenNext runtime. And I can see why some of the Vercel folks would be a little bit on edge, because if you support Next to that degree, yes, Vercel has a lot of nice DevEx features, but when you look at the cost for a large scale site, and where Vercel would make a lot of their money you can get the majority of those functionalities, or like 80 percent of those functionalities on CloudFlare pages. [20:52]&lt;/p&gt;
&lt;p&gt;it kind of works similarly. You get those preview branches and all of that. So I can see why they&#39;d be a little bit anxious about that, but I suspect they&#39;ll do what Vercel usually does, which is introduce a new, like, runtime dependency, and then it&#39;ll take everyone six months to basically get on the same compatibility. [21:11]&lt;/p&gt;
&lt;p&gt;So we&#39;ll see. [21:12]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; They&#39;ll just dig that moat a little bit deeper, maybe. Yeah, they also have per worker SQLite, which is neat. Previously, I guess it had only been, like key value store based, so it was kind of like having local storage available per worker, which is great, but, you know, you can&#39;t query it.you can&#39;t really do structured data in a situation like that. As well as blue green deployments, incremental rollouts. And queues, and a vector database, performance improvements, like, you know, one of the performance improvements is faster time to first token on their AI, platform. [21:41]&lt;/p&gt;
&lt;p&gt;like you were saying, Mo, about Vercel getting maybe a little nervous aboutCloudflare workers with real Next support for things like the dynamic images, some of their, longer tail of server based functionality with PR previews, incremental rollouts, and, a queuing system, like,that starts to sound a lot like the offerings that Vercel offers. [22:03]&lt;/p&gt;
&lt;p&gt;But yeah, [22:05]&lt;/p&gt;
&lt;h2 id=&quot;zeego-20&quot;&gt;&lt;a href=&quot;https://github.com/nandorojo/zeego/releases/tag/v2.0.0&quot;&gt;Zeego 2.0&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Cool. I&#39;ll quickly just give a shout out to version Zgo. So for those of you who aren&#39;t familiar, Zgo is a wrapper, it&#39;s almost like an abstraction, on top of context menus on both native and web. So again, going in that universal app trend you can use a single API in your code base to create context menus for your web with Radix, and then it&#39;ll hook into the native layer context menus on iOS and Android. [22:26]&lt;/p&gt;
&lt;p&gt;So it&#39;s a nice little library to use as a utility when you do want to have context on certain elements of your app. [22:32]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool, seems useful. [22:33]&lt;/p&gt;
&lt;h2 id=&quot;conferences&quot;&gt;Conferences&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Alright I&#39;m gonna fly through some conferences. [22:35]&lt;/p&gt;
&lt;h2 id=&quot;halfstack-london-london-uk-nov-13&quot;&gt;&lt;a href=&quot;https://halfstackconf.com/london/spon&quot;&gt;HalfStack London&lt;/a&gt; London, UK Nov 13&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Halfstack London is happening in two weeks. November 13th. [22:40]&lt;/p&gt;
&lt;h2 id=&quot;react-native-london-london-uk-nov-15&quot;&gt;&lt;a href=&quot;https://guild.host/events/rnlconf-2024-y9arho/attend?discount=TMIR&quot;&gt;React Native London&lt;/a&gt; London, UK Nov 15&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Yes, and another shameless plug React Native London conference, this will be the last announcement before it actually happens in Just over two weeks now. So, this is happening in London, of course on the 14th and 15th of November. Tickets are gonna probably start closing soon, in the next week and a half, roughly, so grab your ticket if you&#39;re interested, and there&#39;s a discount code with TMIR for this month in React. [23:03]&lt;/p&gt;
&lt;p&gt;Where you can get 10 percent off. So come along, say hi to me if you&#39;re there, shoot me a message if you do plan on attending. We&#39;d love to host you. [23:10]&lt;/p&gt;
&lt;h2 id=&quot;react-summit-us-new-york-usa-nov-18-21&quot;&gt;&lt;a href=&quot;https://reactsummit.us/&quot;&gt;React Summit US&lt;/a&gt; New York, USA Nov 18-21&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; There&#39;s also React Summit in New York November 18th through 21st. [23:14]&lt;/p&gt;
&lt;h2 id=&quot;react-africa-casablanca-morocco-nov-29&quot;&gt;&lt;a href=&quot;https://react-africa.com/&quot;&gt;React Africa&lt;/a&gt; Casablanca, Morocco Nov 29&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; React Africa in Casablanca, Morocco at the end of the month in November 29th. [23:19]&lt;/p&gt;
&lt;h2 id=&quot;react-day-berlin-berlin-de-dec-13--16&quot;&gt;&lt;a href=&quot;https://reactday.berlin/&quot;&gt;React Day Berlin&lt;/a&gt; Berlin, DE Dec 13 &amp;amp; 16&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And React Day Berlin December 13th and 16th. [23:23]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I will be speaking at React Summit. [23:25]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool. Yeah, go to React Summit in New York and go meet Mark. I live in New York. [23:31]&lt;/p&gt;
&lt;p&gt;I will try and make it if I can. [23:34]&lt;/p&gt;
&lt;h2 id=&quot;sponsored-by-infinite-red&quot;&gt;&lt;a href=&quot;https://infinite.red/&quot;&gt;Sponsored by Infinite Red&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; So we are exclusively brought to you by Infinite Red. That&#39;s very tongue in cheek, but yes, they are our only sponsor right now. Infinite Red is an expert React Native consultancy. They&#39;ve been around since 2015 uh, and are owned by Jim and Holmgren. [23:47]&lt;/p&gt;
&lt;p&gt;Todd Wirth and Gant Laborde. They&#39;ve been super active in the community for literally my entire career. I got my start like professionally with React around 2014 or so. So like, I have been aware of them for a really long time. And yeah, I connected with them in a conference and just great vibes. So good. [24:04]&lt;/p&gt;
&lt;p&gt;They only do React Native and have built over 75 apps for companies from startups to like huge enterprises. And just like, other than being good people who do a lot of good things for the React and React Native ecosystemsthey seem to be very good to their people because they, like their average tenure of employees at their company is more than seven years. [24:23]&lt;/p&gt;
&lt;p&gt;Which is wild to me. That&#39;s double the tenure I&#39;ve ever spent at one company. So that seems great. They are not a like feature factory. They work alongside your developers at your company and help you develop your own expertise there. So if you are spinning up a new product with React Native and want some help hitting the ground running, definitely give them a ring. [24:41]&lt;/p&gt;
&lt;p&gt;And uh, you do let them know that you heard about them from us. Not that we get anything out of it. Just, you know, Maybe help us in the next contract negotiations. He he he. [24:48]&lt;/p&gt;
&lt;h2 id=&quot;main-content&quot;&gt;Main Content&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Into our main content though. [24:50]&lt;/p&gt;
&lt;h2 id=&quot;some-react-19-progress-but-no-eta&quot;&gt;Some React 19 progress, but no ETA&lt;/h2&gt;
&lt;h2 id=&quot;lazy-context-propagation&quot;&gt;&lt;a href=&quot;https://x.com/sebastienlorber/status/1841042683122286641&quot;&gt;Lazy Context Propagation&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; So we&#39;ve been attempting to track the progress of React 19 and there were a couple of progress that I saw happening in the last month or so. The. Big thing is that we&#39;re still waiting for them to finish work on the changes related to the parallel suspense rendering behavior that caused an outcry earlier this year. [25:13]&lt;/p&gt;
&lt;p&gt;And I saw a couple PRs from Andrew get merged. I later saw one of them get reverted. And then, just in the last week or so, I think I saw one of them get unreverted or a feature flag get landed around that. So, there is work going on, I have no evidence to say how much more work is needed to be done. I also think I saw someone from the React team, possibly Sophie, mention that they&#39;re hoping to get it out by the end of the year, but, you know, nothing concrete either way. [25:46]&lt;/p&gt;
&lt;p&gt;So, stuff&#39;s happening, stand by, and wait. It&#39;s all we can do. [25:51]&lt;/p&gt;
&lt;h2 id=&quot;server-actions-renamed-to-server-functions&quot;&gt;&lt;a href=&quot;https://19.react.dev/reference/rsc/server-functions&quot;&gt;“Server Actions” renamed to “Server Functions”&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Hurry up and wait. Yeah. And I guess one concrete change that has happened is server actions have been renamed to server functions, which I don&#39;t know, I guess that seems good. There&#39;s a lot of things in the ecosystem that were called actions. So one less thing called action seems good. [26:07]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Probably. [26:08]&lt;/p&gt;
&lt;h2 id=&quot;react-native-bottom-tabs-library-using-native-bottom-tabs&quot;&gt;&lt;a href=&quot;https://github.com/okwasniewski/react-native-bottom-tabs&quot;&gt;React Native Bottom Tabs library using native bottom tabs&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Cool. So, the next update is that there&#39;s this library called react native bottom tabs that&#39;s made by one of the developers at Callstack, Oskar Kwaszynewski. Who I&#39;ve known for a little while. And This is quite an interesting development. Because The current library that you use for navigation within React Native Is called React Navigation. [26:28]&lt;/p&gt;
&lt;p&gt;And React Navigation has bottom tabs within it. But they&#39;re not fully native backed bottom tabs. And so it means when there&#39;s updates Or specific Styling applied to certain platforms Let&#39;s say onLet&#39;s say on iOS Where if you&#39;re on like tvOS, the tabs go on the top. And if you&#39;re on tablet, you can have them as like a sidebar. [26:47]&lt;/p&gt;
&lt;p&gt;But on mobile, they kind of just look like a normal tab bar. Those changes wouldn&#39;t be reflected because they were just basically JavaScript views that were customized. And so the whole purpose of React Native bottom tabs is to create native based navigationOn React Native apps using a JavaScript API. [27:05]&lt;/p&gt;
&lt;p&gt;So this will hook into the native layer and it&#39;ll look and be styled as a native layer bottom tab, which is quite cool. And a lot of work&#39;s being placed into it. One of the things that I&#39;ve been thinking about with this is could this possibly be introduced and upstreamed into React Navigation because It&#39;s a really good alternative. [27:27]&lt;/p&gt;
&lt;p&gt;So in React Navigation, we&#39;ve got native stack navigators, which is the stack navigator that you can use. And it uses the native functionality for the stacks. This could also be introduced as some sort of native tab navigator. So still to be seen, but quite interesting as an update. [27:45]&lt;/p&gt;
&lt;h2 id=&quot;meta-connect-showcasing-new-arvr-apps-built-with-rn&quot;&gt;&lt;a href=&quot;https://engineering.fb.com/2024/10/02/android/react-at-meta-connect-2024/&quot;&gt;Meta Connect showcasing new AR/VR apps built with RN&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Cool. Next up, we have MetaConnect happening, and there was a whole bunch of AR VR showcases, which was cool. Obviously, Mark Zuckerberg went on stage and showed off the Orion headsets, which are not really going on sale, but they&#39;re kind of showing the future of where Meta wants to go, which I&#39;m personally quite excited about, I really like AR, I hate massive VR goggles, but I really like the form factor of the uh, Google Glass. [28:09]&lt;/p&gt;
&lt;p&gt;And I was quite gutted that Google Glass was, was basically chopped. I think it was just a bit too early for its time. But, on the side of that demo there some sort of, like, engineering blogs that were released. And they showcased at the event the Instagram and Facebook apps for the new MetaQuest. [28:25]&lt;/p&gt;
&lt;p&gt;interestingly despite Instagram being a native application and despite you know, parts of the Facebook app also being backed by native the Instagram and Facebook apps for the MetaQuest have been rebuilt with React Native, which is quite a big step forward. win for the React Native ecosystem because it&#39;s being used on more and more platforms and powering more of Meta&#39;s apps that is part of the core business. [28:50]&lt;/p&gt;
&lt;p&gt;So this was quite cool to hear and they&#39;ve built some incredible apps. Like if you, if you look at the demos, there&#39;s really swift animations there. Everything looks really buttery smooth and looks really nice. So, it&#39;s a really cool showcase of, what they&#39;ve been able to achieve by rebuilding some of this stuff in React Native. [29:06]&lt;/p&gt;
&lt;p&gt;Cool. [29:07]&lt;/p&gt;
&lt;h2 id=&quot;static-hermes-updates&quot;&gt;&lt;a href=&quot;https://github.com/EvanBacon/expo-static-hermes-demo&quot;&gt;Static Hermes Updates&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Just a quick update on Static Hermes. Not much is happening here. There&#39;s a lot of discussions around like how compatible it would be and you know, what challenges it would introduce with the existing ecosystem. Svetlan Mikhov, who&#39;s one of the people behind Static Hermes and who first introduced it last year at React Native EU actually talked about some of the limitations that they were facing trying to take Static Hermes to production with the wider ecosystem. [29:30]&lt;/p&gt;
&lt;p&gt;A few people have been playing around giving him some feedback. He&#39;s been going on long threads on Twitter explaining some of the details of the implementation, especially with assembly code. So he&#39;s been like pasting assembly code in Twitter threads which is quite interesting and he&#39;s been styling them like, he&#39;s been going through a lot of effort to try to really like explain to the community, which is props to him. [29:48]&lt;/p&gt;
&lt;p&gt;But Evan Bacon, as Evan Bacon does came up with a demo of using Static Hermes with Expo dev clients on iOS. So Software Mansion&#39;s been working on some stuff around trying to take Static Hermes to production, and Evan Bacon&#39;s been trying to see if he can find a way to make it work with a basic Expo app. [30:07]&lt;/p&gt;
&lt;p&gt;There&#39;s still some limitations it&#39;s not anywhere near production ready, but it&#39;s just, things are being done in that space, which is quite cool to see. [30:14]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Super cool. Nice. [30:16]&lt;/p&gt;
&lt;h2 id=&quot;anyone-else-feel-burnt-by-epic-react--rreactjs&quot;&gt;&lt;a href=&quot;https://old.reddit.com/r/reactjs/comments/1fwks6r/anyone_else_feel_burnt_by_epic_react/&quot;&gt;Anyone else feel burnt by Epic React? : r/reactjs&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; This is maybe a little bit of a small note, but I think we&#39;ve plugged it before. So I wanted include some follow up from the ecosystem. Folks on Reddit have been sharing about feeling burnt by Epic React, which is Kent C. Dodd&#39;s React course. I empathize. I get it. Their criticisms are pretty legit. [30:34]&lt;/p&gt;
&lt;p&gt;Some of them are legit. Some of them feel like, you know, reddit commenters having strong opinions about how the world works, which are not necessarily based in economic realities. [30:42]&lt;/p&gt;
&lt;h2 id=&quot;epic-react-v1--v2-upgrade--deception&quot;&gt;&lt;a href=&quot;https://old.reddit.com/r/reactjs/comments/1fut75h/epic_react_v1_v2_upgrade_deception/&quot;&gt;Epic React V1 =&amp;gt; V2 Upgrade &amp;amp; Deception.&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Butsome of the complaints that seemed a little more legit to me were, like, people who had bought the, version one, the old version a couple of years ago, were upset about having to pay almost full price to get the upgrade. [30:54]&lt;/p&gt;
&lt;h2 id=&quot;marker&quot;&gt;Marker&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And on the one hand, like, if you bought a course and you learned the course, why do you need to buy it again? I can understand wanting it. And I guess I can understand, like, wanting to, I don&#39;t know, it feels a little bit like folks, Feels a little entitled. Feels a little bit like wanting stuff for free. [31:13]&lt;/p&gt;
&lt;p&gt;Like I don&#39;t know, he put in a lot of effort to update it. I think the previous version came out like four years ago and that&#39;s a long time. A lot of things have changed and been updated and the ecosystem has moved on a lot. So I don&#39;t know that it is a reasonable expectation to get a brand new course for free or for extremely cheap just because you paid for it a couple of years ago. [31:37]&lt;/p&gt;
&lt;p&gt;If you paid for a course that is intended to like help you kickstart a career using the technology, I don&#39;t know that you should necessarily need to buy another course targeting people who are trying to kickstart careers in the industry several years later. If you do, like, maybe you didn&#39;t take full advantage of the first course. [31:55]&lt;/p&gt;
&lt;p&gt;I don&#39;t know. So I empathize with that. People were also criticizing the cost of it as being very expensive. It is like, you know, it&#39;s several hundred dollars. Like, I think full price for it is like 700. [32:05]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; my train of thought on that one is that Kent is entitled, it&#39;s a free market, Kent is entitled to put whatever price on, you know, something he&#39;s selling, and you are free to ignore it if you don&#39;t feel like it&#39;s going to be useful or provide enough value. there were maybe some comments about, like, folks not liking his teaching style. [32:24]&lt;/p&gt;
&lt;p&gt;That&#39;s more of a valid concern, but if you don&#39;t want to pay that much money for his course, if you feel like a 20 Udemy course is better, then go pay 20 for that course and move on. [32:36]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Yeah, I&#39;m inclined to agree as well with Mark there. It&#39;s just, you do your research before you purchase something. I think he&#39;s abundantly popular where you can watch some videos online of Kent. See if you like his teaching style, if you don&#39;t like his teaching style, and then make an informed choice as to whether or not you want to spend several hundred dollars for it. [32:53]&lt;/p&gt;
&lt;p&gt;I think trying to argue after the fact to say, hey, this wasn&#39;t great, it wasn&#39;t worth the price, well, cool, but, you know, leave a review for it, I guess, and move on. It&#39;s, a free market with this type of thing. Yeah. [33:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; what? Like, I dropped out of college after a year. Each of those college credits was like 1, 500, 15 years ago. So I feel like I would have gotten much more value out of a course like this than I did out of any individual college course that I took. I don&#39;t know, I left that comment on Reddit and they did not find it compelling or I got a negative score. But that&#39;s my opinion on it. Like, education, in general, costs so much money. And the value to Cost for something like this to me seems pretty clearly at least worth trying I don&#39;t know if you&#39;re going for it Yeah, and in the comments to joshwcomo has a course out as well. [33:47]&lt;/p&gt;
&lt;p&gt;Also seems really great Also a pretty similar price point, like curated education material from an industry leading expert. You don&#39;t get that for free. It&#39;s a lot of effort. It&#39;s hard to be an industry leading expert. It&#39;s hard to design a course syllabus. It&#39;s hard to produce that content. [34:03]&lt;/p&gt;
&lt;p&gt;It&#39;s hard to distribute it. It&#39;s hard to, yeah. So I don&#39;t know. It&#39;s,they&#39;re doing it all on their own. These are independent educators in general. Like they are doing their own thing on their own time. Yeah. [34:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And, I mean, just, just as a related point, so I did all that work in the first half of this year to update the Redux Essentials tutorial in the Redux docs, which I did all that work for free, and I&#39;m not charging any money for it. And, for the first time I actually tried tracking my hours. And I put in 80 hours of actual focused time, which on the one hand feels like it&#39;s not much, you know, like my first instinct is, well, that&#39;s only two weeks of work. [34:44]&lt;/p&gt;
&lt;p&gt;On the other hand, let&#39;s face it, across a typical two week period, I don&#39;t actually put in 80 hours of focused effort in my day job. you&#39;re in your seat for eight hours, maybe, but you&#39;re getting maybe four or five hours of productivity tops. And like, that was, quote, just building off of an existing tutorial where I&#39;d written the content and written the example app. [35:05]&lt;/p&gt;
&lt;p&gt;I wasn&#39;t coming up with that stuff from scratch. I was converting it to TypeScript, figuring out how to add a couple new features to teach a couple new ideas and then, you know, doing the work to get the right commit sequence, and then turning that into code. Updated content. So, I mean, it was effort, but like, I wasn&#39;t doing all this stuff from scratch and that still took me like multiple weeks worth of focused time that I did for free. [35:33]&lt;/p&gt;
&lt;p&gt;And so, I got a sense of the amount of work Kent was putting into version two of his course and like he was significantly revamping things. [35:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; there&#39;s a comment in the Reddit thread, which I actually agree with quite a lot and I think it&#39;s the right approach with this, which is The person says, well, it is expensive and you can go through YouTube and find each of those topics and find like a tutorial video on them for free on YouTube. [36:00]&lt;/p&gt;
&lt;p&gt;But if you have the money, what you&#39;re basically paying for is someone to curate that content for you. Summarize it, create a syllabus for you, and give it to you on a silver platter, right? instead of searching for that material, you&#39;re paying for that person&#39;s time to curate that material for you. [36:15]&lt;/p&gt;
&lt;p&gt;The information is there for free, but you are paying for Kent&#39;s time and organization to come in and create something valuable for you so that you don&#39;t have to spend the time searching. So if you got the money for it, great, go for it. There&#39;s someone else in the chat as well that mentioned, which I think is a good point to put it into perspectivea lot of companies will let you expense stuff like this on like a training budget or, an upscaling budget that they have. [36:36]&lt;/p&gt;
&lt;p&gt;So when someone like probably prices something at several hundred dollars, I don&#39;t think he&#39;s expecting indies to come in and all shell out several hundred dollars. I suspect the goal is to find like a midpoint price point where it&#39;s. Expensive for indies, but quite cheap for corporates to pay for a large number of licenses. [36:58]&lt;/p&gt;
&lt;p&gt;And he does have a option to select multiple licenses and buy for your team. So I think that&#39;s probably where the pricing is coming into place. [37:05]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yeah, sort of the training equivalent of targeting the enterprise market. [37:09]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Exactly. [37:09]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; moving along touching on some drama. [37:12]&lt;/p&gt;
&lt;h2 id=&quot;web-components-are-not-the-future&quot;&gt;&lt;a href=&quot;https://dev.to/ryansolid/web-components-are-not-the-future-48bh&quot;&gt;Web Components Are Not the Future&lt;/a&gt;&lt;/h2&gt;
&lt;h2 id=&quot;followup-to-this-from-march-2020-maybe-web-components-are-not-the-future&quot;&gt;Followup to this from March 2020: &lt;a href=&quot;https://dev.to/ryansolid/maybe-web-components-are-not-the-future-hfh&quot;&gt;Maybe Web Components are not the Future?&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; I think we might have mentioned some previous bits of the web components versus React thing that&#39;s been going on the last couple months. This started with a post from Ryan Carniato, the author of the Solid Framework. Where he said that Web Components aren&#39;t the future. [37:27]&lt;/p&gt;
&lt;p&gt;And that spawned a whole lot of discussion after that. A lot of folks from the Web Components community were upset. [37:34]&lt;/p&gt;
&lt;h2 id=&quot;web-components-are-not-the-future--theyre-the-present&quot;&gt;&lt;a href=&quot;https://www.abeautifulsite.net/posts/web-components-are-not-the-future-they-re-the-present/&quot;&gt;Web Components Are Not the Future — They’re the Present&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Someone wrote a post called, Web Components are not the future, they&#39;re the present. Which made a bunch of arguments, both technical and sociological, about how Web Components should be fitting in. [37:46]&lt;/p&gt;
&lt;p&gt;Lots of debate in Twitter threads, Mastodon threads. I&#39;m not on Blue Sky, but I bet there was probably some debate over there, too. [37:53]&lt;/p&gt;
&lt;h2 id=&quot;liskovs-gun-the-parallel-evolution-of-react-and-web-components&quot;&gt;&lt;a href=&quot;https://www.baldurbjarnason.com/2024/liskovs-gun/&quot;&gt;Liskov&#39;s Gun: The parallel evolution of React and Web Components&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; there was one other article that really stuck out to me called the Parallel Evolution of React and Web Components. It&#39;s stupidly long, even by my standards. [38:01]&lt;/p&gt;
&lt;p&gt;It&#39;s 11, 000 words. It&#39;s a very long read, and I had mixed thoughts on it. I thought the first third of this was a really good technical discussion about, Some of the web component&#39;s early specs came out even before React did. Both of them have evolved over time. The middle third devolves into the author kind of bashing on React for a while, and then it kind of finishes up with some more decent thoughts about technical aspects and how they fit into web application architectures. [38:31]&lt;/p&gt;
&lt;p&gt;I&#39;m not gonna suggest that everyone should read it, but there was some interesting background material, and at least the author put in actual time Writing this post as opposed to just, you know, random bashing of things purely on Twitter if you want to see some of the web components discussion that stuff&#39;s out there [38:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; my understanding is that one of the biggest problems of web components, I&#39;ve never used them, I understand them to be in, you know, Intended to be used as like leaf nodes, kind of like your, your design system. Like if you are going to build a design system in React, I think that web components advocates would say, no, no, no, don&#39;t build those components with React, build them with web components. [39:10]&lt;/p&gt;
&lt;p&gt;And then you can use them in many, many places and many frameworks and yada, yada. My understanding is that web components have many of the same problems as trying to build your own design systems, where the hardest part is things like versioning. And if you don&#39;t get it exactly right the first time, it&#39;s kind of difficult to ship new changes to them. [39:29]&lt;/p&gt;
&lt;p&gt;So it sounds like web components are still hit a lot of the same problems. They just kind of shift the context. And so you have to figure out like, when you&#39;re doing a design system in React, The problem is around versioning and like packaging. Like, do you do many sub libraries? Like, do you make your own like React modal component and your own tool tips and your own buttons and your own accordion tabs, whatever, or do you do one big bulk package? [39:54]&lt;/p&gt;
&lt;p&gt;But then it&#39;s like, you end up with these like, well, okay. If you ship a change to this. Low level component used within this design system, like, how do you migrate all of the clients that are using that design system without doing like a big bang rewrite across dozens of clients? [40:11]&lt;/p&gt;
&lt;p&gt;And like, that&#39;s hard. It&#39;s not trivial and it sounds like web components have that same problem But instead of versioning happening through semver in npm, it happens in this entirely bespoke Web component standard system and like that doesn&#39;t seem better to me. It&#39;s like you have to learn a whole new, Context, as well as dealing with the same problem. [40:32]&lt;/p&gt;
&lt;p&gt;So, like, I haven&#39;t seen that discussed at all in any of these, you know, discussions. These, you know, when people are talking about the technical merits of Web Components, I&#39;m not seeing, like, and here&#39;s why it works better for this reason. I also just really, like, the Web Components are not the future, they&#39;re the present article. man, I did not like it. I thought it was good. So, this is not a compelling argument. Like, you know, a quote from it that I pulled was like, they&#39;re not solid components, they&#39;re not React components, they&#39;re not Svelte components, they&#39;re not Vue components, they&#39;re standards based web components that work in all of the above. [41:04]&lt;/p&gt;
&lt;p&gt;And that seems like a big assertion to make when the maintainers of solid, React, Svelte, and Vue are all saying, they don&#39;t work for us. So, I feel like you can&#39;t just say, they work in all of those, when the maintainers of those frameworks are saying, they don&#39;t work. And it doesn&#39;t really argue why they work, it just kind of asserts that they do. [41:21]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; it&#39;s a little bit like a lot of the React arguments that were happening earlier this year, where there&#39;s like 30 different partially overlapping topics. And people are arguing about a different subset of them. [41:33]&lt;/p&gt;
&lt;p&gt;So, in this case, the concerns are technological, some of them are ideological. Folks who prefer web components or advocate for web components tend to be the kind of people who like frameworks. They feel that frameworks are too heavy, they feel that frameworks have bad results on the industry, they prefer to, you know, kind of stay closer to the browser, you know, they use the platform mentality, and so they see large frameworks as sort of the enemy, and so anyone who is using a framework is kind of a bad person. a lot of the vocalness here is coming from these people who&#39;s like, it&#39;s a standard,therefore it&#39;s better.These frameworks aren&#39;t standards. I don&#39;t see a lot of people in the React ecosystem, like, actively advocating against web components. more of a, whatever, we don&#39;t care.So, worth noting that, you know, Ryan&#39;s article, came from his perspective more as a framework author, and similarly, Rich Harris, the author of Svelte had a number of complaint threads on Twitter recently, where he was talking about there&#39;s a bunch of really, really weird behaviors in browsers that only exist because the web component specs demand those, and that has caused problems for him as a framework author. [42:58]&lt;/p&gt;
&lt;p&gt;Things like, Cloning domnodes requiring you to pass in an additional flag, but that makes the cloning process 30 percent slower, [43:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Right. And in contrast to that, the present article says, towards the back half of it, it says, I&#39;m not a conspiracy theorist, but I find interesting the number of people who are and have been sponsored and or hired by for profit companies whose platform rely heavily on said frameworks. [43:25]&lt;/p&gt;
&lt;p&gt;So it&#39;s like, I feel like the web components aren&#39;t working for us. Framework authors are making arguments like that. I&#39;m taking a 30 percent performance hit because of the spec requirements to support these. Like that&#39;s a very precise technical argument. Not, I&#39;m not a conspiracy theorist, but [43:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; [43:42]&lt;/p&gt;
&lt;p&gt;that sounds like, here&#39;s my friend&#39;s opinion about these guys. They&#39;re awful people. Not my opinion. I&#39;m just quoting what my friends, I&#39;m not a conspiracy theorist. That sounds pretty conspiracy theorist to me. [43:52]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. It&#39;s big, just asking questions energy. we should move on though. I think Mo, you said you have to duck out. [43:57]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I do have to leave, so I guess I can just say goodbye hereand hopefully see you all next month. So it&#39;s been a pleasure in all things react and react native and I&#39;ll see you all in the next one. [44:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; we&#39;ve got a bunch more stuff to get through, [44:10]&lt;/p&gt;
&lt;h2 id=&quot;announcing-voidzero-next-generation-toolchain-for-javascript&quot;&gt;&lt;a href=&quot;https://voidzero.dev/posts/announcing-voidzero-inc&quot;&gt;Announcing VoidZero Next Generation Toolchain for JavaScript&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Evan Yu, the author of View and Veet and a number of other things, Has announced a venture backed company called VoidZero, which is quote working on the next generation of JavaScript tooling This might sound a little bit familiar. [44:24]&lt;/p&gt;
&lt;p&gt;That was sort of the pitch behind the Roam tool set So in this case some of the things that VoidZero is working on correlate a lot with Things that were already in progress with the VEET framework. [44:37]&lt;/p&gt;
&lt;h2 id=&quot;oxc-transformer-alpha&quot;&gt;&lt;a href=&quot;https://oxc.rs/blog/2024-09-29-transformer-alpha.html&quot;&gt;Oxc Transformer Alpha&lt;/a&gt;&lt;/h2&gt;
&lt;h2 id=&quot;oxc-compiler&quot;&gt;&lt;a href=&quot;https://twitter.com/boshen_c/status/1840322879424258115&quot;&gt;OXC compiler&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; There&#39;s a Rust based JavaScript compiler called OXC, which also includes a linter and reusable parsers and things like that. [44:46]&lt;/p&gt;
&lt;p&gt;So I believe that&#39;s now gonna be sponsored under Void0. There&#39;s a project called Rolldown, which is going to be a Rust based re implementation of the Rollup build toolset. So eventually the goal is to really make Vite a whole lot faster, ultimately. Vite currently uses a mixture of, I believe, ESBuild for local dev builds and Rollup for production builds. [45:12]&lt;/p&gt;
&lt;p&gt;And so they&#39;re also trying to make the behavior more standard, or more similar across dev and production as well. [45:18]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, definitely seems interesting. Always down for stuff to core dev tools to be made faster. All right, cool. [45:23]&lt;/p&gt;
&lt;h2 id=&quot;updates-from-the-104th-tc39-meeting&quot;&gt;&lt;a href=&quot;https://dev.to/hemanth/updates-from-the-104th-tc39-meeting-14cp&quot;&gt;Updates from the 104th TC39 meeting&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I&#39;ll move us on some new TC39 news. They just had a meeting and blog post I saw said four new proposals advanced to stage four and the list had five items in it. [45:33]&lt;/p&gt;
&lt;h2 id=&quot;promisetry&quot;&gt;&lt;a href=&quot;https://github.com/tc39/proposal-promise-try&quot;&gt;Promise.try&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; so there&#39;s promise. try, which is now stage four. It seems neat. It looks like it&#39;s basically a likeconvenience so that if you don&#39;t know whether a function is going to return a promise or not, you can give it to promise. try and then you can handle any errors that it emits as though it were a promise. [45:53]&lt;/p&gt;
&lt;p&gt;And the advantage of that is that, you know, if you did something like promise. resolve. then and then execute that function, which would be a great way to achieve this behavior without a change to the language that would process it on the next tick. [46:06]&lt;/p&gt;
&lt;p&gt;So it doesn&#39;t execute synchronously as, you know, line by line. It gets thrown to the event loop and then event loop comes back and executes it. So, you know, that&#39;s. Not always what you want. If you are trying not to do that, now you have a new tool to do so, which is promise. try. [46:21]&lt;/p&gt;
&lt;h2 id=&quot;sync-iterator-helpers&quot;&gt;&lt;a href=&quot;https://github.com/tc39/proposal-iterator-helpers&quot;&gt;Sync Iterator Helpers&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I also liked the sync iterator helpers. [46:23]&lt;/p&gt;
&lt;p&gt;I think we mentioned this in a previous episode. Maybe not the last one, maybe the one before. But it&#39;s. Basically letting you do stuff like map, filter, reduce on iterable objects without Spreading it into an array first Which I think creates a copy. So like this seems great. You can now map over without the cost of Producing an array from it first. [46:47]&lt;/p&gt;
&lt;p&gt;I love it. Here for it. [46:48]&lt;/p&gt;
&lt;h2 id=&quot;import-attributes&quot;&gt;&lt;a href=&quot;https://github.com/tc39/proposal-import-attributes&quot;&gt;Import Attributes&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Some other ones that I didn&#39;t talk about Think about as hard there&#39;s import attributes which I think is like metadata for describing what you&#39;re importing, something like that. [46:58]&lt;/p&gt;
&lt;h2 id=&quot;json-modules&quot;&gt;&lt;a href=&quot;https://github.com/tc39/proposal-json-modules&quot;&gt;JSON modules&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; JSON modules. So you can import JSON files as modules without, you just kind of natively. It seems good. [47:05]&lt;/p&gt;
&lt;h2 id=&quot;regexp-modifiers&quot;&gt;&lt;a href=&quot;https://github.com/tc39/proposal-regexp-modifiers&quot;&gt;RegExp Modifiers&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; as well as regex modifiers. couple of new changes, five new things to the language. Seems good. [47:11]&lt;/p&gt;
&lt;h2 id=&quot;language-evolution-jssugar-proposal&quot;&gt;&lt;a href=&quot;https://docs.google.com/presentation/d/1ylROTu3N6MyHzNzWJXQAc7Bo1O0FHO3lNKfQMfPOA4o/edit#slide=id.g30432c5cd9c_0_30&quot;&gt;Language Evolution&lt;/a&gt; “JSSugar” proposal&lt;/h2&gt;
&lt;h2 id=&quot;nullvoxpopuli-on-x&quot;&gt;&lt;a href=&quot;https://x.com/nullvoxpopuli/status/1842389133810913338&quot;&gt;NullVoxPopuli on X&lt;/a&gt;&lt;/h2&gt;
&lt;h2 id=&quot;nullvoxpopuli-on-x-1&quot;&gt;&lt;a href=&quot;https://x.com/nullvoxpopuli/status/1842389157693227375&quot;&gt;NullVoxPopuli on X&lt;/a&gt;&lt;/h2&gt;
&lt;h2 id=&quot;brendaneich-on-x&quot;&gt;&lt;a href=&quot;https://x.com/BrendanEich/status/1842630141304025263&quot;&gt;BrendanEich on X&lt;/a&gt;&lt;/h2&gt;
&lt;h2 id=&quot;daniel-ehrenberg-thoughts&quot;&gt;&lt;a href=&quot;https://gist.github.com/littledan/a590784a72f2e1b8cc633ff5ff8a9dc2&quot;&gt;Daniel Ehrenberg thoughts&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And one other thing that came up at that meeting there was a presentation I think co authored by a number of JavaScript engine implementers at Google and Mozilla and a couple other companies. That is very long and complicated, and it&#39;s worth reading through, but as a high level summary, we&#39;ve had the TC39 process for, like, 15 some years now, and, you know, we had the big bang change to the language with ES2015, and then a steady stream of new language features since then. [47:45]&lt;/p&gt;
&lt;p&gt;And the expectation is that once TC39 finishes standardizing a given feature, Every JavaScript engine out there. Is going to end up fully implementing this. Now in practice, if it&#39;s basically V8 and spider monkey from, you know, from Mozilla, that&#39;s the majority of people as far as browsers are concerned, but there are other JS engines out there as well, and implementing all these new language level features takes time and effort, some of these engine implementers were actually saying, you know what, we actually. [48:19]&lt;/p&gt;
&lt;p&gt;are thinking that maybe we shouldn&#39;t be required to implement every feature that is added to the JS language spec. Sometimes these things have performance implications, sometimes these things have actually caused security related concerns, It&#39;s not like a full blown proposal, but it&#39;s kind of like a what if we considered this kind of a thing. [48:42]&lt;/p&gt;
&lt;p&gt;what if we sort of split the JavaScript language spec into things that are actually going to be implemented by runtime engines, versus things that are in the spec, and we agree it&#39;s part of the language, But would only ever be implemented by transpilers, like Babel or ESBuild or something like that. [49:05]&lt;/p&gt;
&lt;p&gt;So that, the JS engines don&#39;t have to literally implement every finished feature ever. a number of folks felt this was probably a bad idea. I can understand some of the concerns that are being raised by the engine folks. But, splitting the language feels problematic. You know, certainly the folks who are, you know, kind of in on that, like, I don&#39;t want to have to use build tools to write my JavaScript are, are not happy about this. [49:34]&lt;/p&gt;
&lt;p&gt;But, even knowing that, you know, some of these things won&#39;t make it into the engines and might not be able to take advantage of, you know, built in optimizations feels kind of sketchy. [49:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, I can definitely understand that though, like so many things, I feel like, I mean there are so many lingering polyfills and transforms and whatever that Babel and all of them are like still implementing, even though they are now part of the language, just because how do you know when it&#39;s okay to remove stuff like that? [50:03]&lt;/p&gt;
&lt;p&gt;I can understand the motivation of saying like, look, this is the reality. We are still transforming this even though technically by the spec, we don&#39;t have to. I can definitely understand why they would see, just start saying like, this is a practical reality, pragmatically, this is what&#39;s happening. the standardization process should reflect that and acknowledge that some things will just live in the transformer. [50:25]&lt;/p&gt;
&lt;p&gt;I can definitely understand that argument. But yeah, I guess that&#39;s also weird. Like it introduces a new like point of abstraction in the standardization process and like, what is JavaScript? that&#39;s weird. [50:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Alright, so, now we&#39;re in and we haven&#39;t started the lightning round. So, let&#39;s try to actually make this a [50:43]&lt;/p&gt;
&lt;p&gt;lightning round, shall we? [50:44]&lt;/p&gt;
&lt;h2 id=&quot;-lightning-round-&quot;&gt;⚡ Lightning round ⚡&lt;/h2&gt;
&lt;h2 id=&quot;the-disappearance-of-an-internet-domain--io&quot;&gt;&lt;a href=&quot;https://every.to/p/the-disappearance-of-an-internet-domain&quot;&gt;The Disappearance of an Internet Domain&lt;/a&gt; – .io&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Moving along. So there was an article titled Disappearance of an Internet Domain. the TLDR here is that the io domain is associated with a set of islands in the Indian Ocean owned by Great Britain and Great Britain just signed a treaty to eventually hand those islands over to you. [51:05]&lt;/p&gt;
&lt;p&gt;I think the island of Mauritania. And so based on international law, there&#39;s a chance that once this 3D handover is complete, there is no longer a separate territory. And if there&#39;s no longer a separate territory, then there&#39;s no legal reason to have a io domain associated with that. And so the article says that, you know, if we, if we&#39;ve, Assume that these laws and practices get followed strictly, then hypothetically, five years from now, the io top level domain might go away completely. So that&#39;s up for grabs, but it&#39;s a legitimate concern. [51:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; The intersection of geopolitics and tech debt seems bad. [51:51]&lt;/p&gt;
&lt;p&gt;flying through a little bit. [51:51]&lt;/p&gt;
&lt;h2 id=&quot;how-to-control-a-react-component-with-the-url&quot;&gt;&lt;a href=&quot;https://buildui.com/posts/how-to-control-a-react-component-with-the-url&quot;&gt;How to control a React component with the URL&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; So I saw a great blog post by Sam Zelikoff called How to Control a React Component with the URL. blog post makes the argument that it&#39;s a very common feature request. [52:00]&lt;/p&gt;
&lt;p&gt;I think that it is not as common a feature request as it should be because it is the power of the web. URL addressability, deep linking, being able to open a URL and have it, represent the same page that somebody else is seeing. So I think that is a phenomenal goal to seek, and so more things should behave that way. [52:17]&lt;/p&gt;
&lt;p&gt;just a pull quote from it that I think summarizes What makes that hard is the fundamental reason why we&#39;re heading down a bad road, he says that we now have two sources of truth for the search text. And that&#39;s exactly it, like, when you are writing React, you tend to have your source of truth be something in React state. [52:35]&lt;/p&gt;
&lt;p&gt;But if it&#39;s in the URL state that it exists outside of React&#39;s Awareness, you know the universe that you&#39;ve created for your app that is within react the URL state lives outside of that So it&#39;s very easy to accidentally duplicate state then you have a state synchronization problem and I also want to call out that problems like that are a Wonderful example of why dogmatic best practices can really easily lead you to broken apps [52:59]&lt;/p&gt;
&lt;p&gt;Then if you use a form library, it&#39;s going to keep track of its own state. Then you have to do state synchronization between the URL and the form. That&#39;s a really easy way to get a lot of bugs. So if you follow the rule of always use a form library, you&#39;re going to run into state synchronization bugs if you try to implement this feature. [53:16]&lt;/p&gt;
&lt;h2 id=&quot;if-wordpress-is-to-survive-matt-mullenweg-must-be-removed&quot;&gt;&lt;a href=&quot;https://joshcollinsworth.com/blog/fire-matt&quot;&gt;If WordPress is to survive, Matt Mullenweg must be removed&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; one more drama related item, I&#39;m really gonna TLDR this. The WordPress community is basically blowing up right now. WordPress founder and project company CEO Matt Mullenweg went on a seemingly unprovoked rampage. [53:35]&lt;/p&gt;
&lt;p&gt;He is basically upset that one of the biggest WordPress hosting companies, quote, isn&#39;t giving back enough to the project. And there&#39;s all kinds of issues where Matt is both simultaneously the CEO of Automatic, one of the other bigger hosting companies. And the leader of the open source project and the nonprofit foundation. [53:58]&lt;/p&gt;
&lt;p&gt;And it turns out that in some cases, he&#39;s the sole person who controls some of the key websites. There&#39;s been issues with him, basically hijacking a plugin that was developed by this other company blocking people from the Slack and all kinds of other Like, he&#39;s basically blowing up their community single handedly, and seemingly for no reason. [54:22]&lt;/p&gt;
&lt;p&gt;And a lot of folks who had been very involved with WordPress are like, I can&#39;t be involved with this anymore. So, a lot of WordPress folks are actively looking to stop using WordPress and find something else. There&#39;s an extremely long, very well written post that lays out a lot of the details linked in the chat, called, If WordPress is to survive, Matt Mullenweg must be removed. [54:45]&lt;/p&gt;
&lt;p&gt;It&#39;s long, it&#39;s complicated, but it&#39;s also a very thorough look at everything that&#39;s happened. [54:50]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Oh man, there&#39;s so much to get into. There&#39;s so much that could be said about this, but yeah, it&#39;s,oh, this has been, this has built its own cottage industry of podcasts and interviews and blog posts. Yeah. It&#39;s also not really React. WordPress developer is like an entirely separate thing from web developer. [55:06]&lt;/p&gt;
&lt;p&gt;So yeah, it&#39;s kind of not related to our main topic. [55:09]&lt;/p&gt;
&lt;h2 id=&quot;web-without-walls--dan-abramov&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=F1sJW6nTP6E&quot;&gt;Web Without Walls — Dan Abramov&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; we&#39;ve had a couple of tangential references to Blue Sky. I love Blue Sky, I think it&#39;s really cool, I&#39;ve been on it for like over a year because Twitter sucks and meh, I have opinions. [55:20]&lt;/p&gt;
&lt;p&gt;But so Dan Abramov, who I&#39;m sure some of you may have heard of once or twice, gave a really great talk. he&#39;s currently working at BlueSky as an app developer which is, I&#39;m actually interested to speak with him a little bit more about that kind of transition because he went from core team, building React to now React consumer and I think that is just such a relatively rare Transition to make and I&#39;d be really curious to hear not just like what he thinks about that transition as someone who&#39;s made it But also what Dan Abramov thinks of that as a very clear thinker and clear speaker butwe gave a really great talk about the app protocol, which is the underlying technology that BlueSky is built on top of and it hits a lot of really cool things that I personally have been thinking about for a decade about the future of social media and data portability and federated access. [56:14]&lt;/p&gt;
&lt;p&gt;not just social graphs, but also to the actual data. I just think it&#39;s really cool. Like, I saw some people talking about, like, Oh, it doesn&#39;t matter if you have You know, you can always export the social graph because you have your contacts list. And like, that doesn&#39;t really matter. [56:28]&lt;/p&gt;
&lt;p&gt;It doesn&#39;t matter if you have the social graph, if you have the connections between the people. If the people are not producing content, you know, if they&#39;re not interacting with each other on that platform. And I would boil down this hour long talk that Dan gave that is really good. And I think you should watch if you&#39;re interested in social media and building apps on social platforms. [56:47]&lt;/p&gt;
&lt;p&gt;It really comes down to, like, it&#39;s not just an open source Twitter clone. It is an open network that people are publishing Twitter like data to, and no one can close your app off. You know, there is no way for something like the, Twitter X API Shut down, the Reddit API shut down. [57:10]&lt;/p&gt;
&lt;p&gt;You can&#39;t do that because it&#39;s built on a federated decentralized protocol. it&#39;s not just a proprietary API. So yeah, I think that&#39;s really cool. This is a really interesting thing. I think this is going to be a generational shift in how social media operates. So yeah. [57:23]&lt;/p&gt;
&lt;h2 id=&quot;preact-compat-discussion&quot;&gt;&lt;a href=&quot;https://old.reddit.com/r/reactjs/comments/1fy2jjh/i_ran_into_preacts_false_promise_what_can_i_do/&quot;&gt;Preact compat discussion&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; There was a Reddit discussion thread going and was looking into the compatibility of Preact with, you know, actual React and debating some of the pros, cons, and trade offs. And since Preact has been traditionally pitched as a React compatible library, worth looking at. [57:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. [57:44]&lt;/p&gt;
&lt;h2 id=&quot;content-visibility-in-css&quot;&gt;Content-visibility in CSS&lt;/h2&gt;
&lt;h2 id=&quot;using-css-containment&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_containment/Using_CSS_containment&quot;&gt;Using CSS containment&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; There&#39;s some interesting stuff with CSS containment. It seems pretty, like, wonkish, deep in the weeds stuff to properly understand, but it looks really interesting as, like, a performance optimization for rendering. [58:00]&lt;/p&gt;
&lt;h2 id=&quot;contain-caniuse&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/contain&quot;&gt;contain&lt;/a&gt; &lt;a href=&quot;https://caniuse.com/mdn-css_properties_contain&quot;&gt;CanIUse&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; The bulk of it, as I saw in researching it for, you know, an hour and a half, I haven&#39;t really used it yet, is there&#39;s a contain and a contain visibility, you know, a CSS attribute now, that let you signal more precisely to the browser renderer, how much effort to dedicate to rendering a particular part of the page. [58:19]&lt;/p&gt;
&lt;p&gt;So, you know, like, how I&#39;m making sense of this is in React, if you&#39;re trying to choose whether or not to render something, for a long time the decision has been kind of like, conditional rendering, like, is the DOM in the page at all, or, like, display none. [58:34]&lt;/p&gt;
&lt;p&gt;And you know, there&#39;s a lot of other, like, subtle variations around that, like, should it live in the accessibility tree as well, like, You know, there&#39;s a lot of subtle nuances to that. So this adds a lot more subtle nuances. Very exciting. But yeah, so it looks really interesting. It lets you constrain So that&#39;s kind of part of it, but it&#39;s also a little bit on like sandboxing. Like, I guess the contain element is maybe a little bit more on sandboxing. It&#39;s like, if you were to like render an ad into your page, you might be able to do it using this instead of an iframe. [59:07]&lt;/p&gt;
&lt;p&gt;So, and still maintain the same kind of strong guarantees about how it behaves on the page, how it looks on the page. [59:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; someone in the chat just said it&#39;s like, it&#39;s kind of like Shadowroot, and I think that&#39;s a little bit, like, along the right lines. Like, you&#39;re telling the browser that elements inside here aren&#39;t going to have layout interactions with the rest of the page. [59:28]&lt;/p&gt;
&lt;p&gt;So, like, whereas, a normal element, depending on your CSS, might, interact or overlap or something with other parts of the page, might cause the browser to do, a bunch of additional checks against other DOM nodes to see if they in some way. And so contain tells it, nope, anything under here is scope, you don&#39;t have to waste time and effort checking locations versus the rest of the page. [59:50]&lt;/p&gt;
&lt;h2 id=&quot;content-visibility-caniuse&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/content-visibility&quot;&gt;content-visibility&lt;/a&gt; &lt;a href=&quot;https://caniuse.com/mdn-css_properties_content-visibility&quot;&gt;CanIUse&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, and something else they shout out in the docs about it is, like, really long pages using it to optimize, you know, rendering performance. If you&#39;ve got a massive, massive amount of HTML, then just saying, like, nope, this is off screen, like, don&#39;t render it. If that makes sense they were saying that that would help you maintain performance on a huge page. [01:00:07]&lt;/p&gt;
&lt;p&gt;But it also talks about like reducing layout shift. So I wonder if that is actually going to be like practical and useful, or if it just would just be like too weird to have to, I&#39;ve, I&#39;ve had to do that kind of performance optimization and. Cracking the size of the content being rendered so that you don&#39;t have it, like, you scroll down, something goes out of view and then like gets, stops being rendered and then everything on the page shifts. [01:00:31]&lt;/p&gt;
&lt;p&gt;So you have to keep like scroll because what you were looking at just changed. I, I don&#39;t know. I don&#39;t know if that advertised benefit will actually be real. I don&#39;t trust it. [01:00:39]&lt;/p&gt;
&lt;h2 id=&quot;how-i-built-my-blog--josh-w-comeau&quot;&gt;&lt;a href=&quot;https://www.joshwcomeau.com/blog/how-i-built-my-blog-v2/&quot;&gt;How I Built My Blog • Josh W. Comeau&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; We mentioned Josh W Comeau earlier. He has put out a great blog post. How I built my blog. Looks pretty interesting. [01:00:45]&lt;/p&gt;
&lt;p&gt;I, I just always appreciate little technical write ups of things like this. [01:00:49]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; and like, it&#39;s more than just the blog. I mean, I think he goes into some details about the developer, the education platform and whatnot. But Josh always puts such care and effort into everything he builds. [01:01:03]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yes, a consummate crafts person. So yeah, it&#39;s a good write up. He&#39;s very thoughtful about how he builds and how he writes. So this is really great. I have also built a large documentation site for a previous employer. And as I was reading this, I just saw so many problems that I remember dealing with in that. [01:01:19]&lt;/p&gt;
&lt;p&gt;Like he talks about, you know, authoring content in MDX and the kind of weird errors you get when doing that. He talked about like doing syntax highlighting with Prism and how it can really explode complexity of, you know, just the amount of HTML on a site, which is a problem I had I built this whole thing, put all of this documentation on a single like API reference massively tall site and oops, it&#39;s 12 megabytes of just HTML. [01:01:45]&lt;/p&gt;
&lt;p&gt;So I ended up having to like totally re architect how the syntax highlighting was happening because just it totally exploded the amount of HTML on the page. so he talked about using, like updating to the latest version of MDX and using Sheeky which is like a server side, Syntax highlighting tool that seemed pretty interesting and definitely sounded like it would have solved some problems. [01:02:04]&lt;/p&gt;
&lt;p&gt;I had a couple years ago And he also referenced he&#39;s got a like interactive rainbow on the home page And You can edit how it behaves and that behavior gets synchronized across all viewers of the site simultaneously through PartyKit, which is near and dear to my heart. I helped set up their community a couple years ago. [01:02:23]&lt;/p&gt;
&lt;p&gt;cool. It&#39;s a good read, [01:02:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; All right. [01:02:24]&lt;/p&gt;
&lt;h2 id=&quot;types-of-react-components-2024&quot;&gt;&lt;a href=&quot;https://www.robinwieruch.de/react-component-types/&quot;&gt;Types of React Components [2024]&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; And the final item for today Robin Wierich is another prolific React educator and author of useful tutorial learning blog posts. Thanks. And he put up a post called Types of React Components in 2024. it&#39;s actually a bit of a history lesson. It goes back and looks at the old style create class and mixins, the still newer but by now out of date class components, the higher order components pattern, and then the relatively modern function components, server components, and async components. [01:02:58]&lt;/p&gt;
&lt;p&gt;So it&#39;s not something that&#39;s necessarily going to teach you to do things, but it&#39;s a useful look at and sort of like the evolution of React over the years. [01:03:06]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And apparently this is part of a whole series that he&#39;s doing updating his most popular blog posts for 2024. generally, I saw a couple of other ones and I wanted to add them, but I, oh god, we already had so many links. So, yeah. Definitely go check those out. he&#39;s a great writer. I have been reading his blog for 10 years and he just keeps putting out bangers. [01:03:29]&lt;/p&gt;
&lt;p&gt;So yeah, definitely check it out. [01:03:31]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; right. I think we&#39;re actually at the end. [01:03:33]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; We are at the end. We&#39;ve made it. Oh my God. You guys, you&#39;re still here with us. Thank you for sticking around for 80 minutes. Thank you so much for joining us. We&#39;ll be back on the last Wednesday of next month here at the live stage in Reactiflux or back in your podcast feed just as soon as we can. [01:03:48]&lt;/p&gt;
&lt;p&gt;Lennart, [01:03:49]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark:&lt;/strong&gt; Yeah. I got nothing this week other than I am diving into working on some RTK query features, specifically infinite queries, which is a complex thing that I didn&#39;t know about and I&#39;m thankful that we&#39;re basing it off of how React query works. So My side project for a while. [01:04:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; That was fun. Cool. We gather sources from ThisWeekInReact, Bytes. dev, React Status, Next. js Weekly, React. js, Subreddit and here in Reactiflux, mostly from the tech reads and news, If you see anything that you feel like we should talk about feel free to send it to us via email to hello at reactiflux dot com T M I R in the subject line. [01:04:28]&lt;/p&gt;
&lt;p&gt;Job market: &lt;a href=&quot;https://fred.stlouisfed.org/series/IHLIDXUSTPSOFTDEVE&quot;&gt;FRED data&lt;/a&gt;, &lt;a href=&quot;https://layoffs.fyi/&quot;&gt;Layoffs.fyi&lt;/a&gt; Help them know how smart you are. Alright, see you later.&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2024-10</link><guid isPermaLink="false">reactiflux-tmir-2024-10</guid><pubDate>Tue, 29 Oct 2024 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>This Month in React, September 2024: Async Components??, a React 19 cheatsheet, static Hermes, and trademarks drama</title><description>&lt;iframe src=&quot;https://podcasters.spotify.com/pod/show/reactiflux/embed/episodes/TMiR-2024-09--Async-Components----a-React-19-cheatsheet--static-Hermes--and-trademarks-drama-e2p2o6j&quot; height=&quot;102px&quot; width=&quot;400px&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;h3 id=&quot;new-releases&quot;&gt;New releases&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#node-v2280&quot;&gt;00:57&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://nodejs.org/en/blog/release/v22.8.0&quot;&gt;Node v22.8.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#deno-v2-rc&quot;&gt;01:06&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://deno.com/blog/v2.0-release-candidate&quot;&gt;Deno 2.0 Release Candidate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#relay-v18&quot;&gt;01:47&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/facebook/relay/releases/tag/v18.0.0&quot;&gt;Relay v18&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#redwood-v8&quot;&gt;02:28&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://redwoodjs.com/upgrade/v8&quot;&gt;Redwood v8.0.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#epic-react-v2&quot;&gt;04:09&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/kentcdodds/status/1838263679025844378&quot;&gt;EpicReact v2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#rspack-v1&quot;&gt;04:55&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://rspack.dev/blog/announcing-1-0&quot;&gt;RsPack 1.0&lt;/a&gt; and &lt;a href=&quot;https://rsbuild.dev/community/releases/v1-0&quot;&gt;Rsbuild 1.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#metro-08011&quot;&gt;06:20&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/MetroBundler/status/1831709057670861260&quot;&gt;Metro 0.80.11&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#effect-38&quot;&gt;07:52&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://effect.website/blog/effect-3.8&quot;&gt;Effect 3.8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#astro-415&quot;&gt;08:43&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://astro.build/blog/astro-4150/&quot;&gt;Astro 4.15&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#react-email-v3&quot;&gt;09:45&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://resend.com/blog/react-email-3&quot;&gt;React Email 3.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#react-native-076-rc2&quot;&gt;10:26&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/facebook/react-native/releases/tag/v0.76.0-rc.2&quot;&gt;React Native 0.76 RC2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;main-content&quot;&gt;Main Content&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#bulletproof-react-updated-to-include-nextjs&quot;&gt;15:08&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/alan2207/bulletproof-react&quot;&gt;Bulletproof React updated for NextJS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#new-react-native-debugger&quot;&gt;15:52&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=b48Lax2-jOQ&amp;amp;t=4350s&quot;&gt;New React Native Debugger&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#hermes-new-runtime-bytecode-translation&quot;&gt;18:05&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=pfeTPSai6vc&amp;amp;t=8702s&quot;&gt;Hermes new Runtime Bytecode Translation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;React 19
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#react-19-cheat-sheet&quot;&gt;22:14&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.epicreact.dev/react-19-cheatsheet&quot;&gt;React 19 Cheat Sheet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#whats-new-in-react-19&quot;&gt;24:10&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://vercel.com/blog/whats-new-in-react-19&quot;&gt;What’s new in React 19&lt;/a&gt; (moreso a discussion of the evolution of the rendering model)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://codehike.org/blog/build-time-components&quot;&gt;Build-time Components&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;a href=&quot;https://x.com/kentcdodds/status/1831331752343716003&quot;&gt;You can use async functions for components in React 19??&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/sebsilbermann/status/1831405742257271202?t=RkXE1h91Ckher4kWUrzWuQ&amp;amp;s=19&quot;&gt;Core team forgot to put it in release notes??&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#a-milestone-for-typescript-performance-in-tanstack-router&quot;&gt;26:22&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://tanstack.com/blog/tanstack-router-typescript-performance&quot;&gt;A milestone for TypeScript Performance in TanStack Router&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#weve-decided-to-make-a-few-changes-to-ease-the-adoption-of-next-15&quot;&gt;27:46&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/feedthejim/status/1829569083777437745&quot;&gt;&quot;we’ve decided to make a few changes to ease the adoption of Next 15&quot;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#trademark-disputes&quot;&gt;30:07&lt;/a&gt;]&lt;/code&gt; Trademarks drama
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;From Deno: &lt;a href=&quot;https://javascript.tm/&quot;&gt;JavaScript™&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#wp-engine-v-automattic&quot;&gt;31:46&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/photomatt/status/1838738735795703976&quot;&gt;WordPress&lt;/a&gt; v &lt;a href=&quot;https://x.com/justinferriman/status/1838356417482514842&quot;&gt;WPEngine&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#trademark-diff-seems-targeted&quot;&gt;33:10&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.diffchecker.com/tJ29tGIn/&quot;&gt;Trademark page diff seems targeted&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#youre-writing-a-vite-based-spa-you-need-to-add-a-few-api-routes-ie-for-authentication-what-do-you-do?&quot;&gt;33:49&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/aboodman/status/1836470815862460506&quot;&gt;&quot;You&#39;re writing a vite-based SPA. You need to add a few API routes (i.e., for authentication). What do you do?&quot;&lt;/a&gt;
-[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#mos-talk-at-future-frontend-2024&quot;&gt;36:43&lt;/a&gt;] Mo at Future Frontend: &lt;a href=&quot;https://youtu.be/BRce-DHEoNc?si=AsVqdVrxbiO9nyW9&quot;&gt;Dynamic UI at the Edge&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;-lightning-round-&quot;&gt;⚡ Lightning round ⚡&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#nitromodules-released-to-the-public&quot;&gt;39:03&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://mrousavy.github.io/nitro/&quot;&gt;Nitromodules released to public&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#nodejs-adds-an-experimental-permission-model&quot;&gt;39:31&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://twitter.com/liran_tal/status/1830621784770555915&quot;&gt;NodeJS adds an experimental permission model&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#typescript-with-react-styleguide&quot;&gt;40:54&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://mkosir.github.io/typescript-style-guide/#appendix---react&quot;&gt;TypeScript Styleguide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#inside-ecmascript-javascript-standard-gets-an-extra-stage&quot;&gt;43:05&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://thenewstack.io/inside-ecmascript-javascript-standard-gets-an-extra-stage/&quot;&gt;Inside ECMAScript: JavaScript Standard Gets an Extra Stage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#remix-the-web-from-mjackson&quot;&gt;44:34&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://garrettdimon.com/journal/posts/the-neverending-story&quot;&gt;The Neverending Story&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#remix-the-web-from-mjackson&quot;&gt;44:34&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/mjackson/remix-the-web/&quot;&gt;Remix The Web from mjackson&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#replacing-react-code-with-css-has-selector&quot;&gt;46:42&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.developerway.com/posts/replacing-react-with-css&quot;&gt;Replacing React code with CSS :has selector&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-09#performance-optimization-strategies-for-large-scale-react-applications&quot;&gt;48:19&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://old.reddit.com/r/reactjs/comments/1f6abzy/performance_optimization_strategies_for/&quot;&gt;Performance Optimization Strategies for Large-Scale React Applications&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;conferences-react-javascript&quot;&gt;Conferences (&lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://confs.tech/javascript&quot;&gt;Javascript&lt;/a&gt;)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://2024.squiggleconf.com/&quot;&gt;SquiggleConf&lt;/a&gt; Boston, MA USA Oct 3-4&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.rendercon.org/&quot;&gt;RenderCon&lt;/a&gt; Nairobi, Kenya Oct 4-5&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.reactindia.io/&quot;&gt;React India&lt;/a&gt; Goa, India Oct 17-19, 2024&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.react.brussels/&quot;&gt;React Brussels&lt;/a&gt; Brussels, Belgium Oct 18&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://nextjs.org/conf&quot;&gt;Next.js Conf&lt;/a&gt; SF, USA Oct 24&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://reactadvanced.com/&quot;&gt;React Advanced London&lt;/a&gt; London, UK Oct 25, 28&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://halfstackconf.com/london/spon&quot;&gt;HalfStack London&lt;/a&gt; London, UK Nov 13&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.reactnativelondon.co.uk/&quot;&gt;React Native London&lt;/a&gt; London, UK Nov 15&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Hello, everyone. Thank you again for joining us for the September edition of This Month in React, where we recap and digest recent developments in the ever evolving React and web ecosystem. We&#39;re coming to you live in Reactiflux, the place for professional React developers, and we&#39;re supported by Infinite Red, a little bit more on them. I&#39;m going to do something different this month. I&#39;m going to do the ad read after our You know, quick hits at the start. [00:21]&lt;/p&gt;
&lt;p&gt;Hello, I&#39;m Carl. I&#39;m a staff product developer and a freelance community manager here at Reactiflux, uh, where I run community programs like these events and help keep the community operating. [00:31]&lt;/p&gt;
&lt;p&gt;This month we don&#39;t have Mark, sadly. He&#39;s in Turkey, um, I think. Not sure if he did a conference, but he just couldn&#39;t swing it this month. [00:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; And I am Mo. I head the mobile team at Theodom. I&#39;m quite active in the React Native ecosystem. Get very involved in a bunch of different conferences and some open source here and there. [00:47]&lt;/p&gt;
&lt;p&gt;I organize the React Native London, community. And basically oversee a team of different developers who are specialized in React Native. So, happy to be here to chat, as always. [00:56]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; All right, straight into some new releases. [00:57]&lt;/p&gt;
&lt;h2 id=&quot;node-v2280&quot;&gt;&lt;a href=&quot;https://nodejs.org/en/blog/release/v22.8.0&quot;&gt;Node v22.8.0&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; We&#39;ve got Node version 22. 8. I didn&#39;t see anything super big that caught my eye in this change. New Node, minor version released. [01:06]&lt;/p&gt;
&lt;h2 id=&quot;deno-v2-rc&quot;&gt;&lt;a href=&quot;https://deno.com/blog/v2.0-release-candidate&quot;&gt;Deno v2 RC&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; We&#39;ve got Deno v2 release candidate coming out. It looks like this is coming out in Continuing the trend over the last couple months that we&#39;ve discussed of Deno kind of walking back some of its opinions, they have gone pretty hard on Go style dependency management and a couple of other Go and other highly opinionated back end languages. [01:25]&lt;/p&gt;
&lt;p&gt;They&#39;re kind of walking those back. Stuff like, they had been Encouraging people to use window instead of process. They are changing that in order to be more compatible with existing NPM modules. Just generally be more compatible across the ecosystem. Yeah, a couple of other things like that too, like making it easier to use with NPM. [01:41]&lt;/p&gt;
&lt;p&gt;Generally making it more compatible, which I think is why they&#39;re walking back some of their highly opinionated opinions. [01:47]&lt;/p&gt;
&lt;h2 id=&quot;relay-v18&quot;&gt;&lt;a href=&quot;https://github.com/facebook/relay/releases/tag/v18.0.0&quot;&gt;Relay v18&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; We&#39;ve also got Relay version 18. Are people still using Relay? I don&#39;t really have a good sense for its, I don&#39;t know, usage. I know, obviously, Facebook still uses, Meta still uses it, but, yeah, not sure how much community uptake it&#39;s had over the last three or so years. [02:01]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Not much on our side. [02:03]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; But a change that should make it a little bit easier for people to start using, they have added IntelliSense for the Relay config file. Just getting started, I&#39;ve tried to get started with Relay two or three times over my career, and just never got over that initial hump of figuring out how to get it working. [02:17]&lt;/p&gt;
&lt;p&gt;So, uh, maybe some stuff like that will help. Make it a little easier to use. Not having used it, I can&#39;t really speak to the other changes they have, but you know, improve validation of argument types, an alias, catch, throw on field error. Cool. [02:28]&lt;/p&gt;
&lt;h2 id=&quot;redwood-v8&quot;&gt;&lt;a href=&quot;https://redwoodjs.com/upgrade/v8&quot;&gt;Redwood v8&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; There&#39;s also Redwood with a major release, version 8. Redwood is sort of trying to be the Laravel of the React ecosystem, sort of an all in one framework that does all the things that you need. Instead of making you find all the packages yourself to glue the bits together, which seems pretty cool. Yeah, this major release upgrades a lot of dependencies, adds Docker support, which I was a little surprised to see. I, I think of Docker support as not something a framework needs to, like, explicitly add, but cool. [02:53]&lt;/p&gt;
&lt;p&gt;I guess maybe they&#39;re making it a little bit easier to just get running in that environment, which since Docker is such a widely used primitive, that makes a lot of sense. Seems cool. They talk about an experimental SSR and RSC setup, so if you&#39;re doing server side rendering, or if you&#39;re interested in server side rendering and server components, might be, should be easier. [03:12]&lt;/p&gt;
&lt;p&gt;As well as adding support for background jobs, which is definitely something that an all in one framework, I think, I would expect to provide. So that&#39;s cool. [03:20]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; The Docker support is really interesting because It&#39;s almost in direct, I want to say, almost opposing to how Next does it, which it seems to me like Docker is like, hey, you have a Docker image and you can basically use it to deploy your full stack web app into, into whatever cloud platform you want to use. [03:38]&lt;/p&gt;
&lt;p&gt;Super easy, primitive, that&#39;s agnostic to whatever cloud provider you want, you self host it, you scale it up yourself, however you want, and our batteries included framework will just work. Whereas Next is notoriously difficult to be able to, uh, self host. So I just find that interesting. Maybe it&#39;s directly done as sort of a distinguishing factor compared to Next. [03:55]&lt;/p&gt;
&lt;p&gt;I don&#39;t know, but I find it quite interesting. [03:57]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah, makes sense. I have preferred to host anything I do in Docker for most of the last 10 years, so it&#39;s, that will make it easier. I&#39;m interested in trying out Redwood, so having it better support my preferred environment will definitely help with that. [04:09]&lt;/p&gt;
&lt;h2 id=&quot;epic-react-v2&quot;&gt;&lt;a href=&quot;https://x.com/kentcdodds/status/1838263679025844378&quot;&gt;Epic React v2&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; There&#39;s a new release of Kent C. Dodd&#39;s Epic React, version 2. The overview of the course, it&#39;s going to teach you React fundamentals, hooks, advanced APIs, suspense, advanced patterns, performance, and server components. I was a little surprised I couldn&#39;t easily find like a diff of what is being covered and what they&#39;re focusing more on, uh, between the old version and the new version, which I had been hoping to see. [04:33]&lt;/p&gt;
&lt;p&gt;I have not bought it. I consider myself an epic React dev already, so I don&#39;t feel like the target audience. But yeah, they&#39;re doing a 40 percent off promo right now, so if you have an educational budget at work, definitely consider spending some of it on this. it&#39;s about 420 right now. Nice. [04:48]&lt;/p&gt;
&lt;p&gt;Full price is 700, and I think it&#39;s jumping up there in about two weeks from time of recording, which is on the 25th. [04:55]&lt;/p&gt;
&lt;h2 id=&quot;rspack-v1&quot;&gt;&lt;a href=&quot;https://rspack.dev/blog/announcing-1-0&quot;&gt;RsPack v1&lt;/a&gt;&lt;/h2&gt;
&lt;h2 id=&quot;rsbuild-v1&quot;&gt;&lt;a href=&quot;https://rsbuild.dev/community/releases/v1-0&quot;&gt;RsBuild v1&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Some kind of big news. RS Pack and RS Build both released 1. 0 in the last month, about two weeks apart. RS Build is like a Rust based build tool, if you have not paid attention to previous episodes where we&#39;ve discussed it. [05:10]&lt;/p&gt;
&lt;p&gt;A decent amount. And RSPack builds on top of that to provide a Webpack compatible bundler. I feel like this was all the way back to like 2014 15 when Webpack was new. I mean, Webpack really replaced tools like Gulp. I think I went straight from Gulp to Webpack, and it was a massive just step change improvement. [05:28]&lt;/p&gt;
&lt;p&gt;It was clearly better in just doing everything. Uh, but It was really complicated to configure, uh, not the fastest tool. So like, almost immediately people were talking about ways to make it faster, ways to make it do the great things that it did in a better manner. I feel like, uh, especially in the web ecosystem, we love our tools to be fast and snappy. [05:50]&lt;/p&gt;
&lt;p&gt;so a counterpoint to that, people have been interested in having a faster, better solution than Webpack, but the flip side is that Webpack does so much that it&#39;s just really hard to actually make a replacement. So I feel like this is a culmination of like a decade long process. [06:05]&lt;/p&gt;
&lt;p&gt;project to produce something like that. So to get a Rust based natively compiled language build tool that provides drop in compatibility with an existing massively complex, massively used tool. Awesome. Seems really cool. [06:20]&lt;/p&gt;
&lt;h2 id=&quot;metro-08011&quot;&gt;&lt;a href=&quot;https://x.com/MetroBundler/status/1831709057670861260&quot;&gt;Metro 0.80.11&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; So, speaking of bundlers and staying on the same thread, as you will know, React Native has its own bundler that, uh, is purpose built. [06:28]&lt;/p&gt;
&lt;p&gt;or the use of React Native apps. Um, and it&#39;s called Metro. So, Metro just released a more of a patch than a minor although React Native&#39;s versioning is a little bit confusing because everything is a minor because they want to be able to do as many breaking changes as possible, but they released a patch and there was some insane performance benefits here, so They took the resolver step, which was a bit slow within Metro, and they made it around 15 percent, sorry, 15 times faster, and that made a massive difference. [06:56]&lt;/p&gt;
&lt;p&gt;So when they ran it on the, uh, Expensify app, which is notoriously a large scale, open source React Native app, the total build time, was brought down from around 13 seconds down to about 3. and that&#39;s about 4 times faster for the whole build process, right? So resolving is just one step of it, they&#39;ve made that significantly faster, but that makes a big impact on the overall build time. [07:16]&lt;/p&gt;
&lt;p&gt;And so this is really cool, but one of the added benefits of this is because it&#39;s, it&#39;s, it&#39;s a, it&#39;s a patch here, it&#39;s actually not a breaking change at all. So you can use it 3 versions back, 3 major React Native versions back, and it kind of works. So all you need to do is just bump your dependencies and you&#39;ll get the faster resolving times, which is really cool. [07:34]&lt;/p&gt;
&lt;p&gt;So big shout out to the Metro team, specifically, uh, Rob Hogan&#39;s been working on this. They did a really good job, and hopefully it just makes our dev tools a little bit faster, which we all love. [07:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yep, yeah, right. Like I just said, we love our fast dev tools in the web ecosystem. Cool. 15 times faster in a patch release. That is rare. Very cool. [07:52]&lt;/p&gt;
&lt;h2 id=&quot;effect-38&quot;&gt;&lt;a href=&quot;https://effect.website/blog/effect-3.8&quot;&gt;Effect 3.8&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Wish I could say more about this, but Effect has released version 3. 8. Cool. Effect seems really cool, but it&#39;s also got a really steep learning curve because it&#39;s basically an entire new, like, standard library and programming paradigm all at once. It seems really cool. What I&#39;ve seen in it, it seems to take a lot of inspiration from functional programming tools like languages and environments like Elixir. [08:15]&lt;/p&gt;
&lt;p&gt;Just encouraging you to build more like composable APIs? Yeah, we, again, we&#39;ve talked about this a little bit in the past, so it, I, I won&#39;t fully rehash everything, but it&#39;s a huge, massive, steep learning curve that seems really cool and possibly worth it. So it&#39;s, you know, it&#39;s, I feel like I say this so many times every episode, but this is something that I&#39;m really curious about, learning more about and using more and yeah. [08:39]&lt;/p&gt;
&lt;p&gt;if you like functional programming in web, definitely. Consider looking at effect. [08:43]&lt;/p&gt;
&lt;h2 id=&quot;astro-415&quot;&gt;&lt;a href=&quot;https://astro.build/blog/astro-4150/&quot;&gt;Astro 4.15&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; We&#39;ve got Astro 4. 15. Big change, they say that Astro actions are stabilized. Um, and it looks like they&#39;ve swapped out how those actions are configured so that it&#39;s a little bit more concise. [08:54]&lt;/p&gt;
&lt;p&gt;Uh, you describe the shape of the data that it receives and what to do with that data when you get it. Rather than treating it like a whole request where you then, like, do the validation and the error handling yourself. That&#39;s adding some opinions to it, but doing a validation schema and then providing a handler that receives valid data that conforms to the schema that you provided. [09:16]&lt;/p&gt;
&lt;p&gt;Seems like a pretty solid abstraction point there. There&#39;s also some other things like, the astro islands pattern. you could previously configure it to load those islands asynchronously, idly, when the, when the tab is idle. Uh, and they&#39;ve now added a timeout so you can set a maximum time that it will wait for your page to go idle. [09:36]&lt;/p&gt;
&lt;p&gt;Uh, which seems like a nice, you know, 99th percentile performance improvement. If, if, if you&#39;re on a slow device that never goes idle, that&#39;s going to cause problems if you&#39;re only loading when idle. [09:45]&lt;/p&gt;
&lt;h2 id=&quot;react-email-v3&quot;&gt;&lt;a href=&quot;https://resend.com/blog/react-email-3&quot;&gt;React Email v3&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; So we&#39;ve also got a new major version of React Email, uh, version 3. 0. Looks like this is another, you know, release getting ahead of React 19. [09:54]&lt;/p&gt;
&lt;p&gt;They have swapped out their rendering. So it&#39;s now async by default. as well as adding a new component library, improving performance. They added a superbase integration so that you don&#39;t have to manually, like, render and then copy the output into superbase, which seems nice. I&#39;m a little surprised to see a new component library here, but I guess in an email environment there are just so many ridiculous constraints that, uh, I guess it makes sense that you need a specialized component library for that environment. [10:20]&lt;/p&gt;
&lt;p&gt;But yeah, uh, React Email, if you&#39;re doing anything with emails, that seems like a pretty solid tool to use. [10:26]&lt;/p&gt;
&lt;h2 id=&quot;react-native-076-rc2&quot;&gt;&lt;a href=&quot;https://github.com/facebook/reactv0.76.0-rc.2&quot;&gt;React Native 0.76 RC2&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; So, I&#39;ve kind of stuck the next one in. It&#39;s not really a release, but it&#39;s a release candidate, so it&#39;s kind of a blurred line, but we&#39;ll just go with it. The second release candidate of React Native 76 is out. [10:38]&lt;/p&gt;
&lt;p&gt;So, when I say, for those who aren&#39;t in the React Native ecosystem, when I say 76, I mean 0. 76. It&#39;s just, it&#39;s so far up that we&#39;ve just We just get rid of the zero because it&#39;s easier to say. But anyway, React Native, 0. 76, Release Candidate 2&#39;s out. Um, now, this will still take a few more weeks, at least, to, to land, but, this version of React Native is going to be, quite monumental because the new architecture will be the default. [11:02]&lt;/p&gt;
&lt;p&gt;Going forward from this version. Now this new architecture is nothing new. It&#39;s been around, it&#39;s been talked about for years now. Um, contrary to the name, uh, it was new a while ago. Um, but it was a, it was a massive undertaking because you&#39;re basically gutting the internals of React Native, replacing it with React. [11:18]&lt;/p&gt;
&lt;p&gt;Something that&#39;s totally different in terms of how the native layer is handled. And so you&#39;re needing a new rendering engine, you need a new way to interact with native code and the native APIs. And so what that&#39;s meant is that this, it&#39;s had this long tail of getting library maintainers, 3P libraries, and, and, All of these things ready so that app developers don&#39;t have that much of a pain with some of their libraries not working if they switch over to the new architecture. [11:43]&lt;/p&gt;
&lt;p&gt;And so hopefully it&#39;s going to result in a lot more stability, some performance gains. We&#39;re waiting to see, but this is going to be a big release and you can still use the old architecture, but new one is the default. And it will be going forward. So, very exciting times, very monumental times. It&#39;s probably going to come with some teething pains as it does when you do such a major rewrite, but we&#39;re keeping our fingers crossed. [12:02]&lt;/p&gt;
&lt;p&gt;They&#39;ve put a lot of work into this. [12:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; For sure, yeah. And as we&#39;ve discussed many times on here, especially Mark, nobody tries really as candidates. So if you&#39;re using React Native, just At least give it a shot. See if there&#39;s any, like, obvious failure points, because, uh, open source maintainers love hearing about those growing pains as you&#39;re trying to switch over. [12:20]&lt;/p&gt;
&lt;p&gt;This is a great opportunity to do it. We&#39;re RC2. We&#39;re running out of candidates. [12:24]&lt;/p&gt;
&lt;h2 id=&quot;sponsored-by-infinite-red&quot;&gt;Sponsored by Infinite Red&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; We are brought to you by Infinite Red, our main sponsor right now. They are an expert React Native consultancy that I am quite pleased to be a partner with because they are like authentically showing up to support the React Native and React ecosystems in like really meaningful ways. [12:40]&lt;/p&gt;
&lt;p&gt;They organize conferences, they host the largest React Native podcast, they publish the largest React Native focused newsletter, and they&#39;re Just really excited to work with them. Other than being great people who do great things in the community, they also, well, more precisely, they&#39;re a team of about 30 people, mostly developers with mostly greater than 10 years of experience. [13:01]&lt;/p&gt;
&lt;p&gt;So they actually work with your team to help you develop an expertise in building React Native. So if you are. Building something with React Native and need a little help hitting the ground running on that, definitely reach out to them because they are great people who will help you do good work. [13:17]&lt;/p&gt;
&lt;h2 id=&quot;upcoming-conferences&quot;&gt;Upcoming conferences&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Moving on to some upcoming conferences. There&#39;s a lot, so I&#39;m gonna just do, like, half of these, because we&#39;re already 15 minutes in. Mark and I will both be at SquiggleConf in Boston, Massachusetts, October 3rd and 4th. it&#39;s organized by a conference buddy of mine, Josh Goldberg. [13:32]&lt;/p&gt;
&lt;p&gt;I&#39;m looking forward to it. It should be, should be a great time. It&#39;s going to be at the Aquarium in Boston, which seems great. there&#39;s also going to be RenderCon in Nairobi, Kenya, October 4th and 5th. React India is in Goa, India, October 17th through 19th. And React Brussels in October, uh, 18th, Brussels, Belgium. [13:51]&lt;/p&gt;
&lt;p&gt;There&#39;s also Next. js Conf in San Francisco on the 24th of October. [13:55]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; And then, if you&#39;re in London, ReactiveLabs London is happening on the 25th of October for the in person day and the 28th of October for the remote day. I will be there. I&#39;ll be doing a talk about React Native there, so if you&#39;re around, come and say hi. [14:07]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Uh, I think Mark will be there too. Sadly, I will not. I will be in Mexico City, having a great time. There&#39;s also Halfstack London in London on November 13th. [14:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; And then this is the announcement that I&#39;ve been waiting a long time to make on this conference, but we have the two month rule, so we&#39;re trying to remain impartial. [14:23]&lt;/p&gt;
&lt;p&gt;We are doing the first ever React Native conference in London. So, RNLConf, React Native London conference, effectively, is happening on the 14th and 15th of November. in London, central London at the Brewery, which is this like old building from the 1800s, uh, where a bunch of the monarchs of the UK went and visited, and it was a big festive place. [14:42]&lt;/p&gt;
&lt;p&gt;Anyway, it is now an events venue that we have gotten, and we&#39;re gonna have a lot of core people from the React Native ecosystem there. Charlie Cheever, the founder of Expo, is gonna be there. we have a lot of different cool folks from Meta, from Amazon, and from a bunch of different places coming to share. [14:54]&lt;/p&gt;
&lt;p&gt;Ideas and talks with everyone. If you are interested in joining, we have also, I&#39;ve just made a discount code for anyone who listens to the podcast, so it&#39;s TMIR. Feel free to just grab a ticket that way, and hopefully you&#39;ll save a little bit of cash as well. [15:05]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; All right, into our main content. [15:08]&lt;/p&gt;
&lt;h2 id=&quot;bulletproof-react-updated-to-include-nextjs&quot;&gt;&lt;a href=&quot;https://www.reactiflux.com/bulletproof-react&quot;&gt;Bulletproof React updated to include Next.js&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Bulletproof React got updated for Next. js. This is a simple, scalable, and powerful architecture for building production ready React applications, it describes itself as. Um, so this, I guess it&#39;s a set of example apps, to help you get started. I wanted to call this out because it seems like a pretty good resource. You know, it&#39;s a question we get in, you know, Reactiflux all the time. [15:30]&lt;/p&gt;
&lt;p&gt;It&#39;s like, hey, where can I find a, production grade application to use as a reference? I want to learn. I want to learn more about how they do it. and yeah, this seems like a good resource. It&#39;s, it&#39;s a whole ass. They have an example app written in a couple of different frameworks, so they have updated it to use the app router, I believe, and yeah, seems like a great resource. [15:52]&lt;/p&gt;
&lt;h2 id=&quot;new-react-native-debugger&quot;&gt;&lt;a href=&quot;https://www.youtube.comt=4350s/&quot;&gt;New React Native Debugger&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Cool. So, this month we had React Universe Conf happening in Wroclaw in Poland. I was there hosting the conference and there was a lot of React Native stuff that was announced. now they were kind of s I want to say soft announcements in some capacity because people kind of knew about them already. It wasn&#39;t anything like mind blowingly new, but it was really cool to see the output of a lot of hard work that people have been anticipating for a while. [16:14]&lt;/p&gt;
&lt;p&gt;So the first one was the new React Native debugger. just a little bit of context on some of this. Debugging in React Native has been a pain. Anyone who&#39;s built with React Native knows that, like, debugging has been a mess. Like, you could use a bunch of different tools in conjunction with one another. [16:29]&lt;/p&gt;
&lt;p&gt;Some of them worked for certain things, other ones worked for other things. there was a point where, you know, you used Flipper for a while, and Flipper wasn&#39;t great. everyone really did not like Flipper, and so it got deprecated because it was just not really usable. so it was a lot of different tools that you needed to have in your tool belt to be able to effectively debug. [16:45]&lt;/p&gt;
&lt;p&gt;the new, the team at Meta tried to kind of, go from a fresh blank slate and say, hey, how do we build a really good debugger that resembles some of the experiences that people are used to with other frameworks and other other languages? And so they built a completely new debugger that&#39;s fully built on the Chrome DevTools protocol. [17:00]&lt;/p&gt;
&lt;p&gt;And it looked like it was, from what we saw at the conference talk, it looked like it was a lot more reliable. It addressed a lot of the minor pain points that you felt when you were trying to debug. And I guess the big thing was that we finally have reliable breakpoints. Which was a real pain to get working within React Native. [17:16]&lt;/p&gt;
&lt;p&gt;So, really, really, exciting stuff to, to, to get. And it should be public soon. So we&#39;re excited to get, get our hands dirty with it and, uh, and try it out. [17:25]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Getting into the Chrome debug protocol seems like such a massive improvement here. Instead of using some kind of like bespoke debugging system, I love that you can just actually tap into a widely used tool that a lot of people are familiar with. [17:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; And it makes sense in terms of the direction that, you know, React Native is going, which is they want to make it more friendly for the web devs to be able to come in and build native mobile apps, right? So you don&#39;t want to force React web devs to learn a totally new dev tool framework or a model. You just use the tools that people are familiar with. [17:55]&lt;/p&gt;
&lt;p&gt;And so I think it was a great choice, and it looks good. So we&#39;ll wait for it to come into the hands of all of us, and then we&#39;ll play around with it and make it better over time, and it&#39;ll be a great time. Oh, yeah. Cool. [18:05]&lt;/p&gt;
&lt;h2 id=&quot;hermes-new-runtime-bytecode-translation&quot;&gt;&lt;a href=&quot;https://wwwv=pfetpsai6vc&amp;amp;t=8702s/&quot;&gt;Hermes new Runtime Bytecode Translation&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; So more stuff from React Universe Conf. Another announcement, almost like a thing that we saw into, was, Hermes, which is the JavaScript engine that&#39;s used with React Native on most apps, now has a new runtime sort of bytecode translation. [18:19]&lt;/p&gt;
&lt;p&gt;Now it&#39;s very complicated and complex, and the talk explains it far better than I do, because it&#39;s some really low level stuff, so you kind of need to wrap your head a little bit around assembly and some, some stuff like that. A little bit of context, just to contextualize this, I think helps. last year there was a talk by the Hermes team at React Native EU called, uh, talking about this, this new concept of Static Hermes, which was, could we take JavaScript code and, uh, Make it typed native code, and sort of compile that down so that you get near native, if not just native performance, using C Um, and so that was a really cool concept, and the benchmarks that they ran from their early tests was showing that it was massively faster to execute JavaScript code because you were basically executing native code there. [18:59]&lt;/p&gt;
&lt;p&gt;it was a really cool approach of, you know, How you bypass the restrictions of JavaScript&#39;s runtime. But there were some limitations in the sense of how people use React Native in practice. And, you know, people use a lot of different features like over the air updates, which means you can kind of replace your JavaScript bundle. [19:17]&lt;/p&gt;
&lt;p&gt;with a server and add new code to a mobile app without going through an app store. So that&#39;s like a big feature that a lot of people use in React Native. And so this wouldn&#39;t work with the current model of static Hermes. a lot of different build tools. when you, when you pass your code through something like Babel, it loses the type annotations. [19:32]&lt;/p&gt;
&lt;p&gt;So how does that then get compiled down to, you know, typed native machine code. It was hard to really wrap it into the ecosystem and how people are using and developing React native apps. So, Intermediately, the Hermes team&#39;s been working on sort of runtime bytecode translation, which means, Okay, well, if we can&#39;t do this at compilation time, could we? [19:52]&lt;/p&gt;
&lt;p&gt;Find ways to boost performance at runtime and compile things to native instructions without needing to necessarily rely on things that you might only have at compilation time, like your type annotations. whilst being able to still let people do things like over the air updates. And so that&#39;s this. [20:08]&lt;/p&gt;
&lt;p&gt;concept of the runtime bytecode translation. This isn&#39;t landed anywhere and it will take a long time. It will probably first go through Meta&#39;s internal process of testing and seeing how it works within their apps. And then if it&#39;s stable, it&#39;ll phase, in a phased approach, get drip fed to the rest of the community. [20:24]&lt;/p&gt;
&lt;p&gt;So it&#39;s going to take a little bit of time, but it&#39;s really interesting stuff and it can have massive performance gains when you&#39;re running really computationally heavy tasks that you would previously run in JavaScript, using this bytecode translation. [20:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Interesting. Okay. So I remember Hermes. That&#39;s like, that was like a V8 competitor. It was a runtime for JavaScript optimized for React Native. So it sounds like this is going to be doing. Like, you know, all these JavaScript runtimes, they always have various levels of, JIT, just in time compilation happening. I remember, you know, V8 has like TurboFan, and I don&#39;t remember any of the other brand names. [21:00]&lt;/p&gt;
&lt;p&gt;But, okay, so this is sort of a new type of JIT sort of thing, where it, like, over time will create a I don&#39;t know, like codify the bytecode so that it doesn&#39;t need to do the JIT every single time? Is that, am I understanding that right? [21:14]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; That&#39;s what it seems like to me. Again, there&#39;s a blurred line between static release that happens at compilation and this, which is kind of JIT. [21:22]&lt;/p&gt;
&lt;p&gt;And this is a little bit, there is some level of caching that you can do, right, because those instructions don&#39;t change commonly. They&#39;re changing once every time you kind of do an over the air update. So, um, a lot is still unknown. it&#39;s just more, showing the possibility of if you have unannotated JavaScript code, how much could we, compile it down to bytecode and still get some of the performance gains that you can get out of something like Static Hermes. [21:46]&lt;/p&gt;
&lt;p&gt;Which would be a lot more aggressively, compiling things down and, and it has a lot more context because of having access to the source code and being able to run this at compilation. So it&#39;s a more practical step that they&#39;re trying to address with how the community uses React Native and how probably Meta uses React Native internally as well. [22:03]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; That makes sense. My mental model here is aggressive caching of JIT bytecode. Definitely will be curious to see how that shakes out as it starts to roll out. Exits idea stage and enters production stage. [22:14]&lt;/p&gt;
&lt;h2 id=&quot;react-19-cheat-sheet&quot;&gt;&lt;a href=&quot;https://www.epicreact.dev/react-19-cheatsheet&quot;&gt;React 19 Cheat Sheet&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; All right. A bit of stuff on React 19. Man, I&#39;m a little sad Mark isn&#39;t here today because there&#39;s a couple of new resources and some, some new info that I&#39;d love to get his take on. [22:23]&lt;/p&gt;
&lt;p&gt;But yeah, so Kent C Dodds put out a React 19 cheat sheet and it looks pretty great. You know, even just kind of casually skimming this, I learned several new things that I hadn&#39;t realized. Even, even as someone who considers himself to put a decent amount of effort to stay on top of things as they happen. [22:40]&lt;/p&gt;
&lt;p&gt;I still learned about like four or five new things from this cheat sheet. Probably the single biggest one is that since when could we use async functions? Like we apparently in React 19 you can do if you know you&#39;re doing a function component like you do now you can just mark that as async and it will return a promise like async functions do and React just like knows how to handle that. [23:01]&lt;/p&gt;
&lt;p&gt;That makes a lot of sense. I am curious how that, I guess where I really wish I had Mark to talk about. This instead of me is, I don&#39;t really understand the difference between the suspense primitive of like throwing a promise versus now this where you can just return a promise. Yeah, this is a really great single page cheat sheet, you know, eight and a half by 11 with a bunch of great resources. [23:25]&lt;/p&gt;
&lt;p&gt;You know, it talks about like what the use hook is for, talks about the better error reporting, resource preloading APIs, so you can make sure that You know your fonts and your images are available. Loading style sheets with precedence. Uh, I, something I had known was that React 19 will let you render like scripts and style sheets just within your output and it will hoist them up to, you know, be Loaded as appropriately, something I didn&#39;t know is that you can signal their precedence, their relative precedence. So, you know, default precedents or high precedents. This is, this is a base level style sheet that needs to apply to everything versus this is a, you know, could override those base styles, things like that. Really great resource. Kent C. Dodds, of course, putting out lovely educational resources. [24:10]&lt;/p&gt;
&lt;h2 id=&quot;whats-new-in-react-19&quot;&gt;&lt;a href=&quot;https://vercel.com/blog/whats-new-in-react-19&quot;&gt;What’s new in React 19&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; There&#39;s also a great, What&#39;s New in React 19 blog post put out by Vercel. Mostly the bulk of the content talks about how the rendering model for React has evolved over the years. Uh, I thought this was just a really great breakdown of why. [24:25]&lt;/p&gt;
&lt;p&gt;We&#39;ve gone from why React is pushing server components and like what the value proposition there is. It has a really great series of diagrams showing like, all right, this is how, this is how data fetch and resource loading happens in a single page application versus an SSR application versus now what React server components unlock. [24:47]&lt;/p&gt;
&lt;p&gt;And just showing like the data flow of like server to client. And it really does a good job of illustrating those waterfalls and how those waterfalls end up hap end up being imposed by the rendering model and how server components change that rendering model to enable fewer waterfalls to happen. another good resource talking about new things unlocked. In React 19, there was a good post talking about build time components, which is distinct from like server side rendering or server components, pretty related to like, you know, SSG, static site generation. Yeah, static site generation. [25:22]&lt;/p&gt;
&lt;p&gt;If you say that acronym SSG, the presumption is that that refers more to something like Gatsby, which is a one time, it doesn&#39;t have a server, it has static generation. so this, this discusses build time components, I think sort of as a complement to server rendering or server components, where as part of the build step, as part of, you know, your transpilation and compilation and whatever, you can statically generate. [25:47]&lt;/p&gt;
&lt;p&gt;Some of your, some of your resources, some of your pages, some of your components. I thought that was a good call out as new technical capability. Returning back to my earlier thought on the cheat sheet, I saw in real time Kent C Dodds learning that you can return a Promise from a component. So just like earlier this month, he put out on Twitter like, oh, you can, you can just do this. [26:08]&lt;/p&gt;
&lt;p&gt;You can just mark it as async. Amazing. So just to drop the link to a good thread in there, but really good. I&#39;m not sure what the difference is between that. You know, classic suspense, throwing a based thing and just doing an async function. [26:22]&lt;/p&gt;
&lt;h2 id=&quot;a-milestone-for-typescript-performance-in-tanstack-router&quot;&gt;&lt;a href=&quot;https://tanstack.com/blog/tanstack-router-typescript-performance&quot;&gt;A milestone for TypeScript Performance in TanStack Router&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Moving on. TanStack had a really great post discussing a performance optimization they did for TanStack Router. [26:29]&lt;/p&gt;
&lt;p&gt;This is a very different type of performance optimization than most that we see discussed. This is not like runtime performance. This is not, you know, how the library works while you&#39;re using it. This is an optimization they did in your editor. So like, as your site grows larger, because their routing is type safe, it&#39;s actually doing a lot of, it&#39;s actually throwing a lot of work at the language server, at the TypeScript language server that your IDE is running. [26:56]&lt;/p&gt;
&lt;p&gt;In this blog post, they break down a pretty complicated site that has, I think they say, This example has 400 route definitions with validated search parameters, and I, you know, it takes like three seconds for the language server to get back to you. So, like, if you&#39;re writing code and you, like, open IntelliSense to see, like, oh wait, what, what query strings can this receive? [27:17]&lt;/p&gt;
&lt;p&gt;Like, sitting and waiting for three seconds as it parses that. Not great. but yeah, they talk about improvements they did for that. And just because, like, type safe routing is super cool and super difficult, and like, how often do you think about the performance of the TypeScript language server in your IDE? [27:34]&lt;/p&gt;
&lt;p&gt;For me, never. so just seeing this, like, Deep technical write up of how they&#39;ve improved the performance of something that I have never thought about is pretty great, pretty interesting. [27:46]&lt;/p&gt;
&lt;h2 id=&quot;weve-decided-to-make-a-few-changes-to-ease-the-adoption-of-next-15&quot;&gt;&lt;a href=&quot;https://x.com/feedthejim/status/1829569083777437745&quot;&gt;&quot;we’ve decided to make a few changes to ease the adoption of Next 15&quot;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool, an update on Next 15, which is not out yet. Yeah, they said, we&#39;ve decided to make a few changes to ease the adoption of Next 15. [27:54]&lt;/p&gt;
&lt;p&gt;We&#39;ll relax the React 19 requirement for the Pages router so you can upgrade in your own time. I appreciated this because my read on the Next. Ecosystem right now is that there&#39;s a lot of attention being paid to the app router, but technically that&#39;s Bleeding Edge. That&#39;s the newest, still experimental grade, kind of. [28:14]&lt;/p&gt;
&lt;p&gt;So they encourage you to use it in the same way that open source maintainers encourage you to use release candidates. But strictly speaking, the Pages router is still where the business is. So seeing them talk about sending support for that into React 19 seems good. Bethany, for the app router, we decided not to block on the general release of React 19. [28:34]&lt;/p&gt;
&lt;p&gt;So I guess that they are looking to release. Finished non-experimental app router, before or, or they&#39;re decoupling released app router from the React 19 release. [28:45]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Does that mean that they would ship the app router apps if you start a new app, router app with Next, that it would just be using like an RC of React 19, or would it just be using React 18 unless re 19 gets launched? [28:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; There was some confusion a while ago because they were using release candidates by default. Uh, I don&#39;t remember where that landed off the top of my head right now, but I think that&#39;s right, but I can&#39;t answer you definitely. I&#39;m just looking at this thread again and I see someone ask a very similar question. [29:15]&lt;/p&gt;
&lt;p&gt;How do you relax the React 19 requirement when React is bundled into Next? Do you maintain a release for 18 and 19? Did not get a response, so not sure. This is kind of continuing the trend of version confusion with Next and React, like, it&#39;s not very clear. [29:33]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I wouldn&#39;t personally feel comfortable using an RC with Next, if, Next 15, if they say, we&#39;ve tested it, it&#39;s stable, but then at the same time, I wouldn&#39;t trust it to work well with React 18 either, because I would suspect they haven&#39;t tested that enough. [29:46]&lt;/p&gt;
&lt;p&gt;So, you&#39;re in this no man&#39;s land where you&#39;re like, do I just stay on Next14 until it&#39;s actually, you know, stable and React 19 is launched and out of our seat? Interesting questions. [29:57]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Yeah. Confusing, but a similar, you know, vein of confusion as we&#39;ve had for like most of 2024. That confusion has not been cleared up. Confusion remains. [30:07]&lt;/p&gt;
&lt;h2 id=&quot;trademark-disputes&quot;&gt;Trademark disputes!&lt;/h2&gt;
&lt;h2 id=&quot;oracle-its-time-to-free-javascript&quot;&gt;&lt;a href=&quot;https://javascript.tm/&quot;&gt;Oracle, it’s time to free JavaScript&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; There&#39;s been a couple of trademark dramas this month. Like, I don&#39;t know why all the trademark stuff is coming out of the woodwork right now, but um, the Deno team put out a, like an open letter requesting that Oracle release the trademark for JavaScript. and this is one of those like, Funny, weird like quirks of history that not that impactful, but it is still a thing. [30:27]&lt;/p&gt;
&lt;p&gt;Like Oracle owns the trademark for JavaScript. Like the reason that the TC39 standards body that determines what JavaScript is technically They are not building JavaScript. They&#39;re building ECMAScript, which ECMA is an international standards body. And the reason it&#39;s called that is because Oracle owns the trademark on JavaScript. [30:47]&lt;/p&gt;
&lt;p&gt;And they have done nothing with it. They have not enforced it, as far as I know, in a decade. They have not They haven&#39;t done anything with it. So, yeah, the Deno team is asking people to sign a letter. so, I would encourage you to do so. I have signed this letter. I think it&#39;s great. I would love for Oracle to be less in the web ecosystem. [31:04]&lt;/p&gt;
&lt;p&gt;Please. [31:05]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; I don&#39;t think I knew that Oracle had the trademark for JavaScript until I saw this. I don&#39;t know if you did, but it was, uh [31:11]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I did know that. I mean, it&#39;s one of those stupid things. Like, it&#39;s called JavaScript because they were trying to, like I don&#39;t know. Ape on the popularity of Java back in the 90s, even though there&#39;s no relation. [31:23]&lt;/p&gt;
&lt;p&gt;So it&#39;s like, I think because I, I think it was something like in those early days, Oracle was like, no, no, no, no, hang on. You can&#39;t call it JavaScript. We own Java. And so I think that&#39;s how they ended up owning it, but then they didn&#39;t do anything in JavaScript or in the web because they&#39;re Oracle. And yeah, so it&#39;s just one of those like weird quirks of history. [31:40]&lt;/p&gt;
&lt;p&gt;So this feels like writing a wrong to me in a way that like, yes, please, let&#39;s resolve this tech debt, like get out of there. [31:46]&lt;/p&gt;
&lt;h2 id=&quot;wp-engine-v-automattic&quot;&gt;&lt;a href=&quot;https://x.com/photomatt/status/1838738735795703976&quot;&gt;WP Engine v Automattic&lt;/a&gt;&lt;/h2&gt;
&lt;h2 id=&quot;httpsxcomjustinferrimanstatus1838356417482514842&quot;&gt;(&lt;a href=&quot;https://x.com/justinferriman/status/1838356417482514842&quot;&gt;https://x.com/justinferriman/status/1838356417482514842&lt;/a&gt;)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And this is a little far afield from React, but there&#39;s been some WordPress drama. my, I don&#39;t do WordPress. I&#39;ve never worked as a WordPress developer. So this is a little bit of me catching up on stuff. [31:59]&lt;/p&gt;
&lt;p&gt;But so my understanding of this is that there&#39;s. the WordPress maintainer is Automatic with two T&#39;s, and then there&#39;s a, another company called WP Engine that seems to, I think they&#39;re like a services business, I think, so I guess it&#39;s, it&#39;s a little bit like If there were two Vercels, like an official one that was actually maintaining Next, and then another one that, like, didn&#39;t actually do very much of the maintenance, but also provided all of the same, like, hosting, just with a different set of defaults. [32:26]&lt;/p&gt;
&lt;p&gt;And if that other actor that did not do all the maintenance work and the development work was making way more money than the people actually building on it. So, that&#39;s my understanding of the difference between Automatic and WP Engine. Is that WP Engine makes a lot more money and contributes less. so the CEO of Automatic has gone on a bit of a tear and it seems not great to me. [32:48]&lt;/p&gt;
&lt;p&gt;They are now accusing WP Engine of like infringing on the trademark of WordPress by way of introducing confusion. Like people think that WP Engine is, you know, WordPress engine and they think that they play a larger role in the ecosystem than they actually do. But they&#39;ve done so, Automatic has done this by sending a cease and desist that doesn&#39;t, I don&#39;t know, it seems not great. [33:10]&lt;/p&gt;
&lt;h2 id=&quot;trademark-diff-seems-targeted&quot;&gt;&lt;a href=&quot;https://www.diffchecker.com/tJ29tGIn/&quot;&gt;Trademark diff seems targeted&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; There&#39;s, um, the trademark page, I saw a diff, like, just in the last week, like, as they sent the cease and desist, Automatic updated the trademark information page from saying, you can do whatever you want with the abbreviation WP, to you can do anything you want That doesn&#39;t add confusion to the ecosystem, and also WP Engine is not great and we don&#39;t like them. [33:30]&lt;/p&gt;
&lt;p&gt;And so it&#39;s just like they specifically called out this organization that they are sending a cease and desist to in updating their trademark guidelines. It&#39;s just like, Oh, Oh, okay. I feel like if you wanted to make that argument and you needed to make it 10 years ago when they started. So it&#39;s drama, some big drama happening in WordPress right now. [33:49]&lt;/p&gt;
&lt;h2 id=&quot;youre-writing-a-vite-based-spa-you-need-to-add-a-few-api-routes-ie-for-authentication-what-do-you-do&quot;&gt;&lt;a href=&quot;https://x.com/aboodman/status/1836470815862460506&quot;&gt;&quot;You&#39;re writing a vite-based SPA. You need to add a few API routes (i.e., for authentication). What do you do?&quot;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I saw a great. Twitter post from someone who is doing like a sync engines and lots of other like local first type development that I find very interesting. He posed the question, you&#39;re writing a Vite based SPA. You need to add a few API routes like for authentication. What do you do? And got a lot of engagement and I thought it was just a really good discussion. [34:11]&lt;/p&gt;
&lt;p&gt;I wanted to draw a little bit of attention to it just because a lot of great opinions coming out in there. I have recently been playing with. Cloudflare workers. And to me, they hit this really great niche that is perfect for this. Cloudflare workers are basically like serverless architecture. You, you know, set up a handler, and like, you don&#39;t do any of the infrastructure administration yourself. [34:31]&lt;/p&gt;
&lt;p&gt;It just, you know, starts up and stops. But they do it way better than anyone else that I&#39;ve played with so far. Like, you know, I&#39;ve used Lambdas and some other similar, you know, serverless architecture things, and all of them have, you know, Awful, terrible, brutally bad developer experience. Like, uh, this is a couple years out of date, so I think it&#39;s changed, but I don&#39;t think it&#39;s changed that much. [34:53]&lt;/p&gt;
&lt;p&gt;I, I just remember having to upload a zip file into AWS in order to test, in order to deploy changes to a, to a lambda function that I had written. And like, There&#39;s no environments, there&#39;s no way to say like, this is in test, this is in production, there&#39;s no way to test locally. So then like, this entire serverless framework spun up around that to try and make it better, but like, oops, it didn&#39;t actually work that way. [35:14]&lt;/p&gt;
&lt;p&gt;It didn&#39;t, it didn&#39;t match functionality, so it didn&#39;t serve the purpose. So yeah, I think for me this, the answer to what do you do if you need to add a few API routes is set up Wrangler, and then in locally and use Cloudflare Workers. [35:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; You stole the words from me, basically, which was I would use Cloudflare Workers for a few reasons, like AWS&#39;s serverless model means that you&#39;re still managing your infra to some degree, like what region do you place your serverless function? [35:41]&lt;/p&gt;
&lt;p&gt;How does it scale? How does it, you know, uh, how do you do API routing? Maybe you&#39;ll need to add another layer, with API gateway in front of it. It&#39;s not, like, Straightforward. And so Cloudflare Workers for me was like truly serverless because it&#39;s just a function that runs close to the users, somewhere on a CDN, and you get access to run some JavaScript somewhere on the edge, which is really quite cool. [36:03]&lt;/p&gt;
&lt;p&gt;there&#39;s some stuff around, you know, like I think that there&#39;s some trade offs, like you can&#39;t use Node packages, it&#39;s a custom runtime, and you know, if you want to use a specific router, like there is Hono as an example that you can use within Cloudflare Workers to do API routes. Auth is not as straightforward, I&#39;d say. [36:19]&lt;/p&gt;
&lt;p&gt;So, like, for small tidbits And, you know, tasks that I just need something that runs without me worrying about it, definitely Cloudflare Workers. And so, shameless plug, I did a talk with, a very close friend of mine, Samuel McLeod, who now actually works at Cloudflare and is on the Wrangler team, so he works directly on Workers, and we were talking about how do you Move your front end code to live on the edge in Cloudflare Workers with minimal effort. [36:43]&lt;/p&gt;
&lt;h2 id=&quot;mos-talk-at-future-frontend-2024&quot;&gt;&lt;a href=&quot;https://youtsi=asvqdvrxbio9nyw9/&quot;&gt;Mo&#39;s talk at Future Frontend 2024&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; So it&#39;s a, it&#39;s a, it&#39;s a talk that we did in Finland this year. Um, so, I&#39;ll share the link. but basically the gist of this was what if you could just take your use states that you have inside of your app and change it to use server state with a different import from a third party library and it would automatically just pop it inside of a durable object on the Cloudflare Worker environment. [37:02]&lt;/p&gt;
&lt;p&gt;And so there&#39;s a lot of cool magic and a lot of cool primitives that they&#39;ve got that lets you build on top of, and I really like it. If I wanted to build a little bit more full fledged, you mentioned Auth as an example, maybe. I quite like Superbase these days. It&#39;s relatively simple. You know, you can run Deno functions within it. [37:18]&lt;/p&gt;
&lt;p&gt;It also has a database model, which, you know, is managed for you. It&#39;s kind of, for mobile devs, I think it&#39;s The better Firebase, which, you know, Firebase promised to be the way that you don&#39;t have to write back end code for a mobile dev, and then it really wasn&#39;t great. and I think Superbase is a little bit nicer, and it&#39;s also relational DBs, which I prefer personally, so. [37:38]&lt;/p&gt;
&lt;p&gt;It kind of just works. [37:39]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Pretty much the major constraint of a serverless runtime is they pretty much have to be stateless because, you know, they start up and they spin it down. So if you want to persist state, you need to maintain some kind of other infrastructure to, you know, some kind of database or something like that, which like, as soon as you start running your own server for a database or something like that, like, well, why not just put the code on there too? [38:01]&lt;/p&gt;
&lt;p&gt;And Cloudflare workers give you both durable objects. Which are interesting and cool, and I haven&#39;t played with them very much, because they also have a key value store that is like this. Dead simple. It works basically like local storage with shared context between invocations of your workers, which just like, if I&#39;m doing something small that I don&#39;t want to spend like a week setting up new infrastructure and then don&#39;t want to have to maintain that over time, like something that I can just forget about for two years and then come back to and go like, what, how, how the hell does this work? [38:33]&lt;/p&gt;
&lt;p&gt;Workers. Love it. I guess I should while hyping Cloudflare and workers so much, I should probably mention that they are like basically the only stocks that I individually own that isn&#39;t in an ETF, because I like Cloudflare. But yeah, that&#39;s, I don&#39;t know if I have a conflict of interest, but. [38:50]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; That is a vote of confidence, Carl. [38:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; I&#39;m trying to put my money where my mouth is. Or, you know, now I&#39;m putting my mouth where my money already was. ( both laugh) [38:57]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; is this some sort of, like, ramping up stock prices? I don&#39;t know. Yes, yes. [39:03]&lt;/p&gt;
&lt;h2 id=&quot;nitromodules-released-to-the-public&quot;&gt;&lt;a href=&quot;https://mrousavy.github.io/nitro/&quot;&gt;Nitromodules released to the public&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; There&#39;s just a very quick update on NitroModules, which we talked about last month. And so, uh, NitroModules is this way to run faster native code from React Native. [39:12]&lt;/p&gt;
&lt;p&gt;And, uh, it&#39;s now been released to the public. And so a few people have been playing around with it. William Candillon, who builds React Native Skia and now React Native WebGPU, or WGPU, so to speak, is now using it on his project, and a few other people I know are experimenting with it. So we&#39;ll see some cool results, and I think it&#39;ll hopefully improve the performance of the React Native ecosystem as a whole. [39:31]&lt;/p&gt;
&lt;h2 id=&quot;nodejs-adds-an-experimental-permission-model&quot;&gt;&lt;a href=&quot;https://twitterstatus/1830621784770555915&quot;&gt;NodeJS adds an experimental permission model&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Um, Node. js is taking a cue from Deno and they are adding a permissions model. I think this is super cool. I thought the permissions model is something that Deno got right. I think it&#39;s just very interesting to, rather than just allow all the permissions that your process has, being able to signal to the process, what this code is going to need to access. [39:56]&lt;/p&gt;
&lt;p&gt;Um, I think that&#39;s a, I think that&#39;s really good and interesting and useful, especially in alternate runtime environments like workers, like serverless environments and things like that. An example where this would be useful. I remember a couple of years ago, uh, someone in Reactiflux set up a little five project allowing anyone to execute code from within the chat. [40:15]&lt;/p&gt;
&lt;p&gt;Yeah. Um, so you could just, you know, like, use some chat command with a code block. They had set up a bot that would pull that code block in, execute it, and spit out the output. They were able to do that, I believe, because of Deno&#39;s permissions model. Because they could guarantee that the code only had access to this very tight sandbox. [40:32]&lt;/p&gt;
&lt;p&gt;You know, if you&#39;re running code from arbitrary people in a chat room, that&#39;s very dangerous. So you need an effective permissions model. So, um Now we have that. Now Node. js has that. Uh, maybe not relevant for most people, but especially if you are working on something that would allow, or that would benefit from allowing your users to run code, run arbitrary code, Node. js now supports that better, at least. [40:54]&lt;/p&gt;
&lt;h2 id=&quot;typescript-with-react-styleguide-&quot;&gt;&lt;a href=&quot;https://www.reactiflux.com/typescript-style-guide/#appendix---react&quot;&gt;TypeScript with React styleguide &lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; This isn&#39;t new. I don&#39;t think I, I have, no, it&#39;s undated. I don&#39;t know when it came out. but I just crossed my radar and I like it. It&#39;s a TypeScript style guide. they have a, they have a react appendix that I, I thought was pretty neat. And just, I love a good style guide. [41:09]&lt;/p&gt;
&lt;p&gt;Another common question in Reactiflux is like, what are the best practices? Well, there&#39;s a lot of practices. Some of them are worse than others. Some of them are good generally in all circumstances. Some of them only make sense in a very narrow range of circumstances. [41:23]&lt;/p&gt;
&lt;p&gt;So just like, what are the best practices is a very difficult question to answer. And I think this TypeScript style guide does a pretty good job of Outlining a decent range of them. You know, some of them are opinionated, like it talks about project structure and like how to organize your source code and like, okay, there&#39;s a lot of ways to do that acceptably. [41:40]&lt;/p&gt;
&lt;p&gt;but something in the, you know, the first thing it talks about in the React Appendix is like required versus optional props. And. It calls out props as a discriminated type, which is, it&#39;s so good. Instead of having a props object with a bunch of optional values, doing it as a group of different, you know, fully formed Types. Uh, so like, you know, the example they give is like a status indicator. Instead of saying like data, you know, error, status as like optional props, just saying like, no, no, the success status has a status value of success, data with this type, whatever. Then the loading status has, says this That&#39;s so much better. Like that is absolutely a best practice. So, um, Good resource, I enjoyed it. it had a couple of, maybe it&#39;s just because its opinions align with my own opinions, but I thought it was a really good resource. Definitely recommend it. And also, more generally, on the subject of style guides, I think a style guide is a wonderful resource to bring into your company. [42:44]&lt;/p&gt;
&lt;p&gt;Uh, the most effective teams I&#39;ve been on have had a style guide document that was routinely updated. Just, uh, if. I think it&#39;s a really great anchor point for technical discussions. Like, if you have a technical argument with your team about, like, we should not be doing this, this is bad. Argument should have an output in the form of a PR to a style guide. I think that&#39;s really great. [43:05]&lt;/p&gt;
&lt;h2 id=&quot;inside-ecmascript-javascript-standard-gets-an-extra-stage&quot;&gt;&lt;a href=&quot;https://thenewstack.io/inside-ecmascript-javascript-standard-gets-an-extra-stage/&quot;&gt;Inside ECMAScript: JavaScript Standard Gets an Extra Stage&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Not new news, but a good resource. We&#39;ve talked briefly in previous months about the TC39 ECMAScript standardization process. You know, there&#39;s four stages, you can present an idea in stage one, then if you do X technical work, it gets to stage two. Stage three is like, basically standardized, but it&#39;s not shipped yet, and stage four is like, fully shipped. [43:27]&lt;/p&gt;
&lt;p&gt;There has been a problem over many years of a lot of things getting stuck at stage two. The transition between Stage 2 to Stage 3, and then like, oh, we found a new problem in Stage 3, so we gotta ship it back to Stage 2. Just like, the delta between Stage 2 and Stage 3 has turned out to be very, very large, in a way that has made it difficult to ship some of these proposals. [43:50]&lt;/p&gt;
&lt;p&gt;Just like, If it gets shipped back down to stage 2, that has some problems. So this article from The New Stack just did a really good job of explaining more of that history than the half assed summary that I just gave, and talks about the stage 2. 7, you know, sub stage that they added relatively recently. [44:09]&lt;/p&gt;
&lt;p&gt;It sounds like the gist of it is that if you&#39;ve written tests for your thing, then getting bumped back all the way back down to stage two, like, calls into question the validity of those tests. And stage 2. 7 resolves that problem to make it a little bit clearer about what that means. If you&#39;re curious about, you know, if there&#39;s like, if there&#39;s a, proposal that you&#39;ve been following and are curious about the standardization process. [44:30]&lt;/p&gt;
&lt;p&gt;Um, I just think this is a pretty solid resource explaining the history. [44:34]&lt;/p&gt;
&lt;h2 id=&quot;remix-the-web-from-mjackson&quot;&gt;&lt;a href=&quot;https://github.com/mjackson/remix-the-web/&quot;&gt;Remix The Web from mjackson&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; cool. I came across a fun project from Michael Jackson, from the Remix team called Remix the Web. Michael Jackson, Ryan Florence have been so involved in the web React, in the React ecosystem for so long. I have always. I&#39;ve respected them greatly as people who, like, they don&#39;t just try to solve a problem. [44:55]&lt;/p&gt;
&lt;p&gt;They try to solve a problem in a way that makes sense, given the primitives available on the web. So it&#39;s not just trying to do everything in JavaScript. Like a lot, a lot of Java, a lot of React libraries I&#39;ve seen, they end up, re solving a lot of problems in JavaScript that you might not need to if you just leaned on the web platform a little bit harder. [45:14]&lt;/p&gt;
&lt;p&gt;And some of that is because of aspirational support for React Native. If you solve it in JavaScript, then it can work not on the web platform. So like, there&#39;s trade offs to doing that. The trade off is that If you write in JavaScript, like, it&#39;s probably going to be slower. It&#39;s probably going to be worse in some way than if you can use a native, you know, web platform feature. [45:34]&lt;/p&gt;
&lt;p&gt;That is the backstory for why I&#39;m particularly interested in this. So, Michael Jackson is putting together a monorepo of modules that are narrowly scoped to do one thing and do that thing well. An example of this that I remember him talking about Years and years ago, in the context of React Router, is they built React Router on top of a primitive, on top of a wrapper they made around the history API. [45:59]&lt;/p&gt;
&lt;p&gt;So it&#39;s like, in trying to make a router, they found all of these weird, nasty edge cases around managing history, managing scrolls position, things like that, and found the platform feature to be highly deficient. as a, you know, mode of interacting with that. And so they made a wrapper abstraction around that to make it easier to deal with. [46:19]&lt;/p&gt;
&lt;p&gt;And so my understanding is that this Remix the web monorepo project is a bunch of those. So like in, if they find, A rough and grody, web platform feature, they write a wrapper around it, and into this repo it goes. So, uh, I&#39;m interested, it seems curious, it seems pretty cool to me, I have certainly found a lot of platform features that don&#39;t do quite what I want, so, uh, I&#39;m, yeah, I&#39;m paying attention to it. [46:41]&lt;/p&gt;
&lt;p&gt;Seems cool. [46:42]&lt;/p&gt;
&lt;h2 id=&quot;replacing-react-code-with-css-has-selector&quot;&gt;&lt;a href=&quot;https://www.reactiflux.com/posts/replacing-react-with-css&quot;&gt;Replacing React code with CSS :has selector&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And somewhat related to the idea of solving things with JavaScript, I saw a good blog post titled, Replacing React code with CSS colon has selector. The gist of it is, I&#39;ll pull a quote. Until recently, we couldn&#39;t select objects in the opposite direction of the CSS cascade. You know, CSS is top down. [47:06]&lt;/p&gt;
&lt;p&gt;You can get, you can start from the top and it gets more specific. So you can say, in all of these elements that are under this type of parent, style it this way. But you can&#39;t, you couldn&#39;t say previously, in this parent, if it has this type of element within it, style it this way. It was a, it was sort of a, you know, unidirectional control flow in that way. You could style descendants based on their parents, but you couldn&#39;t style parents based on their descendants. And the CSS Has Selector enables you to do that, which I have run into so many situations where I wanted to do that, and you just can&#39;t. You just couldn&#39;t. So, uh, you end up having to solve it with JavaScript to like add a little bit of state to communicate whether some element is within it. [47:51]&lt;/p&gt;
&lt;p&gt;And yeah, so the CSS has selected something I&#39;ve been wanting for a really long time, and I really appreciated that. I&#39;m seeing it framed as, here&#39;s all the things you can stop doing with React because of this CSS feature. And yeah, it&#39;s written by Nadia Makarevic. I hope I&#39;m not mispronouncing that. She also wrote a great book on React as well. Yeah, just really, I really enjoy her writing. She seems like a great writer and seems to pick good topics. I like it. [48:19]&lt;/p&gt;
&lt;h2 id=&quot;performance-optimization-strategies-for-large-scale-react-applications&quot;&gt;&lt;a href=&quot;https://old.reddit.com/r/reactjs/comments/1f6abzy/performance_optimization_strategies_for/&quot;&gt;Performance Optimization Strategies for Large-Scale React Applications&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; And last lightning round link, just going to call out a Reddit thread. I&#39;ve started, I set up a thing to pull in top posts from Reddit into the tech reads and news channel, and it&#39;s served us some good stuff. [48:31]&lt;/p&gt;
&lt;p&gt;I like it. But yeah, somebody asked the question, somebody asked about. Performance optimization strategies for large scale React applications and it got a decent amount of response. So I just thought that was a good, I just wanted to call attention to a cool thread full of a lot of opinions. It seemed like a good thing. [48:47]&lt;/p&gt;
&lt;p&gt;I didn&#39;t really see anything that like massively caught my eye as like, this is the right thing to do. But it did get quite a few Lengthy explanations of how some person or another has done performance optimizations at work. Uh, and that was always a big part of my work. My career has always, I&#39;ve put a lot of emphasis on performance optimizations. [49:08]&lt;/p&gt;
&lt;p&gt;Wanted to call that out. Go read it. It&#39;s good. [49:10]&lt;/p&gt;
&lt;h2 id=&quot;outro&quot;&gt;Outro&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl:&lt;/strong&gt; Cool. Alright, that&#39;s everything we got. thank you for joining us. We will be back on the last Wednesday of October here in the live stage or back in your podcast feed just as soon as we can, if that&#39;s how you listened. We gather sources from This Week in React, Bytes. [49:23]&lt;/p&gt;
&lt;p&gt;dev, React Status, Next. js Weekly. The React js subreddit here in Reactiflux and direct from those publishing articles. usually on Twitter, maybe on blue sky, maybe on RSS feed. Lots of things. If you see anything newsworthy, uh, definitely let us know in the tech News and reads channel of Reactiflux. [49:39]&lt;/p&gt;
&lt;p&gt;Or send it directly to me &lt;a href=&quot;mailto:hello@reactiflux.com&quot;&gt;hello@reactiflux.com&lt;/a&gt;, uh, with TMIR in the subject line. It&#39;s an acronym for the show. I read literally every email that comes in, even the spam. So yeah, if you&#39;ve got a hot tip, send it to me and I&#39;ll read it. if this is a show that you get value from and want to support, best way to do so is by submitting a review on Spotify, which helps us, Rank? [50:01]&lt;/p&gt;
&lt;p&gt;I&#39;d say stay in the rankings, but like, we don&#39;t rank, so, you know. Or, you know, post it on Twitter, send it to your co workers, stuff like that. Appreciate it. Thanks for listening. [50:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo:&lt;/strong&gt; Always fun to do this every single month. Thanks, for having me, and hopefully I&#39;ll see you all at some point in person, somewhere, maybe at the, uh, RNLConf. [50:15]&lt;/p&gt;
&lt;p&gt;Till next month.&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2024-09</link><guid isPermaLink="false">reactiflux-tmir-2024-09</guid><pubDate>Tue, 24 Sep 2024 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>This Month in React, August 2024: Matt Pocock taught us to make modules, RN is faster, iterator helpers are cool, JSR/Deno going sour</title><description>&lt;iframe src=&quot;https://podcasters.spotify.com/pod/show/reactiflux/embed/episodes/TMiR-2024-08-Matt-Pocock-taught-us-to-make-modules--RN-is-faster--iterator-helpers-are-cool--JSRDeno-going-sour-e2o0cor/a-abgsm69&quot; height=&quot;102px&quot; width=&quot;400px&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;h3 id=&quot;main-content&quot;&gt;Main Content&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#sponsored-by-infinite-red&quot;&gt;00:56&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://infinite.red/&quot;&gt;Sponsored by Infinite Red&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#react-19-progress&quot;&gt;01:53&lt;/a&gt;]&lt;/code&gt; React 19 progress:
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/facebook/react/pull/30800&quot;&gt;Initial “Suspense sibling pre-rendering” implementation work&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/facebook/react/pull/30684&quot;&gt;DevTools support for Server Components&lt;/a&gt; and &lt;a href=&quot;https://github.com/facebook/react/pull/30798&quot;&gt;Viewing Source of Server Components&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#react-native-075&quot;&gt;05:23&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactnative.dev/blog/2024/08/12/release-0.75&quot;&gt;React Native 0.75 released&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#how-to-create-an-npm-package&quot;&gt;07:30&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.totaltypescript.com/how-to-create-an-npm-package&quot;&gt;How To Create An NPM Package | Total TypeScript&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#httpsblogisquaredsoftwarecom202308esm-modernization-lessons&quot;&gt;08:13&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://blog.isquaredsoftware.com/2023/08/esm-modernization-lessons/&quot;&gt;Blogged Answers: My Experience Modernizing Packages to ESM&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#implementing-react-from-scratch&quot;&gt;10:36&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.rob.directory/blog/react-from-scratch&quot;&gt;Implementing React from scratch&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://pomb.us/build-your-own-react/&quot;&gt;Didact - build your own React&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.swyx.io/hooks&quot;&gt;Getting Closure on React Hooks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#vercel-adds-retention-periods&quot;&gt;12:04&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://vercel.com/changelog/configure-retention-periods-for-deployments&quot;&gt;Configure retention periods for deployments – Vercel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#waku-021-adds-server-actions-support&quot;&gt;13:03&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://waku.gg/blog/server-actions-are-here&quot;&gt;Waku 0.21 includes React Server Actions support&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://playfulprogramming.com/collections/react-beyond-the-render&quot;&gt;React Beyond the Render&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#redux-essentials-tutorial-updated&quot;&gt;14:35&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://redux.js.org/tutorials/essentials/part-1-overview-concepts&quot;&gt;Redux Essentials tutorial updated&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#ts-56-rc&quot;&gt;17:46&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-5-6-rc/&quot;&gt;Announcing TypeScript 5.6 RC&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#httpsgithubcomtc39proposal-iterator-helpers&quot;&gt;18:31&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/tc39/proposal-iterator-helpers&quot;&gt;Iterator Helpers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#expo-dom-released-&quot;&gt;19:17&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://docs.expo.dev/guides/dom-components/&quot;&gt;Using React DOM in Expo native apps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#nitro-modules&quot;&gt;24:51&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/mrousavy/status/1821165226546323930&quot;&gt;NitroModules&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/mrousavy/status/1821651719945953309&quot;&gt;Comparing to ObjC Turbomodules, it is significantly faster&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#jsr-and-deno-final-review--&quot;&gt;29:53&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://dbushell.com/2024/08/09/jsr-and-deno-final-review/&quot;&gt;JSR and Deno: Final Review 🚮 – David Bushell&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://deno.com/blog/http-imports&quot;&gt;What Deno Got Wrong About HTTP Imports&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://dbushell.com/2024/08/05/the-deno-package-paradox/&quot;&gt;The Deno Package Paradox – David Bushell&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#2024-stack-overflow-developer-survey&quot;&gt;35:45&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://survey.stackoverflow.co/2024/&quot;&gt;2024 Stack Overflow Developer Survey&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;-lightning-round-&quot;&gt;⚡ Lightning round ⚡&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#cocoapods-going-into-maintenance-mode&quot;&gt;39:53&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://blog.cocoapods.org/CocoaPods-Support-Plans/&quot;&gt;Cocoapods going into maintenance mode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#web-infra-devrslib-the-library-build-tool-powered-by-rsbuildmove-this-httpsgithubcomweb-infra-devrslib&quot;&gt;34:30&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/web-infra-dev/rslib&quot;&gt;web-infra-dev/rslib: The library build tool powered by Rsbuild.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#accident-forgiveness--the-fly-blog&quot;&gt;41:07&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://fly.io/blog/accident-forgiveness/&quot;&gt;Accident Forgiveness · The Fly Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#spatial-compute&quot;&gt;42:17&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://sunilpai.dev/posts/spatial-compute/&quot;&gt;spatial compute&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#how-airbnb-smoothly-upgrades-react&quot;&gt;43:25&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://medium.com/airbnb-engineering/how-airbnb-smoothly-upgrades-react-b1d772a565fd&quot;&gt;How Airbnb Smoothly Upgrades React&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#use-useid-instead-of-hand-making-ids&quot;&gt;44:34&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reacttraining.com/blog/use-useid-instead-of-hand-making-ids&quot;&gt;Use useId() Instead Of Hand-Making IDs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#common-sense-refactoring-of-a-messy-react-component&quot;&gt;45:42&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://alexkondov.com/refactoring-a-messy-react-component/&quot;&gt;Common Sense Refactoring of a Messy React Component&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#introducing-structured-outputs-in-the-api&quot;&gt;46:20&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://openai.com/index/introducing-structured-outputs-in-the-api/&quot;&gt;Introducing Structured Outputs in the API | OpenAI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#httpsblogsentryiosentry-is-now-fair-source-sentry-is-now-fair-source&quot;&gt;47:42&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://blog.sentry.io/sentry-is-now-fair-source/&quot;&gt;Sentry is now Fair Source&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://fair.io/definition&quot;&gt;Fair Source Definition&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;quick-hits&quot;&gt;Quick hits&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#job-market&quot;&gt;50:51&lt;/a&gt;]&lt;/code&gt; Job market
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://fred.stlouisfed.org/series/IHLIDXUSTPSOFTDEVE&quot;&gt;FRED data&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://layoffs.fyi/&quot;&gt;Layoffs.fyi&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#new-releases&quot;&gt;52:06&lt;/a&gt;]&lt;/code&gt; New releases
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://mui.com/blog/material-ui-v6-is-out/&quot;&gt;Material UI v6 is out now 🎉 - MUI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://v2.tauri.app/blog/tauri-2-0-0-release-candidate/&quot;&gt;Tauri 2.0 Release Candidate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://nx.dev/blog/nx-19-5-adds-stackblitz-new-features-and-more&quot;&gt;Nx 19.5 is here! Stackblitz, Bun, Incremental Builds for Vite, Gradle Test Atomizer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#upcoming-conferences&quot;&gt;54:20&lt;/a&gt;]&lt;/code&gt; Conferences
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.reactuniverseconf.com/&quot;&gt;React Universe 2024&lt;/a&gt; Wrocław, Poland Sept 5-6&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.jsconf.cl/&quot;&gt;JSConf Chile&lt;/a&gt; Santiago, Chile Sept 5-7&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://utahjs.com/conference&quot;&gt;UtahJS Conf&lt;/a&gt; Salt Lake City, UT, U.S.A. Sept 13&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://reactalicante.es/&quot;&gt;React Alicante&lt;/a&gt; September 19-21&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.jsconf.ie/&quot;&gt;JSConf Ireland&lt;/a&gt; Dublin, Ireland &amp;amp; Online Sept 25-26&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://2024.squiggleconf.com/&quot;&gt;SquiggleConf&lt;/a&gt; Boston, MA USA Oct 3-4&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.rendercon.org/&quot;&gt;RenderCon&lt;/a&gt; Nairobi, Kenya Oct 4-5&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.reactindia.io/&quot;&gt;React India&lt;/a&gt; Goa, India Oct 17-19, 2024&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.react.brussels/&quot;&gt;React Brussels&lt;/a&gt; Brussels, Belgium Oct 18&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://reactadvanced.com/&quot;&gt;React Advanced London&lt;/a&gt; London, UK Oct 25, 28&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-08#outro&quot;&gt;57:09&lt;/a&gt;]&lt;/code&gt; Outro&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Hello folks, welcome, thanks for joining us. This is the August edition of This Month in React, where we recap and digest recent developments in the ever evolving React and web ecosystem. We&#39;re coming to you live from Reactiflux, the place for professional React developers. We&#39;re supported by Infinite Red, a consultancy that exclusively works in React Native. but more on them later. [00:22]&lt;/p&gt;
&lt;p&gt;Hello, I&#39;m Carl. Uh, I&#39;m a staff product developer and freelance community manager, here at Reactiflux mostly, where I run community programs like these events and the star helpers, and build tools to help keep the community operating. [00:34]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; I&#39;m Mark. most people know me as the Redux maintainer or that guy with the Simpsons avatar, and I am currently an engineer at Replay. [00:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; And I am Mo. I head the mobile team at Theodo, which is another React Native and just generically tech consultancy. I&#39;m also the organizer of the React Native London community and super excited to be here as always. [00:56]&lt;/p&gt;
&lt;h2 id=&quot;sponsored-by-infinite-red&quot;&gt;Sponsored by Infinite Red&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; We are brought to you by Infinite Red, our main sponsor right now. They are an expert React Native consultancy that I am quite pleased to be a partner with because they are like authentically showing up to support the React Native and React ecosystems in like really meaningful ways. [01:12]&lt;/p&gt;
&lt;p&gt;They organize conferences, they host the largest React Native podcast, they publish the largest React Native focused newsletter, and they&#39;re Just really excited to work with them. Other than being great people who do great things in the community, they also, well, more precisely, they&#39;re a team of about 30 people, mostly developers with mostly greater than 10 years of experience. [01:33]&lt;/p&gt;
&lt;p&gt;So they actually work with your team to help you develop an expertise in building React Native. So if you are. Building something with React Native and need a little help hitting the ground running on that, definitely reach out to them because they are great people who will help you do good work. Cool. [01:51]&lt;/p&gt;
&lt;p&gt;All right. Mark, you want to start us off? [01:53]&lt;/p&gt;
&lt;h2 id=&quot;react-19-progress&quot;&gt;React 19 progress&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; So, last couple sessions, we talked about how React 19 had been delayed due to what has been known as Suspense Gate, where the React team had made a change last fall to pre rendering behavior for multiple nested suspense components. [02:07]&lt;/p&gt;
&lt;p&gt;So that instead of doing them in parallel, it effectively does them in serial. And people complained and said, we rely on these existing behavior, you&#39;re going to make a number of people&#39;s apps slower. And there was an outcry, and the React team had been ready to release React 19, and instead they backed off and said, &quot;okay, yes, we see this is a big deal, we are going to figure out how to change the behavior.&quot; [02:30]&lt;/p&gt;
&lt;p&gt;But, the original PR that got merged was pretty complex, they&#39;ve continued iterating on the internals. So it&#39;s not nearly as simple as revert the PR, it&#39;s we need to iterate further on the internals and figure out how to re implement some of the older behavior on top of the newer code changes. [02:48]&lt;/p&gt;
&lt;h3 id=&quot;httpsgithubcomfacebookreactpull30800&quot;&gt;&lt;a href=&quot;https://github.com/facebook/react/pull/30800&quot;&gt;https://github.com/facebook/react/pull/30800&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; There&#39;s been a thread where people have been trying to ask for updates, and the last comment in that thread a few weeks ago was, well Stay tuned to this thread for updates, but no indication of actual work. And so finally, within the last week and a half, I&#39;ve seen a couple PRs where there is actual evidence of work being done on this. [03:07]&lt;/p&gt;
&lt;p&gt;Uh, Andrew Clark filed one PR that&#39;s added a feature flag that would later be added to gate this upcoming work. And then he just put up a PR a couple days ago with what looks like the initial implementation work for this Suspense sibling pre rendering behavior. I&#39;m not sure if it&#39;s basically just this one PR, if he&#39;s working to split it into further PRs, or what the actual status is, but there is an actual PR with actual progress, and no idea how long it&#39;ll be before that gets merged, how long things will stay in beta or RC, but there is public evidence that they are actually pushing forward on this, and if you look at the code, you can see some of the complexity of the implementation work, like it&#39;s not just You know, one flag that gets turned on and off. It&#39;s a bunch of additional logic internally to make the older behavior possible. [03:57]&lt;/p&gt;
&lt;h3 id=&quot;httpsgithubcomfacebookreactpull30684&quot;&gt;&lt;a href=&quot;https://github.com/facebook/react/pull/30684&quot;&gt;https://github.com/facebook/react/pull/30684&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;And meanwhile, I&#39;ve been very interested in this part. Sebastien Mårkbage had been spending, you know, really most of his last couple of years working on the server side aspects of React. Server components and a lot of the HTML, you know, related pre rendering work, but he&#39;s actually turned his attention to the React DevTools in the last month and a half. [04:17]&lt;/p&gt;
&lt;p&gt;And he&#39;s just been putting up a whole series of PRs, refactoring the guts of the React DevTools and making a whole bunch of improvements. And so two of them in particular, he&#39;s actually implemented what looks like React DevTools support for showing server components as part of the tree in the React DevTools. [04:37]&lt;/p&gt;
&lt;h3 id=&quot;httpsgithubcomfacebookreactpull30798&quot;&gt;&lt;a href=&quot;https://github.com/facebook/react/pull/30798&quot;&gt;https://github.com/facebook/react/pull/30798&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; And along with that, what looks like a feature for being able to view the source of server components from React DevTools on the client side. This is something that I had always wondered, like, when are they going to get around to doing this? Like, we&#39;ve supposedly shipped this production ready feature, and yet there&#39;s no way to really debug or view server components. [04:56]&lt;/p&gt;
&lt;p&gt;So to me this is a pretty big deal. [04:58]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, definitely. Dev tool support has always been so good in React that calling it, you know, production ready when there isn&#39;t that dev tool support seems a little surprising. So yeah, cool to see that coming. I&#39;m a little surprised to see that they are actually able to get like the source of server components into the client seems cool. [05:16]&lt;/p&gt;
&lt;p&gt;That PR is only a hundred lines added, 35 lines removed, so that seems very easy if they had a lot of support. [05:23]&lt;/p&gt;
&lt;h2 id=&quot;react-native-075&quot;&gt;&lt;a href=&quot;https://reactnative.dev/blog/2024/08/12/release-0.75&quot;&gt;React Native 0.75&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; So, next up, React Native version 0. 75 has been released. Now, this has been one of the most sort of subtle and quiet releases of React Native I&#39;ve seen in a very long time. There&#39;s a lot of sort of minor improvements under the hood that&#39;s happened. [05:37]&lt;/p&gt;
&lt;p&gt;The first thing is that we have a new version of Yoga. So, Yoga is the layouting engine in React Native that basically handles Your JavaScript code being translated to native layer drawing on the canvas. And so it&#39;s now got support for, so, so recently a couple of versions ago, we got support for gap when you&#39;re dealing with flex like layouting, and now there&#39;s also percentage value support for for GAP as well. So it&#39;s getting closer and closer to what you can do on the web. Another sort of update within this version is that you&#39;ve got new architecture support that&#39;s getting more and more mature, and so you see that some of the libraries that previously didn&#39;t have new architecture support are getting more and more. [06:12]&lt;/p&gt;
&lt;p&gt;Positive support within the new architecture paradigm. And also, um, what you see is that tools where you can see the list of dependencies that you have now also mark whether or not new architecture is supported within it. It seems like we&#39;re kind of gearing towards finally having the new architecture as a default with the next release of React Native, which would be a pretty big deal. [06:31]&lt;/p&gt;
&lt;p&gt;But again, we&#39;ve been saying that for a little while, so I&#39;m not holding my breath, but I&#39;m very, very cautiously optimistic about that. And then the last big thing within this version is that a couple of versions ago, again, they announced that you should use a framework and they suggested Expo as kind of the only option really that&#39;s, that&#39;s available currently. [06:46]&lt;/p&gt;
&lt;p&gt;And so we see a few movements that are coming out of that announcement. One of which is that the CLI tool React Native init is now being sunsetted in some capacity and moved to a community CLI. So. By the end of the year, so December 31st onwards, when you run the commands react native init, they just will no longer work, um, and you&#39;ll be guided either to use expo or to use the community fork of the CLI that will be maintained by the community. [07:11]&lt;/p&gt;
&lt;p&gt;But this is kind of a, let&#39;s just move it to the side. And wait for it to reach its demise type of thing. Which is, that&#39;s fine. That&#39;s kind of the direction that it&#39;s going towards. But it&#39;s just something to keep in mind though. [07:21]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, sure. Shades of create react app sunsetting. Commonly used tool that&#39;s just gonna slowly fade away. [07:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Yes, exactly. Very much so. [07:30]&lt;/p&gt;
&lt;h2 id=&quot;how-to-create-an-npm-package&quot;&gt;&lt;a href=&quot;https://www.totaltypescript.com/how-to-create-an-npm-package&quot;&gt;How to Create an NPM Package&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Alright, Matt Pocock, who&#39;s probably best known for a lot of his articles and courses on how to use TypeScript properly, has actually put together something adjacent and published a very long, detailed article on how to properly create and publish a package on NPM. This is an extremely detailed and very step by step guide that goes all the way from, you know, literally create a new Git repo to creating a package. json file, some of the fields you would want to define in there, setting up tools like TypeScript and Prettier, and one of the more complicated pieces, how to actually define the JavaScript files that are used in terms of the package exports. [08:13]&lt;/p&gt;
&lt;h3 id=&quot;httpsblogisquaredsoftwarecom202308esm-modernization-lessons&quot;&gt;&lt;a href=&quot;https://blog.isquaredsoftware.com/2023/08/esm-modernization-lessons/&quot;&gt;https://blog.isquaredsoftware.com/2023/08/esm-modernization-lessons/&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Now, I spent a very large portion of 2023 trying to figure out a lot of this stuff for myself, because in today&#39;s JavaScript ecosystem, figuring out how to publish packages that properly support things like both ES modules and common JS modules is an absolute nightmare. [08:32]&lt;/p&gt;
&lt;p&gt;And there&#39;s all kinds of different permutations and different runtimes and environments and other things that you&#39;re going to run into. This guide isn&#39;t going to cover every different use case you&#39;ll run into, but it is a very, very good detailed look at a lot of the common things you would want to do to set up a reasonably standard package setup in today&#39;s environment. [08:52]&lt;/p&gt;
&lt;p&gt;So definitely worth looking at. [08:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, definitely. I have needed something like this many times. I&#39;ve always kept track of generally each change in the ecosystem, but then when I, you know, actually sitting down and needing to write a new package and remembering which changes happened, what the current state of the best practice for setting up a new package are is always Very difficult. [09:12]&lt;/p&gt;
&lt;p&gt;So I&#39;m really excited to have this. It&#39;s, I think your post from 2023 was like the first time I had seen somebody try to articulate what best practices for publishing a, you know, like professional quality NPM module looked like, and it&#39;s so weird. It&#39;s gotten so strange. [09:29]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; It is so painful and so bizarre. [09:31]&lt;/p&gt;
&lt;p&gt;Now I will, I will say I will say like a lot of the pain comes from Node, not allowed to import CommonJS into ESM, I can never remember which way it is. Um, like, you could do A into B, but not B into A. I just don&#39;t remember which way the limitation was. But the last couple versions of Node 22, I believe they&#39;ve finally started to implement valid support for going both ways without any errors. [09:59]&lt;/p&gt;
&lt;p&gt;I can&#39;t remember if it&#39;s behind a flag, but at some point that version is going to become widely used enough that we can maybe, in five years, start to go past this. [10:10]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Hopefully. Yeah, I had actually just seen a tweet somebody put out complaining about a similar thing where, I think they called it a cardinal sin of CommonJS, but it was conditional exports. [10:20]&lt;/p&gt;
&lt;p&gt;You could put what you exported behind a flag. [10:23]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yeah, I think that was probably Ketanaito, the author of MSW. [10:27]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Correct. Arya in the chat saying, can&#39;t import ESM from CommonJS, but can import CommonJS from ESM. [10:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yep, that sounds right. Yep. [10:36]&lt;/p&gt;
&lt;h2 id=&quot;implementing-react-from-scratch&quot;&gt;&lt;a href=&quot;https://www.rob.directory/blog/react-from-scratch&quot;&gt;Implementing React from Scratch&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; So I&#39;ve always been a very big fan of articles that try to build a miniature version of a real library from scratch and kind of walk you through, here&#39;s the kind of functionality, here&#39;s what it actually looks like internally. Here&#39;s some of the pieces that you might consider. These are really, really good for both understanding the mental model and you know, kind of peeling away the black box and like understanding what&#39;s actually going on inside of these libraries. So I&#39;ve seen a few different good articles along that line for both, you know, React and Redux and, and, you know, bundlers and other tools over the years. [11:11]&lt;/p&gt;
&lt;p&gt;So someone named Robbie Prusin just put out a really, really good new example of this implementing React from scratch that walks all the way through the process of creating elements um, modifying the DOM, putting, and putting all the pieces together. Really, really good post. Definitely recommended. And so, along that line, two other earlier posts that I&#39;d recommend. The one I&#39;ve pointed people to for me, for years, was from Rodrigo Pombo back in 2019, Build Your Own React. And then swyx has a classic post on how React hooks work by building your own version of hooks in 30 minutes. [11:45]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, also a huge fan of this kind of, like, first principles, understand how it works by making your own miniature version of it. Reminds me of, like, in the physical world, building a model. You&#39;re not going to use it for something for real, necessarily, but this gives you a really clear mental model of what&#39;s going on under the hood. [12:04]&lt;/p&gt;
&lt;h2 id=&quot;vercel-adds-retention-periods&quot;&gt;&lt;a href=&quot;https://vercel.com/changelog/configure-retention-periods-for-deployments&quot;&gt;Vercel adds retention periods&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I&#39;m going to throw this in. This is maybe a lightning round tier post, but I&#39;ll show you right now. Vercel announced that they are going to allow you to configure retention periods for your deployments. I saw Guillermo Rauch post on Twitter about this and saying it was something that people have been requesting since he released, now, the precursor to Vercel. [12:25]&lt;/p&gt;
&lt;p&gt;So this is a feature that goes back nearly 10 years of people requesting it. And just like generally, retention periods, I feel like they&#39;re underrated. I feel like they&#39;re super powerful and just really good for a lot of things. Being able to configure how long data sticks around, I think, is a bit of a superpower. [12:42]&lt;/p&gt;
&lt;p&gt;It&#39;s one of the things that, like, once you figure out how to make use of it, it just lets you do a lot of really good, powerful things. I have an affinity for them because my first full time job was doing tech support for a backup server, and so learning retention periods and how the retention policies were structured was a big part of my early tech career. I think it&#39;s cool. It seems good. [13:03]&lt;/p&gt;
&lt;h2 id=&quot;waku-021-adds-server-actions-support&quot;&gt;&lt;a href=&quot;https://waku.gg/blog/server-actions-are-here&quot;&gt;Waku 0.21 adds Server Actions support&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; All right. So we&#39;re continuing to see folks try to work on building out React server component support in various frameworks. Uh, you know, Redwood&#39;s done some work. The remix folks are trying to work on things and one framework that&#39;s been plugging away kind of quietly is Waku, which is the brainchild of Daishi Kato, the author of Jotai and Valtio and maintainer of the Zustand library. [13:27]&lt;/p&gt;
&lt;p&gt;They have just released version 0. 21, which now includes support for server actions. We&#39;re still at a point where Next is really the only, like, full, you know, quote unquote, production ready implementation of React server components and server actions. But it&#39;s good to see that other frameworks in the ecosystem are getting closer. [13:47]&lt;/p&gt;
&lt;p&gt;While I don&#39;t know the overall status of WACU, like, it feels like it&#39;s starting to get a lot of the pieces fleshed out. And, you know, worth at least looking at. I mean, probably not ready to use in production yet. But it&#39;s an alternative approach to server components that&#39;d be worth investigating. [14:02]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Quite interesting that on their website, when you scroll down at the very bottom, it has a big sponsored by Vercel. Which seems quite funny, given that it&#39;s somewhat a competitor to Next in some capacity. [14:13]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; I was talking with Tanner Linsley and he said that like, Vercel has actually been doing a lot of work to both, like they, they sponsored, React Rally, the conference at the last minute, and they&#39;re even sponsoring some of the work on TenStack Start, I believe. [14:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, they are definitely all over the place sponsoring all sorts of stuff. So I guess they&#39;re just generally investing in the React ecosystem. Here for it. Let&#39;s distribute VC money. [14:34]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yeah, very much so. [14:35]&lt;/p&gt;
&lt;h2 id=&quot;redux-essentials-tutorial-updated&quot;&gt;&lt;a href=&quot;https://redux.js.org/tutorials/essentials/part-1-overview-concepts&quot;&gt;Redux Essentials tutorial updated&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Okay. Next up is an item that is very near and dear to my heart because this has taken me like the entire calendar year in one form or another. [14:44]&lt;/p&gt;
&lt;p&gt;In fact, I think I actually published this, might&#39;ve even been like the day after our last recording in July, but you know, hey. So Redux Toolkit came out in the fall of 2019. In the first half of 2020, I wrote a brand new tutorial for the Redux docs that I dubbed the Redux Essentials Tutorial. [15:02]&lt;/p&gt;
&lt;p&gt;And it was about 25, 000 words, and it covered how to use Redux Toolkit to build a plausibly realistic example app. And it taught Redux Toolkit for the first time as the default way to use and build Redux applications. And so that has been the primary Redux tutorial for the last four plus years. [15:23]&lt;/p&gt;
&lt;p&gt;But it was starting to get a little bit outdated in a couple ways. While I still think that the original version of the tutorial was, frankly, a really good piece of work and something I&#39;m very proud of. I saw in retrospect that I could have done a better job explaining various, you know, Redux concepts. So, at the start of this year, I set out to do a pretty thorough modernization and update pass on that tutorial. [15:46]&lt;/p&gt;
&lt;p&gt;I did the work to convert the existing example application to TypeScript. Start to finish every single commit. And then I added some additional features and examples to demonstrate newer Redux Toolkit features that did not exist in 2020. From there, I went through and did a very thorough update on all the content. [16:06]&lt;/p&gt;
&lt;p&gt;Improved a lot of the explanations, moved pieces around. Ended up adding about 9, 000, close to 10, 000 words of overall content, not counting the content that got changed and shifted and moved around. So, a month ago, I published the finished update to this Redux Essentials tutorial. So, it is now TypeScript start to finish. [16:27]&lt;/p&gt;
&lt;p&gt;Which is something I spent a lot of time, I had spent time debating it out in the past. You know, I&#39;ve always been concerned that adding TypeScript into the mix this early is going to add more learning overhead. [16:38]&lt;/p&gt;
&lt;p&gt;And that&#39;s still the case. But ultimately TypeScript adds so much benefit, and it&#39;s how we want people to learn. to use Redux, that I decided it was worth it to just do the whole tutorial in TypeScript all the way through and try to explain the pieces as I went. So, it&#39;s live, uh, it&#39;s now up to like 50, 000 words, it is incredibly comprehensive, covers effectively all the APIs in Redux Toolkit and explains Enough about how things work that you can follow through and use it and understand most of the why. [17:11]&lt;/p&gt;
&lt;p&gt;It doesn&#39;t go into how things work internally. For that, we still have kind of the lower level Redux fundamentals tutorial that explains, you know, like, how does a Redux store work, or how do some of the pieces connect together. But this is the way we want people to use Redux, and, you know, I&#39;m pretty I&#39;m biased, but I think it&#39;s the best way for people to learn Redux. [17:32]&lt;/p&gt;
&lt;p&gt;So I am very excited to have that out. It took me multiple months of effort to try to put that together. [17:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Nice. Cool. 50, 000 words. You could sell that as a book. [17:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Pretty much. [17:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; all right. I will pull us onto our next one. [17:46]&lt;/p&gt;
&lt;h2 id=&quot;ts-56-rc&quot;&gt;&lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-5-6-rc/&quot;&gt;TS 5.6 RC&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; TypeScript 5. 6 has a release candidate. Seems cool. Just going to call out a couple of cool things. [17:52]&lt;/p&gt;
&lt;p&gt;Something that caught my eye was the disallowed nullish and truthy checks. It&#39;s practically a linting rule, really. It just helps catch stuff that are pretty obviously bugs. Like, a good example they called out was if you accidentally switch the equals and the greater than in the, you know, trying to do a greater than equal comparison. [18:10]&lt;/p&gt;
&lt;p&gt;Oops, that&#39;s an arrow function, which is always going to be truthy. And so now TypeScript will give you an error for that. This expression is always truthy, you probably didn&#39;t mean to put that in an &lt;code&gt;if&lt;/code&gt;. That just seems pretty useful. They talk a bit about other situations where they do allow, you know, constant expressions, but truthy expressions will now warn, which seems really great. [18:31]&lt;/p&gt;
&lt;h3 id=&quot;httpsgithubcomtc39proposal-iterator-helpers&quot;&gt;&lt;a href=&quot;https://github.com/tc39/proposal-iterator-helpers&quot;&gt;https://github.com/tc39/proposal-iterator-helpers&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I also liked the iterator helpers. It looks like they&#39;re pulling in a stage three proposal for, you know, ECMAScript, JavaScript, which I&#39;m a little surprised by. You know, I, I thought that they generally wait for things to ship. [18:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Stage three has usually been their target. [18:45]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, okay, cool. Good to know. But yeah, iterator helpers, it looks like that feature generally looks to be a recognition that people want to use iterables as if they were arrays, and so it adds a lot of array type, you know, functions to iterables. [19:01]&lt;/p&gt;
&lt;p&gt;So you can do things like map and filter and things like that on them. So that&#39;s super great. I&#39;d love to see TypeScript adding support for that because that looks really great. I have tried to do that a number of times and been really annoyed that I had to spread it into an array first before using map. [19:16]&lt;/p&gt;
&lt;p&gt;So that&#39;s, I&#39;d love to see it. [19:17]&lt;/p&gt;
&lt;h2 id=&quot;expo-dom-released-&quot;&gt;&lt;a href=&quot;https://docs.expo.dev/guides/dom-components/&quot;&gt;&lt;code&gt;expo-dom&lt;/code&gt; released &lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; So, let&#39;s switch gears a little bit into some React Native news. So, a couple of cool things. First off, Expo DOM has been announced. So, now you&#39;ve got a whole bunch of different ways to do code interoperability between web and mobile, uh, and all things in between. So, you now have React Strict DOM, there&#39;s React DOM, there&#39;s Expo DOM. [19:36]&lt;/p&gt;
&lt;p&gt;It&#39;s getting very confusing very quickly. But, really, the gist of all of this is, Expo&#39;s been really pushing this narrative of you want to be able to use a single code base to target web and mobile at the same time. Part of the challenge that will come up with a lot of people will be, well, I already have my web code base and I already have my React Native code base and combining these two together is going to be a bit of a tough egg to crack when you&#39;re dealing with a massive length in migration. [19:58]&lt;/p&gt;
&lt;p&gt;This is one of the things that they want to target with this, which basically is that they want to allow you to use DOM Primitives directly within, your React Native applications. So you put a use DOM directive at the very top of your file, and then that basically means you can start using DOM in there, and what it does under the hood is it basically constructs a web view and renders those DOM elements instead of real native elements. [20:17]&lt;/p&gt;
&lt;p&gt;Now this is quite powerful because it kind of means you can mishmash a little bit of DOM in places where you already have some code that&#39;s using React DOM inside of a React Native code base. And in theory, if your code is responsive and behaves well on mobile web, then it&#39;ll kind of work as you expected within your React Native app. [20:33]&lt;/p&gt;
&lt;p&gt;There is a lot of disclaimers within this in terms of how your data flow works and all of the different things that come with that, you can&#39;t, you know, render children within it. It&#39;s very primitive rendering at the moment. But, it&#39;s a path towards migrations, if you so need it, desperately. It&#39;s not a long term thing, I think it&#39;s a very short term, temporary, here&#39;s how we just get a fully functioning app out in the meantime while we slowly add native views into our application. [20:56]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Ah, interesting, okay. This is a stopgap they&#39;re not necessarily looking to have people build full React Native applications using web primitives. [21:06]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Thanks. It&#39;s more of a migration thing. So, you know, I&#39;ve worked on a number of apps. In fact, I&#39;m working on one right now where it&#39;s a hybrid app. [21:13]&lt;/p&gt;
&lt;p&gt;A lot of companies will have hybrid apps where they have some of it in React native, that&#39;s native views. Some of it are web views and you have to use a web view inside of the native app to render some of the screens because, you know, they didn&#39;t have the time to build that out in a native fashion. So this is kind of just streamlining that process a little bit. [21:28]&lt;/p&gt;
&lt;p&gt;I think it&#39;s just to try to entice people to come over to the dark side of the native world, and then hold them hostage afterwards. Jokes aside with all of this though, I think it&#39;s a, it is a migration path. It is very experimental, it&#39;s nowhere near production ready, it&#39;s just being brewed as we speak this month, um, and they&#39;ve released a bunch of demos and it&#39;s now officially on their docs, but it&#39;s very much with all of the disclaimers of you shouldn&#39;t use this yet. [21:49]&lt;/p&gt;
&lt;p&gt;And it comes with a whole bunch of limitations. [21:50]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Reminds me of Cordova and things like that. I&#39;m a little surprised to see Expo doing something along those lines. I thought we had generally agreed that just like flapping a web view in a native app was not great, but okay, cool. [22:01]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; So just to make sure I follow the technical train here. [22:03]&lt;/p&gt;
&lt;p&gt;So roughly speaking, you write a line or two of code that looks like it&#39;s just rendering. Another React component, but under the hood, it&#39;s actually creating a whole web view, attaching it to the native layout, injecting the JavaScript code into the web view, and then actually rendering a web component, a React DOM component inside of that, right? [22:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Exactly. That is exactly what it&#39;s doing, yeah. Layers of abstractions on top of layers of abstraction. So I think this will be around as a migration path. I think this is a small side project that they&#39;re just whipping up to make it easier for people to adopt the universal app paradigm, which is, you know, I want to have a single code base for all of my platforms. [22:40]&lt;/p&gt;
&lt;p&gt;I think you really want to focus on React strict DOM if you&#39;re thinking about the long term of your app, if you want to go down the route of having a universal app. This is just a temporary stopgap if you happen to have code in the web world that you want to easily use and migrate over to the native world. [22:56]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Sure. Yeah, right. I guess I still had the strict DOM in my head as you started talking about this and it threw me off. Definitely a, uh, a subtle but significant boundary between those things. Okay. Interesting. [23:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; And to recap for people who might not have listened to the last couple, last few episodes, React strict DOM, on the other hand, is adding more web like API capabilities to the React Native platform. [23:19]&lt;/p&gt;
&lt;p&gt;So you write more code that looks like React DOM for the web, and it makes your React Native code basically read as if it were web code. [23:27]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Because the, the current status, and I guess maybe going a little bit further back into the context of this, we&#39;ve had React Native Web for a long time, which allows you to basically take React Native code and run it through almost like a translation layer, uh, with almost like an interoperability layer that lets you render those native views and native texts on the web. [23:44]&lt;/p&gt;
&lt;p&gt;So this is, this has been around for years. It&#39;s like pretty much been there since the launch of React Native a few months after they kind of, somebody launched this project who now works at Meta. But that was a very big bloated piece of, of a dependency that you would add to your web app. So then React Strict on was like, can we, can we kind of find a way that&#39;s in the middle that uses the web based APIs, also makes it easier for web developers to come into the React Native world, translates them down to native views. [24:06]&lt;/p&gt;
&lt;p&gt;But also has a minimal overhead to use that same code on the web. And so, this is pretty much the exact opposite of that, but it&#39;s sort of a temporary stopgap. [24:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, interesting. Okay, so if, like, React Native Web from, you know, ye olde days was asking web developers to write code like React Native developers And React strict DOM is allowing web people to write what looks like web code, [24:31]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Native code that looks like web code. And then this is this, eh, let&#39;s just shove a web view in the middle of our, all of our native views. [24:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; They&#39;re covering all their bases. They&#39;re trying everything and seeing what works best. Cool. All right. [24:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Where there&#39;s a will, there&#39;s a way. [24:45]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; We&#39;ve got a lot of wills going on. [24:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; There&#39;s many wills going on here. [24:50]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Neat. Very neat. [24:51]&lt;/p&gt;
&lt;h2 id=&quot;nitro-modules&quot;&gt;&lt;a href=&quot;https://x.com/mrousavy/status/1821165226546323930&quot;&gt;Nitro Modules&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Let&#39;s move on to Nitro modules because this has been a big thing in the React Native ecosystem in the last month. Again, a little bit of context because I think this will help everyone kind of understand and set the scene. So, a few years ago with the old architecture, when you wanted to access native layer code, you would need to use a native module. That used something called the bridge and the bridge would basically serialize some JSON or some, some sort of JavaScript objects, send it across a bridge as we like to call it. And that data could be used by the native layer to be interacted and run some native operations. And that&#39;s how sort of the JavaScript layer and the native layer used to communicate with each other. [25:23]&lt;/p&gt;
&lt;p&gt;That bridge caused a lot of issues because you had sort of this one pathway to communicate between the native layer and the JavaScript layer and it caused slow apps and many issues and a lot of library maintainers were incredibly frustrated because it meant that if you use their library in a certain way, it would completely bog down people&#39;s apps and they were getting a bunch of issues around how their library is slow or React Native in general as being slow. [25:43]&lt;/p&gt;
&lt;p&gt;So then the new architecture tried to create a better way to interact between the JavaScript layer and the native layer. And so that&#39;s where TurboModules came into place. So the idea with TurboModules was you would create a TypeScript interface to define the type of functions and values that you want to communicate between the JavaScript layer and the native layer. Then it would run through some C code gen to generate the connection layer between the native layer and the JavaScript layer. And then you could write native layer code and use that with what they call turbo modules, which was the name for it. [26:13]&lt;/p&gt;
&lt;p&gt;That was a much more neat and streamlined way to communicate between the JavaScript layer and the native layer. That&#39;s a massive step up from the old architecture, and now Mark Roosevee, who is one of the sort of like people in the React Native ecosystem who&#39;s known to create some really cool native layer libraries that work really well, has now been playing around with this idea of creating an even faster way to communicate between JavaScript and the native layers and to write native layer code as, as a React native developer. [26:39]&lt;/p&gt;
&lt;p&gt;And he&#39;s calling it Nitro Modules and he&#39;s created a lot of fun puns out of them. For example, if you wanted to generate a Nitro Module, you run Nitrogen, which is, uh, quite fun. Um, [26:49]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Oh, my god. [26:50]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; It&#39;s great. [26:51]&lt;/p&gt;
&lt;p&gt;There&#39;s, this isn&#39;t really public at this, it&#39;s not very clear a lot of the stuff that works under the hood. I think it&#39;s getting released and drip fed as we kind of speak this month, but just some comparisons that he&#39;s run with Objective C based turbo modules compared to Nitro modules is that it&#39;s apparently like 10x faster, so 220 milliseconds in a benchmark that he ran versus 20 milliseconds. There&#39;s also another way that the Expo team have created Expo modules. [27:16]&lt;/p&gt;
&lt;p&gt;We&#39;re going, we&#39;re seeing a trend here, right? Like the React Native Ecosystem likes to invent and reinvent different ways of doing the exact same thing, whether it&#39;s with the strict DOM stuff or with this, but anyway. So then you&#39;ve got Expo modules, which is slower to Turbo modules. And then now there&#39;s Nitro modules, which is apparently the fastest of them all. [27:31]&lt;/p&gt;
&lt;p&gt;So we&#39;ll see how this plays out. It&#39;s yet another approach of trying to handle this native to JavaScript communication. We&#39;ll see if it, if it actually pans out and how it, how it goes on, but promising signs at the beginning, and a lot of people seem very excited about it. [27:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, super neat. Throwing a bunch of shit at the wall and seeing what sticks, trying a bunch of different approaches. [27:49]&lt;/p&gt;
&lt;p&gt;I feel like that naturally flows out of where React Native sits in the world because it has iOS, Android, web, macOS, Windows, well, you know, it gets touched by so many different developers. And so I feel like where web and React can get a little bit like monoculture a little bit just because it&#39;s, you know, there&#39;s the one true way of doing it, but I feel like that sort of variety of approaches maybe flows a little bit more naturally out of React Native as a kind of a, I don&#39;t know, kind of a natural melting pot of developers. I appreciate that. [28:21]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Polyglot development. [28:22]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, sure. [28:23]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; It feels like React in the early days, rather than what React is today. [28:26]&lt;/p&gt;
&lt;p&gt;Like, I&#39;ve been in between the web and the mobile ecosystem. And, you know, I feel like the React ecosystem has reached a point of maturity, and there&#39;s less experimentation going on, it feels. Whereas with the React Native ecosystem, there&#39;s a bunch of people working on 3D rendering at the same time, and then there&#39;s a bunch of people working on web support at the same time, and then there&#39;s a bunch of other people working on native to, you know, JavaScript interfacing all together. I think it brews, a healthy amount of competition to try to get the best solution out of there. [28:52]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, thriving ecosystem in the biological sense. It&#39;s uh, evolution, survival of the fittest, many, many competing strategies and competition with each other. It&#39;s cool to see work on the bridge happening, because, I haven&#39;t done a ton of serious development with React Native, but that has always been a huge bottleneck. [29:10]&lt;/p&gt;
&lt;p&gt;I mean, you know, anytime you have a lot of data flowing through one thing, like, it&#39;s gonna be a challenge, it&#39;s gonna be a limiting factor if it&#39;s not fast. Interesting to see this come out of CodeGen from using TypeScript as a schema, it sounds like. It sounds familiar to my extremely vague understanding of things like protobuffers, where, like yeah, if you&#39;re just sending JSON, There&#39;s only so much you can optimize it because JSON as a data structure is just slower to parse. [29:37]&lt;/p&gt;
&lt;p&gt;You know, you don&#39;t have a schema, you don&#39;t know what it looks like, so you have to figure out what it looks like as you go. So starting from a schema, starting from a specification of what the data contains, and then using that to generate like ultra fast native code makes a lot of sense to me. That&#39;s, that&#39;s pretty cool. [29:53]&lt;/p&gt;
&lt;h2 id=&quot;jsr-and-deno-final-review--&quot;&gt;&lt;a href=&quot;https://dbushell.com/2024/08/09/jsr-and-deno-final-review/&quot;&gt;JSR and Deno: Final Review 🚮 &lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; All right. I will bring us on. Just a couple thoughts on JSR and Deno. I think Mark brought these up and had them cross my radar, but David Bushell, who is a WordPress developer mostly, wrote a couple of blog posts that I think are pretty It&#39;s a pretty rough indictment of the JSR, you know, module ecosystem and generally the path that Deno has taken through module, you know, managing modules, package dependency. [30:20]&lt;/p&gt;
&lt;p&gt;One of the criticisms that he brings up about Deno in general is as a, you know, okay, it&#39;s a venture backed company. We&#39;ve talked a little bit on this show before about venture backed open source projects. One of the criticisms that David Bushel puts out is that it doesn&#39;t really feel like, it feels corporate, like the communication feels corporate. [30:38]&lt;/p&gt;
&lt;p&gt;It feels like corporate PR, not, you know, somebody talking about what they&#39;re working on. And that was actually, that resonated with me because that&#39;s something I&#39;ve noticed. Like, for instance, I set up an ecosystem news channel here in Reactiflux, and Deno stuff is some of the only things that come through it, and it feels like somebody set up a corporate process and there&#39;s somebody whose job it is to make sure that all of the communications channels get populated, you know, in a way that it doesn&#39;t feel that way for other projects like Expo or React or things like that. [31:07]&lt;/p&gt;
&lt;p&gt;So, I don&#39;t know, just like as a vibe. That was an interesting call out that I had noticed on my own as well. They talk about the meandering path that Deno has taken through trying to get package dependencies going, you know, cause, um, Ryan Dahl had a, you know, what node got wrong about Imports, I&#39;m misquoting that, but he complained about errors he had made in creating Node and talked about how he was going to do it differently this time with Deno. [31:34]&lt;/p&gt;
&lt;p&gt;And then they, you know, they did like a deno. land package registry for a while and then like, oop, nope, we&#39;re replacing that with JSR. But now it&#39;s all a little confused. Like it&#39;s, JSR applies certain restrictions on what you can publish. Like you have to annotate the return types. of any published module. [31:53]&lt;/p&gt;
&lt;p&gt;So you can&#39;t just let it infer the return type, which seems like a kind of strange restriction to put on it. I guess it&#39;s maybe to enforce SemVer through types, you know, use those return types as a schema and assert like, oh, nope, you got to break it. You change the types. I don&#39;t know. It&#39;s interesting. [32:08]&lt;/p&gt;
&lt;p&gt;It&#39;s curious. The single most, like, disruptive point that David Bushell made was pointing out that Dnode doesn&#39;t resolve sub dependencies like Node does. Like, the way that the JSR registry works does not permit sub dependencies in the same way, in the way that we&#39;ve grown accustomed to with Node. Which, like, I have called that out before. [32:28]&lt;/p&gt;
&lt;p&gt;That, subdependencies, dependencies of dependencies, is one of the best parts of the JavaScript ecosystem. The fact that I can install a package and I don&#39;t need to, you know, to an extent, I don&#39;t need to Manually make sure that I have given it everything that it needs. You know, there&#39;s some exceptions, like if you&#39;re using, you know, there&#39;s peer dependencies where that is still the case, but in general for if I install a library, that library brings in what it needs on its own. [32:56]&lt;/p&gt;
&lt;p&gt;There&#39;s downsides to that of course, as well, but I generally consider that to be one of the major differentiators between JavaScript and, you know, PHP or Python. So seeing that go backwards is, seems like a bad thing to me. So that seems, yeah, I don&#39;t know. It&#39;s just a, a lot of pretty negative takes on Deno and JSR. It&#39;s given me a lot of pause on it. [33:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; I mean, it&#39;s not just one hard problem, it&#39;s dozens o f hard problems simultaneously. I mean, you know, think, think back to, you know, trying to work with C where there is no such thing as a package manager. Java is sort of its own different world. C sharp is its own different world. [33:31]&lt;/p&gt;
&lt;p&gt;Rust has the cargo tool and a centralized registry. Python is an utter mess. There was an XKCD years ago about how bad Python package management is, and I&#39;ve continued to kind of just keep a general eye on developments in the Python world. And it&#39;s more confusing over time. So there&#39;s a lot of very, very justified complaints about how bad package management is on multiple levels in, we, we say the JS ecosystem, and by that we usually mean the Node plus NPM. [34:02]&lt;/p&gt;
&lt;p&gt;But all things considered at the same time. Most of that ecosystem generally works, and so it&#39;s been interesting to see Deno take a slightly different path and actually have to sort of backtrack a bit and say, Well, yeah, actually it turns out maybe a couple of those ideas weren&#39;t so bad after all. [34:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Right, they went pretty hard in copying Go style dependency management. [34:23]&lt;/p&gt;
&lt;p&gt;And I always thought Go style dependency management sounded like an absolute nightmare. And so, yep, alright, they&#39;re walking some of that back. [34:30]&lt;/p&gt;
&lt;h2 id=&quot;web-infra-devrslib-the-library-build-tool-powered-by-rsbuild&quot;&gt;&lt;a href=&quot;https://github.com/web-infra-dev/rslib&quot;&gt;web-infra-dev/rslib: The library build tool powered by Rsbuild&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; There&#39;s yet another new build tool out called RSLib to work through the chain of pieces on this one. [34:37]&lt;/p&gt;
&lt;p&gt;So, the folks at ByteDance have an incredibly prolific infrastructure team, and so the way I understand this is they built a full blown Rust re implementation of Webpack that they call RSPack. In fact, they&#39;ve actually made a couple comments about it would be nice if this could just be turned into Webpack version 6, in theory. So RS Pack is web pack five, but entirely rebuilt and rust, effectively. [35:02]&lt;/p&gt;
&lt;p&gt;RS build is a layer on top of RS Pack that makes it a lot easier to configure, or the, the configuration syntax is closer to like Es builds configuration level roughly than web pack&#39;s configuration level, where you&#39;re having to create a whole bunch of plugins. [35:19]&lt;/p&gt;
&lt;p&gt;And so, rsbuild is meant more for applications, and I guess they&#39;ve made a third layer on top of that where rslib is a wrapper or specialization of rsbuild that is more meant for building libraries with a proper configuration output. So, I&#39;m not sure what&#39;s leading to all this proliferation of build tools from them, but they are very happily cranking away on a whole series of things. [35:45]&lt;/p&gt;
&lt;h2 id=&quot;2024-stack-overflow-developer-survey&quot;&gt;&lt;a href=&quot;https://survey.stackoverflow.co/2024/&quot;&gt;2024 Stack Overflow Developer Survey&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; All right. I&#39;ll pull us onto our next one. We spent a lot of time last month talking about state of JS, state of React, state of HTML, we have another survey, the Stack Overflow Developer Survey, the results came out this month. I&#39;m not going to do too deep a dive, I think, although Mo, yeah, we had talked about, you know, demographics and selection biases of the state of JS, definitely more to talk about here. Yeah, some, some points that I took away from this that were interesting to me. I mostly looked at the professional developer respondents, just that&#39;s who I am. That&#39;s who I am viewing as the target audience for this show. [36:20]&lt;/p&gt;
&lt;p&gt;Something that surprised me a little bit, they said that more than 75 percent of professional developers have at least a bachelor&#39;s degree. I think it was like 45 percent have a bachelor&#39;s, like 26 have a master&#39;s, and like another 5 percent have some kind of specialized professional degree, like a JD or, you know, something like that, legal, medical, whatever. [36:40]&lt;/p&gt;
&lt;p&gt;For years of experience, front end developers were absolute bottom of the list, except for student, which was interesting, but also not surprising. You know, Boot camps, they probably teach you front end, like, makes sense. It&#39;s probably the most accessible part of the software field. So not super surprising there, but yeah, uh, also less than 6 percent of respondents to this survey self identified as a front end developer. [37:03]&lt;/p&gt;
&lt;p&gt;That&#39;s lower than I think it was in previous years. It feels like front end has kind of. I don&#39;t know, it feels like it&#39;s diminished over the last couple years. I was looking at the country demographics. I was curious about this because I know from our statistics who uses Reactiflux, I know that we have a huge Indian population within the server. Having my own read, my own perspective on what those metrics look like by actual like usage and participation. I was curious to see how they&#39;d be reflected. And the answer is not great. Top five countries as responded to the Stack Overflow survey were the U. S. with like 19 percent, Germany with a bit over eight, India with a little over seven, UK with five and a half, Ukraine four and a half. [37:45]&lt;/p&gt;
&lt;p&gt;I was curious to see how, what data I could find to back that up on, you know, what those stats look like. I couldn&#39;t find a direct comparison between the US and India, partly because the only English sources I could find for tech jobs in India just said all of IT, all of software in one. [38:02]&lt;/p&gt;
&lt;h3 id=&quot;httpswwwmeitygovincontentsoftware-and-services-sector&quot;&gt;&lt;a href=&quot;https://www.meity.gov.in/content/software-and-services-sector&quot;&gt;https://www.meity.gov.in/content/software-and-services-sector&lt;/a&gt;&lt;/h3&gt;
&lt;h3 id=&quot;httpswwwblsgovoescurrentoes151252htmnat&quot;&gt;&lt;a href=&quot;https://www.bls.gov/oes/current/oes151252.htm#nat&quot;&gt;https://www.bls.gov/oes/current/oes151252.htm#nat&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; But yeah, they said five and a half million IT and software workers in India, when I summed those same jobs up for Bureau of Labor Statistics in the U. S., that was like four and a half million. So just to say, there&#39;s definitely a huge English speaking bias in these surveys, which is unfortunate because the programming world is much larger than the English speaking world. some other Things, JavaScript was the number one most used technology here, and 25 percent of people learning to code self reported using Google Cloud. [38:32]&lt;/p&gt;
&lt;p&gt;I think that was like one of the top. That was the number one. That was the like most reported. Vercel was number three in people learning to code. Uh, for professional developers, top three, obviously, AWS, Google, and uh, Microsoft, but Google and Microsoft combined were about equal to AWS&#39;s numbers. On that list, Vercel was seventh. [38:51]&lt;/p&gt;
&lt;p&gt;Just about a percent lower than DigitalOcean, which was behind Cloudflare, which was behind Firebase. React and Node, together, both topped the web frameworks list of, technologies used with jQuery in number three. But yeah, 18 points behind React and Node, so definitely a different tier. But yeah, jQuery, what staying power it&#39;s had. I actually saw that this was, I believe the 18th birthday? It&#39;s old enough to vote. [39:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; The one thing that&#39;s interesting to me is just the 25 percent of folks learning to code use Google Cloud. I have a suspicion that might be to do with the fact that I know that there are GCP is quite involved in student fairs and a whole bunch of stuff giving free credits to people for hackathons and whatnot. [39:31]&lt;/p&gt;
&lt;p&gt;I wonder if there&#39;s some sort of correlation there where a lot of people seem to use it for their student experimenting and hacking, but maybe not so much when they get into the professional world. Just an observation. [39:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, that actually makes a lot of sense. I have seen them sponsor a lot of hackathons and things like that. [39:46]&lt;/p&gt;
&lt;p&gt;Yeah, I hadn&#39;t considered that, but scans. Cool. That was our last main content piece, uh, I guess into the lightning round. [39:53]&lt;/p&gt;
&lt;h2 id=&quot;cocoapods-going-into-maintenance-mode&quot;&gt;&lt;a href=&quot;https://blog.cocoapods.org/CocoaPods-Support-Plans/&quot;&gt;Cocoapods going into maintenance mode&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; I&#39;ll just jump in with an update from the React Native ecosystem, or more, more broadly speaking, the mobile ecosystem. So, in terms of package managers, CocoaPods used to be the be all and end all when you wanted to build an iOS app, in terms of managing your packages, and we&#39;ve come a long way where CocoaPods is now going into maintenance mode. [40:10]&lt;/p&gt;
&lt;p&gt;Now, CocoaPods is actually used by most of the cross platform technologies as the package manager of choice. So React Native uses it, but I think Flutter also uses it, and apparently Unity also uses it for some of their stuff as well. So there&#39;s a whole lot of this ecosystem that&#39;s being built in CocoaPods. [40:25]&lt;/p&gt;
&lt;p&gt;But what&#39;s happened here is that Apple&#39;s actually released their own package manager called the Swift Package Manager, or SPM for short. What the CocoaPods team called it was that they got Sherlocked, which is a reference to old school OS X, where they Basically got rid of an app called Watson, which was what Spotlight is now. [40:41]&lt;/p&gt;
&lt;p&gt;They created Sherlock at that point, which basically did all of the functionality that Watson used to do that was already integrated into the OS itself. So they&#39;re basically citing that saying we&#39;ve been Sherlocked and we&#39;re now going to go into maintenance mode as a result, because there&#39;s no competing with Apple. [40:55]&lt;/p&gt;
&lt;p&gt;So a sad day for everyone who loved and used CocoaPods for years, but obviously we&#39;re going forward into the SPM era and React Native is already kind of on that route to adopt SPM support. [41:07]&lt;/p&gt;
&lt;h2 id=&quot;accident-forgiveness--the-fly-blog&quot;&gt;&lt;a href=&quot;https://fly.io/blog/accident-forgiveness/&quot;&gt;Accident Forgiveness · The Fly Blog&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I saw a cool policy change for Fly. io, which is a, sort of a competitor to Vercel, it&#39;s a cloud compute platform. [41:14]&lt;/p&gt;
&lt;p&gt;They are doing an explicit accident forgiveness policy, which is just kind of great. It&#39;s generally socially understood that platforms like AWS or Vercel or, you know, whatever if you have some weird billing situation that arises, like I think one that happened was like somebody got in an infinite loop during their CI build and that caused a huge number of function invocations and because you could build per function invocation, they had, you know, like a 200, 000 bill when they&#39;re used to paying like 2, 000. [41:45]&lt;/p&gt;
&lt;p&gt;It&#39;s socially understood that most of the time, if it&#39;s not a repeat occurrence and it&#39;s not malicious, then they will forgive the bill. But it&#39;s socially understood. It&#39;s not in policy anywhere. It&#39;s just you put it on Twitter, you complain, it becomes a PR issue, and the company refunds you. [42:00]&lt;/p&gt;
&lt;p&gt;So now fly. io has put up an actual policy saying we forgive accidents and has given more clarity around there. I appreciate that. It&#39;s always nice to see social norms turn into policies, especially when they deal with six figures in billing. [42:17]&lt;/p&gt;
&lt;h2 id=&quot;spatial-compute&quot;&gt;&lt;a href=&quot;https://sunilpai.dev/posts/spatial-compute/&quot;&gt;spatial compute&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I saw a wonderful blog post from Sunil Pai, who I&#39;m just a big fan of. We&#39;ve collaborated a little bit in the past, but he has done PartyKit. He worked on Wrangler at CloudFlare. He&#39;s now working at CloudFlare again. He wrote about spatial compute, which is letting the network decide where in the world to run your code. So this is sort of an incremental step forward for serverless paradigm. [42:40]&lt;/p&gt;
&lt;p&gt;Instead of starting up a server that runs your code, you just say, this is the code that I want to run. Please start it when this request is made. But you still generally tell it, what region of the world that code is going to be hosted in. So this is just a blog post talking about not doing that. Letting the server decide, letting the network decide where in the world to run your code. [42:59]&lt;/p&gt;
&lt;p&gt;I just think that&#39;s a really interesting idea. It seems good. Seems kind of inevitable. Uh, and this is the first time I&#39;ve ever seen anyone mention it. So calling it out. [43:06]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Interestingly, he&#39;s called it spatial compute. And I think he&#39;s put a disclaimer at the top saying, sorry, Apple, but that I wish he chose another term for that. [43:13]&lt;/p&gt;
&lt;p&gt;That&#39;s already been used. [43:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Oh, that&#39;s true. That is what Apple called their Vision. [43:17]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Yeah. Vision Pro Computing. Yeah. It&#39;s, it&#39;s, I wish there was another term he could use for this. [43:22]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I like that he called it out and still did it anyway. [43:25]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Yeah, exactly. [43:25]&lt;/p&gt;
&lt;h2 id=&quot;how-airbnb-smoothly-upgrades-react&quot;&gt;&lt;a href=&quot;https://medium.com/airbnb-engineering/how-airbnb-smoothly-upgrades-react-b1d772a565fd&quot;&gt;How Airbnb Smoothly Upgrades React&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Womp womp. Yep. Airbnb, we talked about Airbnb last episode as well. Uh, they put out a blog post about how Airbnb smoothly upgrades React. [43:34]&lt;/p&gt;
&lt;p&gt;Last month, we talked about how they had just upgraded to React 18. So this is now two months later. them talking a little bit more about the process by which they did so. It was a pretty good read. It talks a lot about, like, feature flagging, you know, blue green deployments, and just sort of the trials and tribulations of what it means to update a core dependency of a widely used app that is in many, many phones with a huge variety of, you know, Performance and, you know, network and all those sorts of things. [44:01]&lt;/p&gt;
&lt;p&gt;So I appreciated that, just right at the beginning of the They show like, you know, here&#39;s the ideal, like a stair step function of what version we&#39;re using. And then here&#39;s the reality of what version we&#39;ve used over time. And it&#39;s got lots of like false starts where it&#39;s, they ship it and it&#39;s like, Oh, nope. [44:14]&lt;/p&gt;
&lt;p&gt;Okay. There&#39;s a bug. We got to roll it back. Let&#39;s try again. Nope. Still bugs. Roll it back. This is, Relatable to my career. There&#39;s just, you can&#39;t do a big overhaul without missing some kind of edge case that you didn&#39;t anticipate. So, um, just always appreciate seeing people pull back the curtain and show what those pains look like, especially at big companies that have huge distributions. [44:34]&lt;/p&gt;
&lt;h2 id=&quot;use-useid-instead-of-hand-making-ids&quot;&gt;&lt;a href=&quot;https://reacttraining.com/blog/use-useid-instead-of-hand-making-ids&quot;&gt;Use useId() Instead Of Hand-Making IDs&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; all right, great blog post from React Training, which I&#39;m actually not sure who&#39;s running this anymore, but it was started by Michael Jackson and Ryan Florence of React Router and Remix. They&#39;ve been on my radar for a very long time. Looks like this was written by Brad Westfall. Use ID instead of hand making IDs. [44:50]&lt;/p&gt;
&lt;p&gt;This was one of the clearer articulations of what use ID is meant to be used for that I&#39;ve read. This just really kind of made it click for me. It talks about using. an ID attribute on the DOM, and why you shouldn&#39;t handwrite them. And it was just very clear and simple. The gist of it is, if you handwrite an ID, then you can only use that component once in order to not violate the guarantees that an ID has with the browser. [45:17]&lt;/p&gt;
&lt;p&gt;You know, in a browser, an ID is supposed to be unique. If you select an ID, you get one element exactly. And so if you hand write an ID, your component can&#39;t be reused without violating that contract. What a simple idea. That makes sense. I now intuitively understand why use id is a valuable API to have. Um, yeah, just appreciated that. I love when something I didn&#39;t understand just clicks and becomes intuitive. I like it. [45:42]&lt;/p&gt;
&lt;h2 id=&quot;common-sense-refactoring-of-a-messy-react-component&quot;&gt;&lt;a href=&quot;https://alexkondov.com/refactoring-a-messy-react-component/&quot;&gt;Common Sense Refactoring of a Messy React Component&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Calling out this great blog post from Alex Kondov, he wrote, Common Sense Refactoring of a Messy React Component. Refactoring messy components, breaking them down into, from one mega component that does way too much into a smaller number of components that each have a smaller, you know, a single responsibility, has been a recurring theme in my career. [46:01]&lt;/p&gt;
&lt;p&gt;This looked like a really great write up. I appreciate that it just does, like, A two paragraph preamble and then dumps 300 lines of kind of gross code on you. It&#39;s like, yeah, you know, that is, that&#39;s the experience of entering a new code base most of the time. I appreciated this breakdown of here&#39;s what the process of refactoring a messy component looks like. [46:20]&lt;/p&gt;
&lt;h2 id=&quot;introducing-structured-outputs-in-the-api&quot;&gt;&lt;a href=&quot;https://openai.com/index/introducing-structured-outputs-in-the-api/&quot;&gt;Introducing Structured Outputs in the API&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; All right, small news from OpenAI. I had actually noticed this. We use OpenAI to do a resume review AI feature here, and I just did a revision to it, and it&#39;s much better. It&#39;s a little bit sassy. It&#39;s very terse. I like it. But yeah, OpenAI now has structured outputs in the API, so you can tell it what shape of JSON you want it to give you back, and it will give you that structure. [46:43]&lt;/p&gt;
&lt;p&gt;I know in the past that has been a pain point. I remember people complaining about like just getting OpenAI to give you pure JSON without like, okay, here&#39;s the JSON you asked for, JSON. Uh, you know, just purely unhelpful. Just caught this bit of news. If you&#39;re curious about writing a little open AI side project, I think this is maybe going to make it a bit easier. [47:03]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; It&#39;s also quite interesting for the mobile world, because you see a lot of a bigger shift towards server driven UI now, where, you know, you render things or you compile a JSON object that defines how the UI should look like in the mobile space, because, you know, that really works in mobile because, you You don&#39;t have to go through App Store updates, so you can basically have a dynamic page that uses JSON to decide how to layout itself. [47:24]&lt;/p&gt;
&lt;p&gt;And so maybe pairing that with something like this could be very interesting because you can give it the right confines and restrictions and then say generate me dynamic UI and then it&#39;ll kind of be a smart AI native based app. [47:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Wild. Kind of V0 vibes. V0 from Vercel. [47:40]&lt;/p&gt;
&lt;p&gt;All right. Here&#39;s my last little news item. [47:42]&lt;/p&gt;
&lt;h2 id=&quot;sentry-is-now-fair-source&quot;&gt;&lt;a href=&quot;https://blog.sentry.io/sentry-is-now-fair-source/&quot;&gt;Sentry is now Fair Source&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; This actually crossed my radar very late. I would like to be more prepared to talk about this because it&#39;s at the intersection of, you know, open source and licenses and legal stuff, which I am personally fascinated with. But Fentry has announced that they are FairSource. FairSource is a new concept to me. [48:00]&lt;/p&gt;
&lt;p&gt;It&#39;s a new project. So they say, today we&#39;re launching FairSource, a new approach to software sharing that is safe for companies to adopt and developers to use. Seems pretty neat. They talk about, they give a list of projects that are working with it, and they define it as like publicly available to read, allows use, modification, redistribution with minimal restrictions, and I guess notably it says that it undergoes delayed open source publication, which they give as a four letter acronym, D O S P, very enterprise. [48:29]&lt;/p&gt;
&lt;p&gt;It&#39;s not quite a license, it&#39;s sort of a social contract surrounding a license, I guess. They talk about a new functional source license, but it also recognizes a fair core license. And the business source license. It&#39;s interesting. I&#39;m definitely gonna have to dig into this a lot more because this is just referencing a bunch of licenses that I haven&#39;t heard of in a like social contract for how source gets released that I haven&#39;t seen codified. [48:56]&lt;/p&gt;
&lt;p&gt;I&#39;ve seen companies do things similar to this before, but there hasn&#39;t been a name for it. It hasn&#39;t been saying like, yes, we are. This, we are FairSource, so definitely interesting. It&#39;s not quite free and open source, but it is adjacent free and, you know, FOSS, FOSS has been difficult for many companies to actually execute on and live up to. [49:17]&lt;/p&gt;
&lt;p&gt;So this looks like a more friendly. type of license, mode of releasing source code into the world. So maybe it&#39;ll give engineers at more companies greater ability to make a compelling case for open sourcing internal code, which would be lovely. I would love to see more proprietary code get open sourced. [49:35]&lt;/p&gt;
&lt;p&gt;Too many things happen in secret. [49:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; The delayed open source publication is quite interesting because it&#39;s having a separate Closed source version of a code base that gets synced with an open source version is not, you know, unheard of. The React Native code base, as an example, is like this. So, it&#39;s not the most bizarre thing to have, and it&#39;s been happening. [49:52]&lt;/p&gt;
&lt;p&gt;It&#39;s just maybe not been codified like you mentioned, and maybe this is the way to do it. [49:56]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Right, exactly. That&#39;s the classic problem in a lot of businesses that would like to open source, is there&#39;s some part of it that is, like, truly proprietary, where if they release that, then, like, you know, they&#39;re giving away the secret recipe. [50:07]&lt;/p&gt;
&lt;p&gt;Or Contractual agreements they have with their customers where like they wrote some custom integration code and like that can&#39;t get open sourced. So like there are very real business constraints that make it difficult in some cases to open source code. Like you said, some companies have done that through things like synchronizing source code, but that&#39;s been done kind of ad hoc. [50:29]&lt;/p&gt;
&lt;p&gt;It&#39;s, you know, Each company has figured out its own way to work, to make that work. So seeing this as a template, a framework for people evaluating that decision, to push it over the finish line, to make it actually happen. Uh, that seems really valuable. This seems like one of those like quiet things that will have an outsized impact on the open source world. Pretty neat. [50:51]&lt;/p&gt;
&lt;h2 id=&quot;job-market&quot;&gt;&lt;a href=&quot;https://layoffs.fyi/&quot;&gt;Job Market&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; All right, some information about the job market. It was not great this month, but most of that was because of layoffs at Intel, just not great. So 15, 000 layoffs from Intel alone, overall like 25, 000 layoffs in tech. Which is not great, but since most of that came from one company, that&#39;s still pretty on track from where it was last month. [51:11]&lt;/p&gt;
&lt;p&gt;Intel screwing up doesn&#39;t really reflect too much on the broader, you know, tech and software ecosystem, I don&#39;t think. [51:18]&lt;/p&gt;
&lt;h3 id=&quot;httpsfredstlouisfedorgseriesihlidxustpsoftdeve&quot;&gt;&lt;a href=&quot;https://fred.stlouisfed.org/series/IHLIDXUSTPSOFTDEVE&quot;&gt;https://fred.stlouisfed.org/series/IHLIDXUSTPSOFTDEVE&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I&#39;ve been using this Fred data source of. Job postings on Indeed. And that is still trending down, which I&#39;m a little surprised about. It&#39;s just been a consistent downward trend. It&#39;s down to 68 percent of the baseline of like the start of 2020. So, you know, pre pandemic, which I&#39;m surprised. That&#39;s wild. I thought it was getting better. [51:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Just on that, I guess like Intel and Cisco both together are 21, 000 out of the 25, 000 layoffs. So if you take those two out, it&#39;s, it&#39;s actually like three, four thousand. [51:49]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Okay. That&#39;s actually quite a bit smaller. [51:50]&lt;/p&gt;
&lt;p&gt;That&#39;s nice. So yeah, last month I commented that it was the first time in a while we haven&#39;t had a pretty big pop of layoffs at the start of a new quarter. So yeah, cool. I guess that&#39;s generally holding true except for two megacorps running into problems. [52:04]&lt;/p&gt;
&lt;p&gt;A couple of new releases. [52:06]&lt;/p&gt;
&lt;h2 id=&quot;material-ui-v6&quot;&gt;&lt;a href=&quot;https://mui.com/blog/material-ui-v6-is-out/&quot;&gt;Material UI v6&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; material UI put out version 6. They commented that they took two and a half megabytes out of the bundle size they&#39;d installed on your disk, not the published size of your bundle, which made me look at that and go, wow, this is a 12 megabyte Install size, which is wild. That&#39;s larger than I realized. But yeah, Material UI, if you&#39;re using it, there&#39;s a new version out, new major. [52:28]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Although on that note, the TypeScript team has done some fantastic work shrinking the size of the installation on disk. Like it, it was up to like 50 megs, I think, as of like 9. And they did a lot of work in 5. 0 to convert some of the internals over to ES modules. And then, and then. Working on deduplicating some of the bundled files that they had and other internal optimizations. [52:55]&lt;/p&gt;
&lt;p&gt;I think at this point it&#39;s down to like 20 or 25 megs, which is still sizable, but I mean on the other hand, you know, 50 percent net win is a net win. [53:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Adhering that size, you know, 25 megs for all of TypeScript versus, you know, I don&#39;t know if it&#39;s exactly 12, I don&#39;t have the number in front of me right now, but half of TypeScript for material UI seems like a pretty big lift. [53:16]&lt;/p&gt;
&lt;h2 id=&quot;tauri-v2-rc-&quot;&gt;&lt;a href=&quot;https://v2.tauri.app/blog/tauri-2-0-0-release-candidate/&quot;&gt;Tauri v2 RC &lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; There&#39;s also Tauri v2 has a release candidate out. I don&#39;t know a ton about that, but we talked about it briefly in the past. [53:24]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; It&#39;s an Electron competitor allows you to build apps that run on the desktop But the UI is built with web technologies The difference is that Electron you&#39;re shipping an entire copy of Chrome as the rendering engine Whereas Tauri uses whatever OS&#39;s native web views instead So the overall shipped size is a lot smaller. [53:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Heck yes, seems cool. So they&#39;ve got a new version 2 coming out, which should be big. [53:47]&lt;/p&gt;
&lt;h2 id=&quot;nx-v195&quot;&gt;&lt;a href=&quot;https://nx.dev/blog/nx-19-5-adds-stackblitz-new-features-and-more&quot;&gt;NX v19.5&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; There&#39;s also NX version 19. 5. I don&#39;t know a ton about NX. [53:53]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; It&#39;s primarily a monorepo management tool. So managing lots of individual packages for both, you know, multiple libraries, multiple applications in one repo, which each of which could be, you know, being built with different tools. Like you might have, you know, a common TypeScript library and maybe, you know, a Vite app and an Angular app all in the same repo. And so NX does work to deduplicate the builds as well as manage creating and updating a lot of those packages. [54:20]&lt;/p&gt;
&lt;h2 id=&quot;upcoming-conferences&quot;&gt;Upcoming conferences&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; On to some conferences that are coming up. [54:22]&lt;/p&gt;
&lt;h3 id=&quot;httpswwwreactuniverseconfcom&quot;&gt;&lt;a href=&quot;https://www.reactuniverseconf.com/&quot;&gt;https://www.reactuniverseconf.com/&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Next week, if I&#39;m not mistaken, and time is not escaping me, is React Universe Conf. React Universe Conf happens every year in Wroclaw in Poland. So it&#39;s happening on the 5th and 6th of September. Uh, it used to be called React Native EU, but it&#39;s now evolved since React and React Native are getting closer and closer together by the day. So I will be emceeing the conference. Hence why I&#39;m giving this shout out. [54:44]&lt;/p&gt;
&lt;p&gt;So come along. Hopefully it&#39;ll be a good time. There&#39;s a lot of great speakers headlining there. [54:48]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Was it September, almost September already? [54:50]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; That&#39;s why I have to take a double glance at the calendar. [54:53]&lt;/p&gt;
&lt;h3 id=&quot;httpswwwjsconfcl&quot;&gt;&lt;a href=&quot;https://www.jsconf.cl/&quot;&gt;https://www.jsconf.cl/&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Cool. There&#39;s also JSConf in Santiago in Chile. Overlapping with React Universe. So that&#39;s going to be September 5th through 7th. [55:01]&lt;/p&gt;
&lt;h3 id=&quot;httpsutahjscomconference&quot;&gt;&lt;a href=&quot;https://utahjs.com/conference&quot;&gt;https://utahjs.com/conference&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I feel like we&#39;ve been talking about Utah conferences a lot, I guess. But yeah, Utah JS is doing a conference. Seems like there&#39;s been a lot of stuff going on in Salt Lake City. Yeah. [55:10]&lt;/p&gt;
&lt;h3 id=&quot;httpsreactalicantees&quot;&gt;&lt;a href=&quot;https://reactalicante.es/&quot;&gt;https://reactalicante.es/&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; There&#39;s also React Alicante in Spain, September 19th through 21st. [55:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; I&#39;m speaking, looking forward to it. [55:17]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Woo! [55:18]&lt;/p&gt;
&lt;h3 id=&quot;httpswwwjsconfie&quot;&gt;&lt;a href=&quot;https://www.jsconf.ie/&quot;&gt;https://www.jsconf.ie/&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; And JSConf Ireland in Dublin, September 25th and 26th. [55:23]&lt;/p&gt;
&lt;h3 id=&quot;https2024squiggleconfcom&quot;&gt;&lt;a href=&quot;https://2024.squiggleconf.com/&quot;&gt;https://2024.squiggleconf.com&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, SquiggleConf in Boston is October 3rd and 4th. This is organized by a conference buddy of mine, Josh Goldberg. He is author of a book on TypeScript and just a wonderful, friendly, lovely person. I&#39;m actually going to be volunteering there, so I&#39;ll be helping out with making sure the conference goes off. [55:41]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Yeah. So Josh, I was going to similarly give a big shout out to Josh for being an amazing person. But beyond that, me and him have been bonding. So we spent a bit of time in Amsterdam and we bonded over being first time conference organizers this year. So him and I have been trying to be each other&#39;s support group here and they&#39;re sending each other some tips and advice. [55:57]&lt;/p&gt;
&lt;p&gt;But Josh is, is incredibly well known in the community and he&#39;s going to hopefully put together a really, really cool event. So definitely go there if you&#39;re in the U. S. [56:05]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; The other organizer, Dimitri, is less well known, but also a wonderful person. [56:10]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yep, I just got to meet Dimitri the other day, uh, talking about volunteering. Seems really cool, seems really lovely. I&#39;m going to brag, I was at the table at React Miami where Josh Ideated the name SquiggleConf, so I was there for the origin. So, very happy to volunteer. [56:26]&lt;/p&gt;
&lt;h3 id=&quot;httpswwwrenderconorg&quot;&gt;&lt;a href=&quot;https://www.rendercon.org/&quot;&gt;https://www.rendercon.org&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Overlapping with that, there&#39;s RenderCon in Nairobi, Kenya, October 4th and 5th. [56:32]&lt;/p&gt;
&lt;h3 id=&quot;httpswwwreactindiaio&quot;&gt;&lt;a href=&quot;https://www.reactindia.io/&quot;&gt;https://www.reactindia.io/&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Then, React India in Goa, India, October 17th through 19th. [56:37]&lt;/p&gt;
&lt;h3 id=&quot;httpswwwreactbrussels&quot;&gt;&lt;a href=&quot;https://www.react.brussels/&quot;&gt;https://www.react.brussels/&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; There&#39;s React Brussels in Brussels, Belgium, October 18th. I went to that not last year, but the year before. It seemed really great. I got to hang out with the organizer at React Conf in Las Vegas, and just really great dude. Would recommend React Brussels for sure. [56:53]&lt;/p&gt;
&lt;h3 id=&quot;httpsreactadvancedcom&quot;&gt;&lt;a href=&quot;https://reactadvanced.com/&quot;&gt;https://reactadvanced.com/&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Cool, next up we&#39;ve got React Advanced London, so this happens around October time every single year in London, so I&#39;ve been going for a few years now, and the Great React Conference is probably the biggest React Conference that there is in the UK, so definitely head there, I will be there again this year, so if you&#39;re around, pop me a message and we&#39;ll say hi. [57:09]&lt;/p&gt;
&lt;h2 id=&quot;outro&quot;&gt;Outro&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; All right, cool. That is everything we&#39;ve got for today. Thank you everyone for joining us. We will be back on the last Wednesday, even though today is Thursday, uh, last Wednesday of the month to hear on the live stage of Reactiflux or back in your podcast feed just as soon as we can. [57:23]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Thank you all for joining and listening to us ramble on and chat all things React and React Native. [57:28]&lt;/p&gt;
&lt;p&gt;It is always a pleasure and see you all next month. [57:31]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; We gather sources from This Week in React, Bytes. dev, React Status, Next. js Weekly, the React. js subreddit, and here in Reactiflux. If you see anything that seems newsworthy, uh, that you think we should discuss, just put it in the tech reads and news channel here in Reactiflux. [57:49]&lt;/p&gt;
&lt;p&gt;Or, if you like, You can send it to me in an email at hello at reactiflux with T M I R in the subject line, which is a, it&#39;s an acronym for the show. I read every email that comes in, including spam because I&#39;m a crazy person. So I will read it even if we don&#39;t end up covering it. If this is the show you get value from and want to support, the best way you can do so is by giving a review on Spotify or whatever platform that you actually listen to. [58:15]&lt;/p&gt;
&lt;p&gt;Tell your friends, tell your coworkers, we&#39;re cool and smart and we can help you sound cool and smart too. You&#39;re pretty cool and smart too. See you guys next month. Bye.&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2024-08</link><guid isPermaLink="false">reactiflux-tmir-2024-08</guid><pubDate>Mon, 26 Aug 2024 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>This Month in React, July 2024: State of React, State of JS, React, HTML</title><description>&lt;iframe src=&quot;https://podcasters.spotify.com/pod/show/reactiflux/embed/episodes/TMiR-2024-06-React-19-delayed-drama-ish--why-no-JS-Laravel--TS-5-5-and-more-e2lee77&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;Quick hits
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#job-market&quot;&gt;02:14&lt;/a&gt;]&lt;/code&gt; Job market
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://fred.stlouisfed.org/series/IHLIDXUSTPSOFTDEVE&quot;&gt;FRED data&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://layoffs.fyi/&quot;&gt;Layoffs.fyi&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;New releases
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#vitest-20&quot;&gt;03:48&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/vitest-dev/vitest/releases/tag/v2.0.0&quot;&gt;Vitest 2.0&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/vitest-dev/vitest/discussions/5828&quot;&gt;Future plans&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#remix-210-fog-of-war&quot;&gt;04:06&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://remix.run/docs/en/main/start/changelog&quot;&gt;Remix 2.10&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#jotai-29&quot;&gt;04:24&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/pmndrs/jotai/releases/tag/v2.9.0&quot;&gt;Jotai 2.9&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#storybook-82&quot;&gt;04:34&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/v8.2.0&quot;&gt;Storybook 8.2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#react-native-reanimated-314&quot;&gt;04:52&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/software-mansion/react-native-reanimated/releases/tag/3.14.0&quot;&gt;RN Reanimated at 3.14&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#htmx-20&quot;&gt;04:59&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://htmx.org/posts/2024-06-17-htmx-2-0-0-is-released/&quot;&gt;HTMX 2.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#mako-released&quot;&gt;05:03&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://makojs.dev/blog/mako-open-sourced&quot;&gt;Mako is Now Open Source&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#conferences&quot;&gt;06:01&lt;/a&gt;]&lt;/code&gt; Conferences (&lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://confs.tech/javascript&quot;&gt;Javascript&lt;/a&gt;)
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#react-rally&quot;&gt;06:01&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.reactrally.com/&quot;&gt;React Rally&lt;/a&gt; Salt Lake City, UT, USA August 12-13&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#react-universe&quot;&gt;06:25&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.reactuniverseconf.com/&quot;&gt;React Universe 2024&lt;/a&gt; Wrocław, Poland September 5-6&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#jsconf-chile&quot;&gt;07:23&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.jsconf.cl/&quot;&gt;JSConf Chile&lt;/a&gt; Santiago, Chile September 5-7&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#utahjs-conf&quot;&gt;07:32&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://utahjs.com/conference&quot;&gt;UtahJS Conf&lt;/a&gt; Salt Lake City, UT, U.S.A. September 13&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#react-alicante&quot;&gt;07:44&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactalicante.es/&quot;&gt;React Alicante&lt;/a&gt; September 19-21&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#jsconf-ireland&quot;&gt;08:00&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.jsconf.ie/&quot;&gt;JSConf Ireland&lt;/a&gt; Dublin, Ireland September 25-26&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;Main Content
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;Survey results:
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#state-of-html&quot;&gt;10:21&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://2023.stateofhtml.com/&quot;&gt;State of HTML 2023&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#state-of-react&quot;&gt;14:39&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://2023.stateofreact.com/en-US&quot;&gt;State of React 2023&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#state-of-js&quot;&gt;17:43&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://2023.stateofjs.com/en-US&quot;&gt;State of JS 2023&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://socket.dev/blog/2023-state-of-javascript-survey-highlights&quot;&gt;2023 State of JavaScript Survey Highlights: Vite Dominates, TypeScript Adoption Soars&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.hanselman.com/blog/dark-matter-developers-the-unseen-99&quot;&gt;Dark Matter Developers: The Unseen 99%&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;⚡Lightning round ⚡
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;Company migrations:
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#nyt-and-slack-update-to-react-18-enzyme-to-blame&quot;&gt;37:54&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://open.nytimes.com/enhancing-the-new-york-times-web-performance-with-react-18-d6f91a7c5af8&quot;&gt;NYT just updated to React 18&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://slack.engineering/balancing-old-tricks-with-new-feats-ai-powered-conversion-from-enzyme-to-react-testing-library-at-slack/&quot;&gt;Slack converted from Enzyme to RTL with some AI assistance&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;RN news
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#rise-tools-launched&quot;&gt;39:05&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://rise.tools/&quot;&gt;Rise Tools Launched&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#mos-talk-about&quot;&gt;39:48&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://youtu.be/vjTVnSUZVEk?si=KIURXZGKMz-gtRFB&quot;&gt;Mo Khazali – Server-Driven Mobile Apps With React Native&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#nativewind-ui-launching&quot;&gt;40:15&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://nativewindui.com/&quot;&gt;NativeWindUI launched&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#gluestack-too&quot;&gt;40:51&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://gluestack.io/&quot;&gt;Gluestack is going in a similar direction with v2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#swift-package-manager-support-moving-away-from-cocoapods&quot;&gt;41:30&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/facebook/react-native/pull/44627&quot;&gt;Swift Package Manager Support for React Native&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#react-native-filament&quot;&gt;43:24&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/expo/expo/pull/30660&quot;&gt;Using React Native MacOS with Expo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/mrousavy/status/1811354708235239680&quot;&gt;React Native Filament&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#react-native-for-web-devs&quot;&gt;44:31&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://expo.dev/blog/from-web-to-native-with-react&quot;&gt;Guide to React Native for Web React devs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#build-windows-apps-from-a-mac&quot;&gt;45:09&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://devblogs.microsoft.com/react-native/2024-07-18-running-rnw-from-a-mac-md/&quot;&gt;How to build Windows apps for React Native with a Mac&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#ecosystem-performance-group-e18e&quot;&gt;46:06&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://e18e.dev/blog/e18e&quot;&gt;e18e (Ecosystem Performance) - A new community initiative | e18e&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#es2024-released&quot;&gt;48:10&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://tc39.es/ecma262/2024/&quot;&gt;ES2024&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/robpalmer2/status/1806064466510897240&quot;&gt;Tweet from Rob Palmer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#memory-leaks-compiler-wont-save-you&quot;&gt;49:00&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://schiener.io/2024-07-07/react-closures-compiler&quot;&gt;Sneaky React Memory Leaks: How the React compiler won’t save you&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://jakearchibald.com/2024/garbage-collection-and-closures/&quot;&gt;Garbage collection and closures&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=nl4B1asyMdI&quot;&gt;How to publish a JavaScript package in 2024&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#react-native-flutter&quot;&gt;50:33&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/mdj_dev/status/1811317534936719562&quot;&gt;React Native + Flutter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#bun-q3-roadmap&quot;&gt;51:01&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/jarredsumner/status/1807731197046653438&quot;&gt;Bun’s Q3 roadmap (not exhaustive)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#learn-suspense-by-building-a-suspenseenabled-library&quot;&gt;51:57&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.bbss.dev/posts/react-learn-suspense/&quot;&gt;Learn Suspense by Building a Suspense-Enabled Library&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#marks-talk-why-use-redux-today-at-react-summit&quot;&gt;52:39&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://blog.isquaredsoftware.com/2024/07/presentations-why-use-redux/&quot;&gt;Why Use Redux Today?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#chrome-collects-extra-data-for-google-websites&quot;&gt;53:24&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/lcasdev/status/1810696257137959018?t=r9eYl5mMXDWVzZ9suZugjQ&amp;amp;s=19&quot;&gt;Chrome gives Google properties privileged information about your system resources&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#component-composition-colocation&quot;&gt;53:48&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bobaekang.com/blog/component-colocation-composition/&quot;&gt;Component, colocation, composition: A note on the state of React | bobae kang&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#secret-knowledge-to-selfhost-nextjs&quot;&gt;54:15&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.flightcontrol.dev/blog/secret-knowledge-to-self-host-nextjs&quot;&gt;Secret Knowledge to Self-Host Next.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;Node news:
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#node-can-strip-ts-types-soon&quot;&gt;54:37&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/nodejs/node/pull/53725&quot;&gt;TS stripping&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#native-sqlite-drive-in-node&quot;&gt;55:01&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://nodejs.org/docs/latest/api/sqlite.html&quot;&gt;SQLite support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-07#node-moving-away-from-corepack&quot;&gt;56:00&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/nodejs/TSC/pull/1527#issuecomment-2258868015&quot;&gt;Removing experimental &lt;code&gt;corepack&lt;/code&gt; tool for version managers?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;[00:00] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Hello. Thanks for joining us for the July edition of This Month in React, where we recap and digest recent developments in the ever evolving React and web ecosystem. We are coming to you live from Reactiflux, the place for React developers.&lt;/p&gt;
&lt;p&gt;[00:13] And we actually have a sponsor this month. Woo! First time we&#39;re supported by Infinite Red, a consultancy that works exclusively in React Native. They&#39;ve been around since 2015, have employees on the core team of React Native, and are super great.&lt;/p&gt;
&lt;p&gt;[00:26] I&#39;m going to do a little more on them after we do introductions, but I am Carl. I&#39;m a staff product developer and freelance community leader here at Reactiflux, where I run community programs and otherwise build tools to keep the community running.&lt;/p&gt;
&lt;p&gt;[00:39] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; I&#39;m Mark, most of you know me as the guy who does Redux stuff, and as far as day job things go, I am actually looking for a new position, which is a bit of an interesting personal development, so if folks have suggestions for places I should be getting in touch with or that might be interested in me, please ping me and let me know.&lt;/p&gt;
&lt;p&gt;[00:59] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; And I am Mo. I head the mobile team at Theodo, and I&#39;m an active community member within the React Native ecosystem. I organize the React Native London meetup and soon to be conference, and just contribute here and there, dabble a little bit into open source. Nowhere near as much as Mark does, but I do try.&lt;/p&gt;
&lt;h2 id=&quot;sponsored-by-infinite-red&quot;&gt;&lt;a href=&quot;https://infinite.red/&quot;&gt;Sponsored by Infinite Red&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[01:18] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, and a little more on our sponsor. Infinite Red is a expert React Native consultancy. I&#39;m actually uniquely excited to get them specifically, Infinite Red, as a sponsor. They have been around, I&#39;ve been seeing their name for the entirety of my career since I started in about 2014 with React. And they organize conferences, they host the largest React Native podcast, and generally have just shown up in very real ways to support the ecosystem and the community.&lt;/p&gt;
&lt;p&gt;[01:46] So I got a chance to connect with one of their founders, Jamon Holmgren at React Conf down in Las Vegas, and we just really vibed. They seem like really great people, they talk about how they are a team of 30 with mostly developers, mostly with more than 10 years of experience, and they work with your team to coach you on how to best use React Native.&lt;/p&gt;
&lt;p&gt;[02:07] So if your company is looking to build up some React Native expertise, definitely check them out. And thank you, Infinite Red, for sponsoring us.&lt;/p&gt;
&lt;h2 id=&quot;job-market-fred-data--layoffsfyi&quot;&gt;Job market: &lt;a href=&quot;https://fred.stlouisfed.org/series/IHLIDXUSTPSOFTDEVE&quot;&gt;FRED data&lt;/a&gt; + &lt;a href=&quot;https://layoffs.fyi/&quot;&gt;layoffs.fyi&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[02:14] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Cool. All right. On to some quick hits. Job market updates.&lt;/p&gt;
&lt;p&gt;[02:18] So there&#39;s a new source of data that I&#39;m following, which is amusingly called FRED, an economic data set based out of the St. Louis Fed. So apparently the job site indeed does some like data analytics stuff that now the Federal reserve is relying on for like labor information. And this is a chart of software development job postings that have been posted to Indeed. And it is, indexed off the beginning of 2020. So it&#39;s more than doubles at about the start of 2022 and is down to about like 68 percent of that 2020 baseline and it&#39;s been pretty flat.&lt;/p&gt;
&lt;p&gt;[02:57] I really like this because I&#39;ve been looking at layoffs. fyi for, you know, a year now and it just doesn&#39;t quite do it. It is, there&#39;s, there&#39;s enough, there&#39;s a lot of variability. It&#39;s only the source of Layoff. So this is kind of the other side. What does hiring look like? And unfortunately, hiring is flat to down, which is not great. But at least people aren&#39;t getting laid off as quickly anymore.&lt;/p&gt;
&lt;p&gt;[03:20] Yeah, speaking of layoffs, layoffs. fyi. This is the first time in, like, the A year and a half that we haven&#39;t had a, like, a pop of layoffs at the start of a new quarter. So that&#39;s a small positive sign. It&#39;s down versus last month in June and only the second time this year that we&#39;ve had less than 10, 000 developers laid off. So, seems good. Hiring is not ticking up though.&lt;/p&gt;
&lt;h2 id=&quot;new-releases&quot;&gt;New Releases&lt;/h2&gt;
&lt;p&gt;[03:44] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Mark, you want to take us through some new releases?&lt;/p&gt;
&lt;p&gt;[03:46] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Sure, a couple of the most interesting ones.&lt;/p&gt;
&lt;h3 id=&quot;vitest-20&quot;&gt;&lt;a href=&quot;https://github.com/vitest-dev/vitest/releases/tag/v2.0.0&quot;&gt;Vitest 2.0&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[03:48] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Vitest 2. 0 is out. A bunch of small changes, but it&#39;s interesting to note that they&#39;re working towards a browser mode. Because we&#39;ve had browser based testing for a while, but trying to focus on running unit tests in the browser. So, this has some very interesting potential there.&lt;/p&gt;
&lt;h3 id=&quot;remix-210-fog-of-war&quot;&gt;&lt;a href=&quot;https://remix.run/docs/en/main/start/&quot;&gt;Remix 2.10, fog of war&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[04:06] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Remix put out a new release that has a fog of war feature, which looks like it&#39;s about trying to optimize downloads of route information. Looks like rather than bundling all the route information ahead of time, they will actually download chunks of it as you go, which should improve loading speed.&lt;/p&gt;
&lt;h3 id=&quot;jotai-29&quot;&gt;&lt;a href=&quot;https://github.com/pmndrs/jotai/releases/tag/v2.9.0&quot;&gt;Jotai 2.9&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[04:24] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Uh, Jotai 2. 9 is out. And it looks like the public behavior is basically the same, but they&#39;ve reworked the internals.&lt;/p&gt;
&lt;h3 id=&quot;storybook-82&quot;&gt;&lt;a href=&quot;https://github.com/storybookjs/storybook/releases/tag/&quot;&gt;Storybook 8.2&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[04:34] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Storybook 8. 2 has, trying to look at the release notes, a few small changes, probably not a whole lot of big stuff.&lt;/p&gt;
&lt;p&gt;[04:42] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I&#39;ve never quite understood the niche, the purpose that Storybook really serves. But, you know, hey, minor release, so it seemed worth calling out. I know it&#39;s pretty widely used.&lt;/p&gt;
&lt;p&gt;[04:52]&lt;/p&gt;
&lt;h3 id=&quot;react-native-reanimated-314&quot;&gt;&lt;a href=&quot;https://github.com/software-mansion/&quot;&gt;React Native Reanimated 3.14&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[04:52] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; React Native Reanimated has 3. 14. So I guess there&#39;s your, there&#39;s your Pi release.&lt;/p&gt;
&lt;h3 id=&quot;htmx-20&quot;&gt;&lt;a href=&quot;https://htmx.org/posts/2024-06-17-htmx-2-0-0-is-released/&quot;&gt;htmx 2.0&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[04:59] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Totally outside of React. HTMX just hit 2. 0.&lt;/p&gt;
&lt;h3 id=&quot;mako-released&quot;&gt;&lt;a href=&quot;https://makojs.dev/blog/mako-open-sourced&quot;&gt;Mako released&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[05:03] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; And there is yet another Rust based JavaScript build tool that came out. This one&#39;s called Mako. I saw it. I&#39;ll be honest. I have no idea how this is any different than the other seemingly like 15 other Rust based build tools at this point.&lt;/p&gt;
&lt;p&gt;[05:20] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Mako has come out of the Ant design. That&#39;s what caught my eye as being notable.&lt;/p&gt;
&lt;p&gt;[05:24] So this is a Rust based developer being built by the team that put together one of the reasonably popular component toolkits. It seems notable for that reason to me. But yeah, yet another Rust based build tool. One more thing on Mako. They put up a bunch of benchmarks that show it being like 10 times faster than Webpack and noticeably faster than RSBuild 0. 6, which is pretty impressive. They also talked about like not being able to get it to work, getting their benchmark to work with the latest release of RSBuild, which is 0. 7. So who&#39;s to say if those benchmarks will really hold up, but yeah, cool.&lt;/p&gt;
&lt;h2 id=&quot;conferences&quot;&gt;Conferences&lt;/h2&gt;
&lt;h3 id=&quot;react-rally&quot;&gt;&lt;a href=&quot;https://www.reactrally.com/&quot;&gt;React Rally&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[06:01] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Some conferences coming up. We&#39;ve got React Rally in Salt Lake City, August 12th and 13th. I&#39;ve been to React Rally a couple of times Over the years and definitely a great one. I also noticed it&#39;s pretty much the only conference in August. I think because everyone&#39;s on vacation.&lt;/p&gt;
&lt;p&gt;[06:16] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; React Rally is wonderful. They&#39;ve done a great job of really having a good community vibe over the years. I should be there. So folks want to come by and say hi, please do.&lt;/p&gt;
&lt;p&gt;[06:24]&lt;/p&gt;
&lt;h3 id=&quot;react-universe&quot;&gt;&lt;a href=&quot;https://www.reactuniverseconf.com/&quot;&gt;React Universe&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[06:25] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; Next up. We&#39;ve got React Universe Conf in Wroclaw in Poland on September 5th and 6th. I actually am seeing this conference. So if you like listening to me talk about weird stuff and ramble, it&#39;s the place to be, I guess, but no, it&#39;s a great conference.&lt;/p&gt;
&lt;p&gt;[06:41] It used to be the former React Native EU, and now it&#39;s expanding to cover all things React based. And we&#39;ve got some really good speakers there. So obviously you&#39;ve got the, the popular React Native speakers that are the lineup of every single React Native community conference that you know, but we&#39;ve also got folks like Dan Abramov, who&#39;s been I can&#39;t see Dodds and some others, and I would highly recommend coming to it.&lt;/p&gt;
&lt;p&gt;[07:03] The organizers really know how to organize conferences. They&#39;ve done it for many, many years and you&#39;re guaranteed pretty much to have a great time.&lt;/p&gt;
&lt;p&gt;[07:10] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah. And on them knowing how to organize a conference, they organized React Conf. They were one of the organizer partners for that. So yeah, they certainly do. They have organized yet another conference. Definitely would love to get up to Poland if I can. Cool.&lt;/p&gt;
&lt;h3 id=&quot;jsconf-chile&quot;&gt;&lt;a href=&quot;https://www.jsconf.cl/&quot;&gt;JSConf Chile&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[07:23] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; A, an overlapping conference. There&#39;s also a JSConf Chile in Santiago. That&#39;s September 5th through 7th.&lt;/p&gt;
&lt;h3 id=&quot;utahjs-conf&quot;&gt;&lt;a href=&quot;https://utahjs.com/conference&quot;&gt;UtahJS Conf&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[07:32] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; There&#39;s a Utah JSConf again in Salt Lake City on September 13th. I guess this is. JavaScript versus React for React Rally. But yeah, so we have two conferences in Salt Lake City a month apart.&lt;/p&gt;
&lt;h3 id=&quot;react-alicante&quot;&gt;&lt;a href=&quot;https://reactalicante.es/&quot;&gt;React Alicante&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[07:44] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; There&#39;s React Alicante, which is going to, it looks like it&#39;s going to be an online conference.&lt;/p&gt;
&lt;p&gt;[07:49] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; It&#39;s in person in Spain and I&#39;m speaking there.&lt;/p&gt;
&lt;p&gt;[07:53] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Cool. Oh, awesome. Wonderful. Go see Mark speak in Spain. That is September 19th through 21st.&lt;/p&gt;
&lt;h3 id=&quot;jsconf-ireland&quot;&gt;&lt;a href=&quot;https://www.jsconf.ie/&quot;&gt;JSConf Ireland&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[08:00] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; There&#39;s also JSConf Ireland in Dublin with also streaming September 25th and 26th.&lt;/p&gt;
&lt;p&gt;[08:07] And that is all of the conferences we have this month. Uh, I will shout out, last month I mentioned a conference that I will not name again because it came to light that they were using fake speakers on their website and had various people listed as speaking at the conference who were not. So, uh, I updated the transcript, but I wanted to shut that out. I did try to check. I do look at the conference websites and try and vet them, but I got it wrong last month. Sorry.&lt;/p&gt;
&lt;h2 id=&quot;state-of-the-web-surveys&quot;&gt;State of the web surveys&lt;/h2&gt;
&lt;p&gt;[08:32] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; All right. Onto our main content. We are slightly behind the times by a month or two on State of surveys. There have been a bunch of state of React, state of JavaScript, state of HTML, all kinds of states that have come out over the last two months or so, which is later than I expected.&lt;/p&gt;
&lt;p&gt;[08:50] Usually these have, in years past, the state of JS surveys have done a pretty good job of coming out. Pretty promptly, they&#39;ve been running for, it seems like, most of my career. So, just surprised. Seemed like there were some, hitches this year.&lt;/p&gt;
&lt;p&gt;[09:04] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yeah, like, I&#39;m not sure if it was that they, they just took a really long time to analyze the data, or they were working on, I know they did a lot of work on, like, new data visualizations as part of the survey results.&lt;/p&gt;
&lt;p&gt;[09:14] So, it might just have been that it took them a long time to get the new sites put together.&lt;/p&gt;
&lt;p&gt;[09:19] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I did notice that they had some really cool data interactivity bits on it, like you can, for a lot of, at least on the State of JS site, the State of React one got, looked like a little bit less attention, which is fair, it&#39;s a much smaller survey, it&#39;s like a third of the size. But, they had some interesting stuff where you could filter or correlate responses. So it&#39;s like, Oh, you can see years of experience as it pertains to salary. So there was a lot of really cool data exploration stuff there.&lt;/p&gt;
&lt;p&gt;[09:48] I did also see a little bit of chatter online or on Twitter about how the survey was promoted and what that means for its sample size and audience. demographics mainly, like the survey responses were like 92 percent male and that&#39;s not great. I&#39;ve seen other spaces get up to like 80 percent male, so, you know, 15 to 20 percent female, which seems to be about the high watermark, unfortunately, for online based tech communities. But yeah, so just, just wanted to shout out that I have heard a little bit of that.&lt;/p&gt;
&lt;h2 id=&quot;state-of-html&quot;&gt;&lt;a href=&quot;https://2023.stateofhtml.com/&quot;&gt;State of HTML&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[10:21] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I&#39;ll start with the two smaller surveys.&lt;/p&gt;
&lt;p&gt;[10:23] So state of HTML was actually really interesting to me. I don&#39;t super duper know how to stay on top of, like, HTML and CSS changes, so I feel like every couple of years I, like, see a talk from someone who&#39;s a genuine cutting edge expert in CSS and, you know, use the platform kind of stuff and go like, &quot;oh, holy shit, I don&#39;t know how to use HTML anymore,&quot; because just reading the state of HTML, I found a bunch of little things, a bunch of new features that I was not aware of. I unfortunately didn&#39;t take a bunch of notes on them, but just scroll through, see what catches your eye, see what you haven&#39;t stayed up to date with.&lt;/p&gt;
&lt;h2 id=&quot;use-the-platform&quot;&gt;&quot;Use the platform&quot;&lt;/h2&gt;
&lt;p&gt;[10:58] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; I know we&#39;ve had, you know, there&#39;s, there&#39;s kind of the running meme of, you know, the, the folks who insist on use the platform and the, and the React community is a little bit like, &quot;but the platform doesn&#39;t support all the things we want to do,&quot; but browsers are continuing to implement, new features, the HTML and JavaScript specs keep advancing.&lt;/p&gt;
&lt;p&gt;[11:17] And it&#39;s a fair critique that folks who tend to focus on, the React type front ends probably don&#39;t know as much about the nuances of what&#39;s available in HTML and CSS as folks who are more focused on that. So, like, there&#39;s sort of fair critiques on both sides, and it&#39;s worth keeping an eye on, the new advances there.&lt;/p&gt;
&lt;p&gt;[11:39] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, something that I have thought of many times over my professional career is like, there&#39;s use the platform, you know, there&#39;s a lot of things you can do without writing JavaScript code. If you can do it with a native feature, it&#39;s going to be less development time. It&#39;s going to be, it&#39;s probably going to be faster, more performant for the user.&lt;/p&gt;
&lt;p&gt;[11:56] But that use the platform nature is in tension with the flip side of React trying to allow people to write code that runs in more environments. So it&#39;s sort of, there&#39;s sort of that dichotomy. There&#39;s the pressure of writing a tool tip library, writing a modal library that works in React Native as well as natively on the web.&lt;/p&gt;
&lt;p&gt;[12:16] And if you rely on the platform features, then you can&#39;t do the React Native side of things. So There&#39;s been a big tension there for many, many years, but I have been very interested in what it would look like if there was a component toolkit that just said like, nope, fuck the other platforms, we&#39;re just going to go all in on web, we&#39;re going to do it in as few lines of code to get the best user experience and the best developer experience possible.&lt;/p&gt;
&lt;p&gt;[12:38] I don&#39;t know of one that&#39;s really working in that way, but I think it would be really cool.&lt;/p&gt;
&lt;p&gt;[12:42] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; So two points on that, which I think was a really interesting point that you raised, Carl. One is part of the reason why a lot of these libraries don&#39;t really work well for React Native is the lack of web API support in the React Native ecosystem.&lt;/p&gt;
&lt;p&gt;[12:54] And it is actually something that&#39;s being worked on. So Microsoft opened an RFC last year and they said, well, you know, we, we, whether we like it or not, as native developers, the web APIs have won. They&#39;re becoming standardized. Things are. Relatively stable. So why not try to at least use those as the interfaces, even if the native implementations are different under the hood, so that when you do use your trusty old React library, it does just kind of work out of the box in the React native ecosystem.&lt;/p&gt;
&lt;p&gt;[13:18] So there is a move towards that and you&#39;ve got React strict DOM and whatnot. But the example, the counterside to that is the example of tooltips that you mentioned. Like tooltips are not a mobile. Friendly UI element. So there&#39;s no easy answer to this unless you create really high level primitives that are UI agnostic.&lt;/p&gt;
&lt;p&gt;[13:35] But functionality wise, they kind of behave similarly. So, you know, from a way that it looks, it&#39;s totally different on iOS, Android, and web, but at least the APIs for the developers are the same. So opens a tool tip on the, the, the web with a hover, but you know, maybe opens up a modal. A bottom sheet modal on native.&lt;/p&gt;
&lt;p&gt;[13:52] So it&#39;s a big point of contention for us React Native developers that we&#39;re trying to figure out. I don&#39;t think we have the answer, and I don&#39;t think anyone&#39;s figured out the sweet spot. But we&#39;ll get there. We will get there.&lt;/p&gt;
&lt;p&gt;[14:02] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, I feel like it crosses my mind every couple of months, but just hearing you talk about like, the web platform just makes me think yet again of a 2013 talk called the birth and death of JavaScript.&lt;/p&gt;
&lt;h2 id=&quot;birth-and-death-of-javascript&quot;&gt;&lt;a href=&quot;https://www.destroyallsoftware.com/&quot;&gt;Birth and Death of Javascript&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[14:13] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; And yes, JavaScript is intentional. But yeah, if you are not familiar with JavaScript. That birth and death of JavaScript talk, watch it because like, oh my God, it&#39;s the most, it has remained the most like prescient talk I&#39;ve ever watched. It is exactly discussing how JavaScript takes over the world and we&#39;re just living it, we&#39;re just living that 10 years later, 11 years later. Anyway, that&#39;s a, that&#39;s all kind of long diversion for state of HTML, but.&lt;/p&gt;
&lt;h2 id=&quot;state-of-react&quot;&gt;&lt;a href=&quot;https://2023.stateofreact.com/en-US&quot;&gt;State of React&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[14:39] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; There was also a state of React survey. It was pretty good. I kind of got more interesting signal I felt out of the state of JavaScript survey. There was a lot of survey time dedicated to like, what React features do you use? And that&#39;s just not really a question that I have, you know, I don&#39;t really care if you use, you know, use context. You probably do. If you don&#39;t, you probably should. That section, what features do you use, is interesting in terms of like, what are people aware of, but I don&#39;t know that it really changes that much.&lt;/p&gt;
&lt;h2 id=&quot;component-libraries&quot;&gt;Component Libraries&lt;/h2&gt;
&lt;p&gt;[15:07] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; It did have a lot of good data about component libraries and ecosystem that I thought was, just, we, we spend so much time in here bantering about like, what the vibes are and how does it feel What tools does it feel like people are using more and talking about more?&lt;/p&gt;
&lt;p&gt;[15:23] So this is a good data based check in on how accurate the, the vibes, our read of the vibes are and pretty accurate. I&#39;m pretty happy. We&#39;ll get more into it with the state of JS, just that did have a lot more of the vibes, but some things I thought were notable component libraries, generally not popular.&lt;/p&gt;
&lt;p&gt;[15:40] Some of them are reasonably widely used, but like not loved. Radix were the most loved with Headless UI, also pretty high up there. Radix and Headless UI are not ones that live large in my mind, so it was cool to see those surfaced. Definitely, like, you know, obviously we talk about ShadCN pretty frequently, but Redux and Headless UI, good ones to check out.&lt;/p&gt;
&lt;p&gt;[16:03] Headless UI looks cool because it&#39;s unstyled, so it&#39;s just behavior, and then you make it look the way you want. Which, here for it, love it.&lt;/p&gt;
&lt;p&gt;[16:11] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; I think that&#39;s kind of the direction that they&#39;re all going with as well. Like, you know, R a bit more opinionated, but still flexible in a lot of ways compared to, let&#39;s say, your run of the mill material UI.&lt;/p&gt;
&lt;p&gt;[16:21] I think that&#39;s the general direction where these things are going. And Headless is great for that. I guess that&#39;s the appeal with Shad for me as well, right? Like I know a lot of people love ShadCN. The appeal is, well, if you don&#39;t like the rounded corners specifically, it&#39;s just a tailwind prop to change and you&#39;re kind of done.&lt;/p&gt;
&lt;p&gt;[16:36] So you have a lot of flexibility there.&lt;/p&gt;
&lt;p&gt;[16:38] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, definitely makes sense. It&#39;s been curious to see how slowly that has evolved over the years. I, I bailed out pretty quick on component toolkits cause I just, I don&#39;t want it to look like a bootstrap site.&lt;/p&gt;
&lt;h2 id=&quot;styledcomponents-still-big&quot;&gt;StyledComponents still big&lt;/h2&gt;
&lt;p&gt;[16:48] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; So there was also something that I found interesting just because it seemed like a, you know, narrative violation is styled components are still pretty dominant in terms of actual usage, like enormously widely used, you know, everyone talks aboutTailwind and whatever, but. Style of components, they&#39;re here to stay, they&#39;re sticking around.&lt;/p&gt;
&lt;p&gt;[17:05] Some other interesting data, 23 percent of respondents are still on either React 16 or 17. So this is like, how many years after 18 was released? And 6 percent of survey respondents don&#39;t know what version they use, which is interesting to me.&lt;/p&gt;
&lt;p&gt;[17:21] So, yeah. If you&#39;re using React 18, congrats, you are on the cutting edge. The only 68%, less than 70 percent of survey respondents are on React 18. Talking about nobody uses beta versions. Nobody uses advanced versions. I think it was like less than 1 percent have tried a canary. So rounding error. All right.&lt;/p&gt;
&lt;h2 id=&quot;state-of-js&quot;&gt;&lt;a href=&quot;https://2023.stateofjs.com/en-US&quot;&gt;State of JS&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[17:43] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; State of JS, the big one. Mo, you want to, you want to kick us off with your thoughts? Break up my monologue.&lt;/p&gt;
&lt;h2 id=&quot;a-note-on-survey-sample&quot;&gt;A Note on Survey Sample&lt;/h2&gt;
&lt;p&gt;[17:48] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; Sure. Good to start off with what you kind of start off generically about the survey results, which is you got to look at the sample size.&lt;/p&gt;
&lt;p&gt;[17:53] It&#39;s like the most important thing to do when you start with this, because it makes the data seem a lot more contextualized as a result. So a colleague of mine, she was talking about this and I kind of took notes and then looked through it and I was like, yeah, wow, that&#39;s very accurate. She was giving me her thoughts.&lt;/p&gt;
&lt;p&gt;[18:09] But the first thing is, location is heavily US based. So if you look at the respondents, 16 17 percent are from the US. If you combine Germany, France, and the UK, Those become close to the US respondents. They&#39;re about the same as the US respondents, a little bit more. So all of this data is heavily skewed by the US market.&lt;/p&gt;
&lt;p&gt;[18:25] Things like, let&#39;s say like the Indian developer community is very, very underrepresented. There was only about 500 respondents where that&#39;s about two, 3%. Whereas, you know, they should be a lot more because proportionately they&#39;ll have a larger developer community than that, which is represented.&lt;/p&gt;
&lt;p&gt;[18:41] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I think the total number of respondents was like 20 or 30, 000.&lt;/p&gt;
&lt;p&gt;[18:44] So hearing only 500 from India is like a little bit shocking. Yeah,&lt;/p&gt;
&lt;p&gt;[18:47] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; it&#39;s, it&#39;s quite poorly represented. Or the Netherlands, as an example, has got about 500 as well. The Netherlands is a big tech hub in Europe. A lot of big tech conferences happen, JavaScript conferences happen in the Netherlands because there&#39;s already a big community there.&lt;/p&gt;
&lt;p&gt;[19:00] So it&#39;s very interesting, I think it&#39;s probably more to do with marketing and how they got the word out, and which communities it goes to. And so when you have location being heavily based in the US, then it skews salaries quite significantly. US salaries for developers are much higher. than European salaries And so all of the salary data is being taken on sort of an average, and so that moves the whole scale, basically.&lt;/p&gt;
&lt;p&gt;[19:20] The other thing which kind of you hinted on, Carl, was it&#39;s almost exclusively male. So 94 percent men, which isn&#39;t great. It&#39;s really heavily, disproportionately male. Men who have responded to this. And then the worst view that you can see, and this should, if anyone has any doubts about this, just look at this view and hopefully your doubts will be completely gone but when you combine the gender and the yearly income views, you can see that men have a higher average salary.&lt;/p&gt;
&lt;p&gt;[19:47] Shocker. So the gender pay gap is very much there, and it&#39;s something to the degree of 20, 000 on average between men and women. Shocking, right? And unfortunately as well, again, racial demographic, it&#39;s mostly white respondents, 70 plus percent as well.&lt;/p&gt;
&lt;p&gt;[20:02] So there&#39;s, there&#39;s, the sample size isn&#39;t very representative, I&#39;d say. Still interesting findings, but just those caveats are very interesting to contextualize everything.&lt;/p&gt;
&lt;p&gt;[20:10] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Definitely. Yeah. It&#39;s funny. The salary to gender is one of the only things I did to play with the data. So it&#39;s funny that we both went straight for that. Yeah. Also on salary on, you know, US based salary, skewing it, you know, higher, I actually was, looking at that chart, looking at the, you know, the, the quartiles and seeing that my last job, like two years ago, my last full time software tech job was like, On the very high end of that.&lt;/p&gt;
&lt;p&gt;[20:36] So it&#39;s like, Oh, apparently I kind of maxed out the scale, which is interesting because I definitely have not, I was not at the top of the scale. I, my last salary is 171, 000. Like it was good. I was very happy with it, but. I know plenty of people who are making like double that. So I was surprised as much as US salaries will skew it higher, I was a little surprised to see the absolute high end of the scale, not really represented. Do you know, just knowing people who are making that.&lt;/p&gt;
&lt;p&gt;[21:04] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; So. Fascinating. You know, you say that because again, it&#39;s relative because if you, let&#39;s say like, look at the UK, 170, 000 per year, and your yearly salary is basically the top, top, top end, like maybe top two, 3 percent of developers. in the UK. So it&#39;s, it&#39;s all relative.&lt;/p&gt;
&lt;p&gt;[21:18] Like, like you say, yes, even in the U. S. you can go much higher and then it starts to become really skewed. So yeah, very interesting, but the data is never going to be accurate.&lt;/p&gt;
&lt;p&gt;[21:26] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Right, right, right. Yeah, I think top of market, I don&#39;t know, Netflix intentionally tries to pay top of market. I think they&#39;re in like 350 range.&lt;/p&gt;
&lt;p&gt;[21:33] I&#39;ve heard rumors, consider this a rumor, but I&#39;ve heard of like super top developers at OpenAI making upwards of like seven, eight, nine hundred k, a million dollars a year salary. So yeah, high end of the scale is crazy in the US, but we can, we can bail out of demographics for a minute.&lt;/p&gt;
&lt;p&gt;[21:52] I&#39;m going to just rapid fire some of these, some of the breakdowns, some of the analysis that I was looking at.&lt;/p&gt;
&lt;h2 id=&quot;vue-tops-angular-for-usage&quot;&gt;Vue Tops Angular for usage&lt;/h2&gt;
&lt;p&gt;[21:57] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Vue has surpassed Angular by usage according to this survey, which caveats about sample aside is interesting. Angular definitely not loved. It had a like net unfavorable view of it. I think majority of respondents had a negative view of it. it&#39;s still in competition with Vue and React by usage, but it is substantially more negative than either of those, than either React or Vue.&lt;/p&gt;
&lt;p&gt;[22:22] Everyone still loves Svelte. It was number one by like a long shot on interest and favorability rating, but not very top by actual usage. It has been consistently, growing in usage over the years. So React is still generally positive. It&#39;s still the most positive by rank. You know, in this list, it was number one most positive, but that&#39;s been declining over the last two or three years and is very tight with Svelte right now.&lt;/p&gt;
&lt;p&gt;[22:49] The dots were like practically overlapping, like definitely within margin of error for which one was more positive. Astro topped out the list of other options, It did not make the cut to be in the main list, but one of the shout out, Astro is in contention. it was funny.&lt;/p&gt;
&lt;h2 id=&quot;developer-happiness&quot;&gt;Developer Happiness&lt;/h2&gt;
&lt;p&gt;[23:05] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; The, they had a chart of happiness and generally all of the libraries people were happiest in 2018, which I just thought was funny because I tend to think of 2018 as like peak tech for, in a lot of different ways.&lt;/p&gt;
&lt;p&gt;[23:18] Like when I think of Reactiflux and its activity and its growth and its vibes. 2018 was definitely a banner year. So that seems to just generally be true across the industry. Everyone was happy in 2018 and people are less happy now.&lt;/p&gt;
&lt;p&gt;[23:31] Next usage has been growing pretty consistently for like the last four or five years by this survey. Remix has been pretty flat, which I put them in the same usage bucket. I put them in the same popularity bucket in my mind. So that was a little surprising to me. There&#39;s also, Remix had a much more negative perception than I expected. It&#39;s about even for, you know, positive and negative responses.&lt;/p&gt;
&lt;p&gt;[23:52] I love it. I thought it was great. So I&#39;m just surprised to see that. Over the last, like, three years, testing, usage of test tools. has grown pretty significantly, whether it&#39;s Jest, or VTest, or Playwright, or Cypress. All of them saw usage go way up in the last two to three years, which is very funny because that, that tracks very well with my experience of three to four years ago, nobody was writing tests.&lt;/p&gt;
&lt;p&gt;[24:17] Just, people actually started writing tests in the last couple of years, which is funny. Yeah, Playwright versus Cypress. The vibes are supported by the data. People love Playwright. It&#39;s got really great retention. It&#39;s got really great net favorability rating. Cypress, a little bit less so. It&#39;s still very widely used, but the retention chart was much more negative.&lt;/p&gt;
&lt;p&gt;[24:39] And it&#39;s just not as well loved, which generally tracks with the sentiment that I&#39;ve seen.&lt;/p&gt;
&lt;p&gt;[24:44] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yeah, I think I saw that Playwright Downloads had recently surpassed Cyprus&#39;s. I know I&#39;ve seen a lot of mentions of companies migrating from Cyprus to Playwright. So, yeah, matches my experience.&lt;/p&gt;
&lt;p&gt;[24:55] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; We literally, this week, migrated one of our clients from Cyprus to Playwright.&lt;/p&gt;
&lt;p&gt;[25:01] So, another anecdote of how the general vibes are going in the community.&lt;/p&gt;
&lt;p&gt;[25:05] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, Roboto just asked in the chat, what are people&#39;s problems with Cypress? I&#39;ve run into a bunch of weirdness on flaky tests and just general quirks, like the edges have been rough. I haven&#39;t really done enough with Playwright to say what&#39;s better about it, but it seems like it&#39;s based on a more stable foundation.&lt;/p&gt;
&lt;p&gt;[25:24] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; I can briefly speak to this. Cypress runs your entire test in the browser. It basically kind of like hijacks everything about the browser behavior and sort of re implements a lot of that itself. Whereas Playwright, the test is running externally. And it&#39;s sending, like, DevTools protocol commands to the browser.&lt;/p&gt;
&lt;p&gt;[25:42] CypressR also has a really weird not actually async model. The way I understand it is it actually runs through the entire test code ahead of time and collects a queued list of commands, and then it executes those later. So you can&#39;t even use, like, real async await in your test syntax, whereas with PlayWrite you can.&lt;/p&gt;
&lt;p&gt;[26:03] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Interesting. Yeah, because I think Cypress came out before, like, headless Chrome was a thing, because I remember they, all of the browser automation stuff from, you know, years gone by are very hacky. Like, they&#39;re scripting the browser in a just really janky way, and the browsers produced a headless variant that is more intentionally able to be scripted.&lt;/p&gt;
&lt;p&gt;[26:26] And so I&#39;m pretty sure that Cypress predates that change, and so they had to do the hacky weird stuff, and Playwright came about after that change, and they do less hacky weird stuff.&lt;/p&gt;
&lt;p&gt;[26:36] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; There&#39;s one more thing with the Cypress, I guess, model that pushed people away in the last couple of years, which was that they basically, they, I believe they&#39;re VC backed.&lt;/p&gt;
&lt;p&gt;[26:46] They needed to find a path towards monetization. So they released a paid model where you had a dashboard on their sort of like hosted platform. And then there was free alternatives. And they were scanning your node modules. There was this thing that came up where they were scanning node modules and sort of sabotaging if you were trying to use an open source alternative to their paid platform, which people really did not like.&lt;/p&gt;
&lt;p&gt;[27:09] And there was a lot of backlash. So I think a lot of people lost a lot of trust with Cypress as well after that.&lt;/p&gt;
&lt;p&gt;[27:13] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; That tracks. Okay. That&#39;s not great. Yep. Also in testing, the generically branded testing library is also losing ground, which I&#39;m surprised by. I loved it. I thought it hit a really great niche between like unit tests and full end to end tests.&lt;/p&gt;
&lt;p&gt;[27:28] But I guess my thought is maybe. Playwright is now stable enough to cover that use case with less setup process. Cause it did take quite a bit of work and influenced how I developed features when I had testing library tests in place. So maybe it&#39;s a similar benefit for less work using Playwright instead of testing library.&lt;/p&gt;
&lt;p&gt;[27:49] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; It is worth noting that Playwright actually added testing library inspired APIs like get by test.&lt;/p&gt;
&lt;p&gt;[27:56] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; And I have another hypothesis to this, which is again anecdotal, but it&#39;s from working with many different sort of clients. I think it might also be market led, and the reason I say that is because end to end tests are much easier to sell to your business stakeholders.&lt;/p&gt;
&lt;p&gt;[28:10] Oh, we&#39;re running and executing the full end to end lifecycle as if it was a user, and it helps prevent bugs because you can see when a flow, a major flow is broken. Whereas Component tests, whether they&#39;re with React testing library or any other solution or unit tests, are much smaller pieces of the segment.&lt;/p&gt;
&lt;p&gt;[28:26] And I think when you&#39;re crunched for budget, but you still want to have some level of testing and confidence as a business stakeholder, you&#39;ll push your developers to do more end to end tests because they understand it more. That&#39;s my hypothesis. I&#39;ve seen it more in conversations with some of the leaders and the companies that we&#39;ve been working with.&lt;/p&gt;
&lt;p&gt;[28:40] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, that makes sense. I personally find that a benefit because it&#39;ll, testing library lets me sidestep the whole, a whole set of questions. Like how do I log in? So weird stuff like that gets easier if you strip away the, you know, the stuff surrounding the feature you want to test. And once you&#39;ve just run through the interactions there, but it definitely would be easier to sell.&lt;/p&gt;
&lt;p&gt;[29:01] We&#39;re going to test the whole thing. All right. Many diversions later. So testing, State of JS. Vitest usage has really skyrocketed. It&#39;s been very impressive. Jest is still surprisingly well loved to me. Generally testing across the board, way up. Everyone is writing more tests. Moving out of tests into native.&lt;/p&gt;
&lt;p&gt;[29:20] There&#39;s generally, it looks like a lot more people are building native code. This is probably a reflection of how much work the React Native and Expo teams have done to make that feasible for people who are use, who are coming at it from web development. Like in the, you know, different runtime section of this, they had, are you using, Electron, Expo, Cordova, React Native, all sorts of things, including native mobile.&lt;/p&gt;
&lt;p&gt;[29:48] You know, just, are you building a native app? All of those are, well, all the modern popular options are way up. You know, Cordova is, you know, Declining, luckily, but React Native, Native Mobile, all of that is trending pretty way up.&lt;/p&gt;
&lt;p&gt;[30:02] One option that was brand new to me in this survey is Tauri. Looked like an option that people love for doing native stuff and wanted to shout it out.&lt;/p&gt;
&lt;p&gt;[30:11] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yeah, and for those who aren&#39;t familiar with it, Tauri is basically a competitor to Electron. You know, the idea is you&#39;re writing a web app that runs it runs within the desktop as a native like application.&lt;/p&gt;
&lt;p&gt;[30:22] The distinction being that with Electron, you&#39;re having to ship an entire separate standalone copy of Chrome to run your web app, whereas Tauri wraps whatever the native web view is for that platform. So, you&#39;re only shipping, say, like, A five meg set of assets instead of, you know, 150 megs of Chrome to run your couple of megs of JavaScript.&lt;/p&gt;
&lt;p&gt;[30:45] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; And just from a native app developer&#39;s purist perspective, I would, from a React natives perspective would say that&#39;s not really your native, but it&#39;s a good hybrid option, but that is just a personal thing because you&#39;re not rendering native views at the end of the day. You&#39;re rendering a web app with some connections onto the native layer APIs.&lt;/p&gt;
&lt;p&gt;[31:02] But that&#39;s generally the challenge with anything like Electron, Ionic, Capacitor, or Tauri.&lt;/p&gt;
&lt;p&gt;[31:08] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yep. Into like bundling and those tools, Webpack declining sharply. Really bad compared to others, like favorability and retention and all of that. Unfortunately, the way the questions are asked is, What have you used?&lt;/p&gt;
&lt;p&gt;[31:23] So there, it doesn&#39;t have a way of capturing What people currently use versus what they have used and have switched off. So it&#39;s hard to say whether people are actually not using Webpack anymore or, and whether they&#39;ve added new tools to their toolkit or whether they&#39;ve replaced it, that is not a question that we can answer with this dataset.&lt;/p&gt;
&lt;p&gt;[31:42] My, my intuition, my guess here would be that a lot of people are still using Webpack professionally, still working on a project that was spun up, you know, over the last two to five years. And, you know, switching bundlers is a really challenging project with not a lot of business value. So, yeah, I, I, it would not surprise me if a lot of people are still using Webpack at work, but have stopped relying on it for projects they make on their own or for, you know, open source work.&lt;/p&gt;
&lt;p&gt;[32:10] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Also worth noting on that, on that front, that, Create React app. There&#39;s still plenty of CRA apps out there, even though it&#39;s no longer officially maintained or recommended, and that has always used Webpack internally. And Next is still a Webpack wrapper. They&#39;ve been working on TurboPack, which I think now fully supports dev mode, but I don&#39;t think it supports production builds yet.&lt;/p&gt;
&lt;p&gt;[32:33] So, Next is still wrapping around Webpack for the foreseeable future.&lt;/p&gt;
&lt;p&gt;[32:38] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, generally, like, ESBuild and Vite have been the big winners here as Webpack is losing usage. Rollup is going up as well a little bit, but as far as I know, that&#39;s largely used by library maintainers, not app developers. Yeah, monorepo awareness is also growing a lot.&lt;/p&gt;
&lt;p&gt;[32:55] You know, the classics from, like, Several years ago where Yarn Workspaces and Lerna, those are declining. They are not the popular options anymore, but NX and PMPM are currently the leaders there, although I&#39;m not sure if people would answer, I&#39;m, I&#39;m, I&#39;m wondering if people might&#39;ve said, Oh yeah, I use PMPM when they didn&#39;t mean they use it for monorepos, that&#39;s not the primary use of PMPM as far as I know.&lt;/p&gt;
&lt;p&gt;[33:18] And TurboRepo from. Vercel is also growing, but for other runtimes, Bun is slightly more popular than Deno. Interesting to check in on.&lt;/p&gt;
&lt;p&gt;[33:27] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Now, is that, is that in sentiment or like actual usage amounts that we know of?&lt;/p&gt;
&lt;p&gt;[33:33] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; That was claimed usage. So people saying, yes, I have used this. More people said that for Bun.&lt;/p&gt;
&lt;p&gt;[33:39] But, who&#39;s to say if it was personal, who&#39;s to say if it was professional, playing with something is very different from introducing it in a work setting, and my intuition says that Deno is currently better positioned than Bunn to be used at work, which is a much stickier usage. Yeah, another fun stat that I caught and wanted to shout out.&lt;/p&gt;
&lt;p&gt;[33:57] 18 percent of respondents have not used any AI tools. You know, whether that&#39;s Copilot or ChatGPT or Claude. Yeah, 1 in 5 of tech people who are aware enough of the online Zeitgeist to respond to a survey have not used it at all.&lt;/p&gt;
&lt;p&gt;[34:14] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; Just another interesting fun one. Apparently, 50 percent of respondents are still using Lodash actively, which I found was interesting, but more interesting than that is the 33 percent that still use Moment, despite some of those APIs basically being available in the, in the browser APIs.&lt;/p&gt;
&lt;p&gt;[34:29] So, takes a long time to get rid of some third party libraries, it seems.&lt;/p&gt;
&lt;p&gt;[34:32] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, yeah, it really does. Yeah, and I wanted to shout out the 20 percent of people who responded that are still hoping for, a pipe operator and pattern matching. My heart goes out to you as one of you.&lt;/p&gt;
&lt;p&gt;[34:44] I, that&#39;s something, those are two features that I got really excited about and like. 2015 16 that we are still waiting for. So I think I&#39;m, I think I&#39;ve given up at this point. Yeah. And Mo, about, uh, on library usage, I was really surprised to see that RxJS had a lot of usage. I think of it as a niche library, but, but by survey responses, a surprisingly large number of people are making use of it.&lt;/p&gt;
&lt;p&gt;[35:09] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; That&#39;s quite interesting. I mean, the, the, the one that everyone makes jokes about is jQuery as well, which is 22 percent still, but you know, yeah, it&#39;s, it&#39;s, RxJS has always been more niche and I&#39;m, I think it was mainly used predominantly by the Angular community, if I&#39;m not mistaken, right? Someone from the, uh, from the comments is saying that it&#39;s still a first class tool in Angular, so that, that might check out as to why it&#39;s got such a high usage.&lt;/p&gt;
&lt;p&gt;[35:31] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Okay, that, that would scan. Sure, sure.&lt;/p&gt;
&lt;p&gt;[35:33] Okay. Maybe this is my React bias showing then.&lt;/p&gt;
&lt;p&gt;[35:37] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yeah, I mean, they&#39;ve, Angular has been introducing signals within the last couple major versions as they&#39;re, they are trying to put some emphasis on that, but RxJS is still very integrated into the Angular ecosystem.&lt;/p&gt;
&lt;p&gt;[35:49] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Gotcha. Okay. Looking at survey respondents generally, you know, the number of people who answered like the demographic questions at the beginning versus number of people who answered, who gave any answer for what content do you consume, like 80 to 90 percent do not consume content.&lt;/p&gt;
&lt;p&gt;[36:05] Like they did not give any answer for what content do you consume, which I just think is really. I think it&#39;s an important thing to keep in mind when you&#39;re, you know, as people are saying like, Oh, you know, Oh, everyone is, everyone&#39;s talking about this. Everyone&#39;s thinking about this. So and so made a video on this.&lt;/p&gt;
&lt;p&gt;[36:19] Like, you know what? Most people didn&#39;t see it. Most people are not thinking about that. Most people aren&#39;t even aware of that. I just think that, I just think that is a great, Demonstration of like the participation inequality that happens in so many software communities, or that happens in communities generally, where like 90 percent of the people are not participating in the same way as the most active 10%.&lt;/p&gt;
&lt;h2 id=&quot;dark-matter-developers&quot;&gt;&lt;a href=&quot;https://www.hanselman.com/blog/&quot;&gt;Dark Matter Developers&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[36:43] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; And I have a very specific link for that, which is Scott Hanselman&#39;s classic post on dark matter developers, people who are just going to work and doing their thing and going home, and they don&#39;t know about the Twitter discussions or what&#39;s popular or the trends. They&#39;re just doing their thing quietly.&lt;/p&gt;
&lt;p&gt;[37:01] And we don&#39;t hear about them because they&#39;re not involved in the discussions. But the&lt;/p&gt;
&lt;p&gt;[37:06] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; That is actually specifically the target that I&#39;m kind of going for, for this podcast. I want to be the once a month, one hour long summary of that fire hose. Like, you don&#39;t care enough to drink the entire fire hose, stick your face in front of the blast of water, but want to get the signal.&lt;/p&gt;
&lt;p&gt;[37:23] that&#39;s what I view our role here as. We pull that signal out so that you can spend one hour consuming it instead of More than that, If you, instead of it being a part time job, staying on top of the latest news, I want this podcast to be an effective way to do so.&lt;/p&gt;
&lt;p&gt;[37:37] So yeah. Hello, Dark Matter developers. All right. That is half an hour of content on State of JS, which is good because there was not a ton of, React news otherwise. So yeah, Mark, you want to take us into our lightning round links?&lt;/p&gt;
&lt;p&gt;[37:49] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yep. So having said that we do have a bunch of lightning round stuff to go through.&lt;/p&gt;
&lt;h2 id=&quot;nyt-and-slack-update-to-react-18-enzyme-to-blame&quot;&gt;&lt;a href=&quot;https://open.nytimes.com/enhancing-the-new-york-times-web-performance-with-react-18-d6f91a7c5af8&quot;&gt;NYT&lt;/a&gt; and &lt;a href=&quot;https://slack.engineering/balancing-old-tricks-with-new-feats-ai-powered-conversion-from-enzyme-to-react-testing-library-at-slack/&quot;&gt;Slack&lt;/a&gt; update to React 18 (Enzyme to blame)&lt;/h2&gt;
&lt;p&gt;[37:54] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; First off, a couple of interesting company migration blog posts. We were talking earlier about, you know, like only two thirds of respondents being on React 18 and the New York Times put up a pretty big post about how they just updated React. to React 18. Some good details on the work they had to do and some of the challenges they ran into, especially with some of their embedded interactive setups, and some information on some of the performance improvements that they saw.&lt;/p&gt;
&lt;p&gt;[38:21] One interesting note is that A lot of their work had to do with migrating from enzyme tests to React testing library. And so, on a very similar note, Slack put up a post where they said, you know, we have tons and tons of enzyme tests and we, we tried to migrate those to React testing library. And, it was so hard, we actually ended up trying to automate a lot of the conversion using a combination of AI language models and some various additional tools.&lt;/p&gt;
&lt;p&gt;[38:52] So, this goes back to the test, and to the whole test discussion. Like, tests provide value, but they&#39;re code. And code becomes legacy. And you have to update it and modernize it. And that in itself can be a real drag on trying to change things.&lt;/p&gt;
&lt;h2 id=&quot;rise-tools-launched&quot;&gt;&lt;a href=&quot;https://rise.tools/&quot;&gt;Rise Tools launched&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[39:05] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; So I&#39;ll jump in with a few things. First is that Rise Tools has been launched.&lt;/p&gt;
&lt;p&gt;[39:11] So Rise Tools is created by Mike Grabowski. So Mike is the former founder of Callstack and he&#39;s been very involved in the React Native ecosystem. It&#39;s basically, it&#39;s not tied to React Native, but it&#39;s basically targeting React Native for now. It&#39;s a way to build server driven apps. It&#39;s a server driven UI app where the server controls how the UI is layouted.&lt;/p&gt;
&lt;p&gt;[39:32] And it kind of comes with all things battery included, from the server, all the way up to the React primitives, and even some more opinionated UI design systems like Tamagui if you want to use it. It&#39;s kind of evolving in a way where it ends up being a bit of a meta framework on top of a meta framework.&lt;/p&gt;
&lt;h2 id=&quot;mos-talk-about-server-driven-mobile-ui&quot;&gt;Mo&#39;s talk about server-driven mobile UI&lt;/h2&gt;
&lt;p&gt;[39:48] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; So a meta meta framework, we&#39;re getting into that age of front end development. Um, but it&#39;s really cool. It&#39;s server driven UI is very difficult. And I talk about how difficult it is in mobile development, many places. And I did a talk recently at a meetup in Poland. So shameless plug. If you&#39;re interested to see why this is an actual challenge in the React native world, just take a look at that YouTube video and hopefully you&#39;ll get a bit of a primer.&lt;/p&gt;
&lt;p&gt;[40:11] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Gasp! A shameless plug on this podcast. What?&lt;/p&gt;
&lt;h2 id=&quot;nativewind-ui-launching&quot;&gt;&lt;a href=&quot;https://nativewindui.com/&quot;&gt;NativeWind UI launching&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[40:15] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; Next up, Native Wind UI is launching. So this goes very much along the same train of thought as we were having a conversation about with the state of React, where a lot of these component libraries are not popular anymore, but people want these sort of copy pastable code components that have 90 percent of the stuff there and they can modify and change it as much as they want.&lt;/p&gt;
&lt;p&gt;[40:35] It doesn&#39;t come with any behavioral APIs. It&#39;s just. UI wise, how do things look like and what do the components look like? So this is basically like Tailwind UI. It&#39;s going to be a paid UI kit, UI copy and pasteable components and templates. But I think it&#39;s interesting that the React Native community is going in this space.&lt;/p&gt;
&lt;h2 id=&quot;gluestack-too&quot;&gt;&lt;a href=&quot;https://gluestack.io/&quot;&gt;GlueStack too&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[40:51] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; Similarly, the GlueStack team. So GlueStack is, made by the former creators of NativeBase, which was another popular UI library and. GlueStack is basically the successor to that and they initially had a more batteries included opinionated API component library that is now going seemingly in a very similar direction to native WinDUI and Tailwind UI, which is, we have these copy pastable components.&lt;/p&gt;
&lt;p&gt;[41:16] So think of it as ShadCN as well, but in the React Native ecosystem. And the lovely thing about both of these libraries is, they work universally with React Native. So if you&#39;re targeting React Native on the web, these libraries will automatically work on both web and mobile, which is really cool, and a step in the right direction.&lt;/p&gt;
&lt;h2 id=&quot;swift-package-manager-support-moving-away-from-cocoapods&quot;&gt;&lt;a href=&quot;https://&quot;&gt;Swift Package manager support, moving away from CocoaPods&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[41:30] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; More in the React Native ecosystem, so, If you&#39;ve been in this ecosystem, you&#39;ll know that typically what we use on the iOS and MacOS front is we will use CocoaPods as a dependency and package manager. Now, CocoaPods is good, it works, it&#39;s one that&#39;s been around for a while. The iOS native community is moving towards Swift Package Manager that Apple created themselves.&lt;/p&gt;
&lt;p&gt;[41:53] And so now this PR got merged, but we will have Swift package manager support for React Native. So if you want to use Swift package manager, you now have the option to do so, which is going to be great for brownfield apps. So apps that are, some parts of it are in React Native, other parts are just purely native.&lt;/p&gt;
&lt;p&gt;[42:07] This will make it much easier to adopt if you&#39;ve already been using Swift package manager for your native apps.&lt;/p&gt;
&lt;p&gt;[42:11] Now, one of the things that has been a challenge with the React Native ecosystem is around out of tree platform support and how easy it is to integrate them with tools like Expo. So out of tree platforms, for everyone who&#39;s not aware, are platforms that are not iOS and Android.&lt;/p&gt;
&lt;p&gt;[42:26] So, web, macOS, Windows, AR, VR, headsets like Vision Pro, and so on and so forth. So those are all platforms that are not officially managed and maintained by Meta, but they have sort of community partners that are maintaining them. And so macOS is maintained by, uh, Microsoft. And one of the challenges there was how do you get Expo to work with it?&lt;/p&gt;
&lt;p&gt;[42:45] Because previously you would need to do it in a bare React Native app, which means you have to do a lot of the typing and the wiring and all of the infrastructure underneath it. There&#39;s this concept of config plugins in Expo, and now there&#39;s support for React native Mac OS, and people are seemingly getting ready to be able to develop desktop apps with Expo, which is really exciting.&lt;/p&gt;
&lt;p&gt;[43:03] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Sorry, wait, did you say that this is maintained by Microsoft?&lt;/p&gt;
&lt;p&gt;[43:06] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yes. Microsoft maintains the React native implementations for Windows and for Mac.&lt;/p&gt;
&lt;p&gt;[43:13] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Okay. Just needed to check that. Cool.&lt;/p&gt;
&lt;p&gt;[43:15] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; Yes. Yeah. this is one of the things with React Native where there&#39;s so many people involved now. It&#39;s not just Meta, it&#39;s Meta, Microsoft, Amazon, Shopify, and name a bunch of other companies.&lt;/p&gt;
&lt;h2 id=&quot;react-native-filament&quot;&gt;&lt;a href=&quot;https://twitter.com/mrousavy/status/&quot;&gt;React Native Filament&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[43:24] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; Next up, we have React Native Filament. So, it&#39;s a hot time in the 3D rendering space of React Native. there&#39;s a lot of stuff that&#39;s happening in the last few months. React 3 Fibers suddenly got a big boost in the React Native ecosystem. More and more people are talking about it. I&#39;ve seen a lot of talks in 2024 about it.&lt;/p&gt;
&lt;p&gt;[43:41] The Skia team, the React Native Skia team have also been talking about GPU and 3d rendering. So they did that at their talk in AppJS. We covered it in the podcast back in May. And so now the team at Margello have released React Native Filament. So it&#39;s a base 3d rendering engine built for React Native. The nice thing about it being C is that it works kind of out of the box for most of these native platforms.&lt;/p&gt;
&lt;p&gt;[44:02] It is seemingly, again, this is how it&#39;s marketed, is that it&#39;s basically with less than 50 lines of code for you to load a 3d model and basically have things like pan gestures, zooming, and all of that, which is really hard to get.&lt;/p&gt;
&lt;p&gt;[44:15] And you need to actually manually code a lot of that yourself. So this is really cool. We&#39;ll see how it, how it materializes and how it evolves. There&#39;s a lot of 3d libraries that are coming to fruition and you&#39;ve got to choose and see which ecosystem grows. So you&#39;re basically placing bets on horses and seeing which one kicks off.&lt;/p&gt;
&lt;h2 id=&quot;react-native-for-web-devs&quot;&gt;&lt;a href=&quot;https://expo.dev/blog/&quot;&gt;React Native for web devs&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[44:31] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; On the trend of what we talked with the state of JS and, you know, how, uh, native usage is growing, Kati Kraman from the Expo team, she&#39;s written an article, a guide to React Native for web React devs. So people that haven&#39;t been in the native space kind of understand what are the things that you need to learn sort of like a TLDR before you can start creating React Native apps.&lt;/p&gt;
&lt;p&gt;[44:51] This is amazing because frankly, this is one of the things that I always rave about and rant about, if you don&#39;t tell people about the gotchas, they&#39;ll come and burn themselves in the React Native ecosystem, and then they will hate React Native for the rest of their lives. So, I love education and good education like this, which is specifically targeted for web React devs.&lt;/p&gt;
&lt;h2 id=&quot;build-windows-apps-from-a-mac&quot;&gt;&lt;a href=&quot;https://devblogs.microsoft.com/&quot;&gt;Build Windows apps from a Mac&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[45:09] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; And last in this React Native train, at least in this one, is that one of the things, again, with out of tree platforms, again, with the Microsoft team, is that they maintain React Native Windows. But you need to have a Windows machine to develop for React Native with Windows, which many of us don&#39;t, myself included.&lt;/p&gt;
&lt;p&gt;[45:25] I have renounced the Windows days since many, many years ago. And so it makes it really hard to build Windows apps. And I&#39;ve always wanted to do it. I&#39;ve got an Xbox. You can build Xbox apps with React Native using the Windows implementation, but you need a Windows machine to be able to test your apps, which kind of sucks.&lt;/p&gt;
&lt;p&gt;[45:40] So they&#39;ve written an article on how you can build Windows apps, with React Native. On a Mac. The spoiler alert is that it&#39;s not straightforward, unfortunately, you have to boot up a parallel Windows machine and then sort of port forward stuff and then use it on a VM to test it out, which is not the best DevEx, but at least there is an escape hatch if you really are inclined to do so.&lt;/p&gt;
&lt;p&gt;[46:00] So hopefully that opens the doors to React Native Windows for more and more people who are using Macs as their development drivers.&lt;/p&gt;
&lt;h2 id=&quot;ecosystem-performance-group-e18e&quot;&gt;&lt;a href=&quot;https://e18e.dev/blog/e18e&quot;&gt;Ecosystem Performance group, e18e&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[46:06] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Changing gears entirely, we all know the jokes about how, you know, Node modules is the heaviest object in the known universe. you know, you install one package and you get 1, 500 dependencies installed as a result.&lt;/p&gt;
&lt;p&gt;[46:20] And there&#39;s a lot of factors that go into it. It&#39;s how the Node ecosystem has evolved. There&#39;s also cases where, you know, certain maintainers are obsessed with Maintaining infinite backwards compatibility instead of allowing the ecosystem to move forward with modern tooling. I&#39;ve been complaining for years that surely there has to be a way that we collectively as a community could go in and start You know, removing unnecessary dependencies from popular packages and end up improving, you know, download speeds and number of dependencies for everybody.&lt;/p&gt;
&lt;p&gt;[46:52] And there&#39;s now an actual community effort to do this. It&#39;s in a group called the Ecosystem Performance Effort. And it&#39;s just a community group. They&#39;ve got a Discord for discussing things and a repo for pointing things out. But it&#39;s things like, could we look at, say, the isnumber package? And find the most common parent packages that depend on it, and replace those.&lt;/p&gt;
&lt;p&gt;[47:16] And end up saving, you know, like, cutting down on dependency trees, and saving download bandwidth for everybody. I&#39;m very, very excited to see a lot of people actually spending time and effort on this. This is the kind of grassroots, you know, like, effort that actually benefits everybody.&lt;/p&gt;
&lt;p&gt;[47:32] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I saw a PR specifically about inlining &lt;code&gt;isNumber&lt;/code&gt;, and it did, I don&#39;t know if I quite 100 percent buy this math, but the math they did was, by inlining this package instead of installing it as a dependency, we save this many kilobytes. This module is downloaded this many times per week. You multiply those together and ergo, we are saving 440 gigabytes of bandwidth every week. I am, I wonder if that is how that shakes out in practice with like caching and stuff. But if by inlining is number, we can have 440 gigabytes less data flowing through the air. Uh, that&#39;s, that&#39;s fascinating.&lt;/p&gt;
&lt;h2 id=&quot;es2024-released&quot;&gt;&lt;a href=&quot;https://x.com/robpalmer2/status/1806064466510897240&quot;&gt;ES2024 released&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[48:10] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; We have also, ES2024 has been ratified by the, by TC39. We&#39;ve got the spec, which is very dense and hard to read. Fun. Rob Palmer, who&#39;s part of the team involved in that also announced it on Twitter. A lot of these are like pretty esoteric to me, like well formed Unicode strings.&lt;/p&gt;
&lt;p&gt;[48:30] I didn&#39;t know they were not well formed. Promise. withResolvers, I guess. I don&#39;t, I don&#39;t know what that is either. ResizableArrayBuffers, ArrayBufferTransfer. Two that are a little bit more salient for me is Array. GroupBy and Object. GroupBy. What a great thing to have added to the standard library. So that&#39;s nice.&lt;/p&gt;
&lt;p&gt;[48:50] There&#39;s a regex v flag for creating regular expressions with more advanced features for working with sets of strings. Yeah. Lots of stuff. We&#39;ve got a new spec, nothing too exciting though.&lt;/p&gt;
&lt;h2 id=&quot;memory-leaks-compiler-wont-save-you&quot;&gt;&lt;a href=&quot;https://schiener.io/&quot;&gt;Memory leaks: Compiler won&#39;t save you&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[49:00] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; We&#39;ve mentioned one or two different articles that looked at ways you can end up with memory leaks in React applications due to closures and how JavaScript engines actually behave, and there&#39;s, there&#39;s some discussion of what happens when React Compiler comes into play, and so the author of those posts did some more research and concluded that no, you can, you can still end up with memory leaks, even with React Compiler.&lt;/p&gt;
&lt;p&gt;[49:25] It sort of ends up in the same situation where. Capturing variables in scope, and due to the way JavaScript engines work, you can still end up with some memory leaks if you&#39;re not careful. Similarly, Jake Archibald, who&#39;s done a lot of articles and research over the years around JS behavior, also just put up a very, very similar post talking about memory leaks and garbage collection with closures.&lt;/p&gt;
&lt;p&gt;[49:46] So, this is stuff that I only sort of half understand myself. And so seeing people go into these deep technical dives to research the actual behavior is very helpful. We&#39;ve also, I believe we&#39;ve mentioned the new JSR package registry a couple times, created by the Deno team. And there was a video talk from, I believe, Luca, who&#39;s part of the Deno team, going into some details on You know, a lot of the stuff that I&#39;ve run into publishing the Redux packages over the last couple of years.&lt;/p&gt;
&lt;p&gt;[50:15] You know, issues trying to do the publishing, various problems with npm, goes into some details on how JSR is different, how it&#39;s supposed to work, and give some examples of actually doing the publishing. I don&#39;t know how much actual usage JSR is getting, but it&#39;s nice to see people actually rethinking this.&lt;/p&gt;
&lt;h2 id=&quot;react-native--flutter&quot;&gt;&lt;a href=&quot;https://x.com/mdj_dev/status/&quot;&gt;React Native + Flutter&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[50:33] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; The next thing is just a little bit of memes. More than anything, someone has decided to post a demo of React Native and Flutter running in a single app, which is quite funny. Believe it or not, I actually have tried this about a year ago. And the reason was we had someone who wanted to migrate away from Flutter.&lt;/p&gt;
&lt;p&gt;[50:50] So out of these memes, good conversations have actually started around how you can migrate and integrate Flutter and React Native together. In the case where someone wants to move away from Flutter. And you use React Native instead, so pretty fun times.&lt;/p&gt;
&lt;h2 id=&quot;bun-q3-roadmap&quot;&gt;&lt;a href=&quot;https://x.com/jarredsumner/status/1807731197046653438&quot;&gt;Bun Q3 roadmap&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[51:01] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Earlier this month, Jared Sumner posted about the Q3 roadmap for BUN.&lt;/p&gt;
&lt;p&gt;[51:06] He says it&#39;s not exhaustive. And in the replies, adds more like, Oh, maybe we&#39;ll get to this too. But new stuff they&#39;re looking, they, they want to add a full stack bundler. I&#39;m not exactly sure what that means, but I guess it&#39;s going to have overlap with like RSPack and probably server components too. I don&#39;t know.&lt;/p&gt;
&lt;p&gt;[51:22] A text lock file. So I guess another lock file format. I don&#39;t know why we need another package dependency tool. A CSS parser? on this roadmap seem confusing to me as a JavaScript runtime. He also talks about adding V8 C API compatibility, which sure, that makes sense, I can, I can see that, and getting better snapshots and timers for the bun test and mentions that he would like to ship a Postgres client sometime this quarter, but it&#39;s not in the main roadmap post that he made.&lt;/p&gt;
&lt;h2 id=&quot;learn-suspense-by-building-a-suspense-enabled-library&quot;&gt;&lt;a href=&quot;https://www./&quot;&gt;Learn Suspense by building a Suspense-enabled library&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[51:57] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; So, we&#39;ve been talking about suspense for, what, like six plus years now, but, there&#39;s been all the confusion over, how can you use suspense? Suspense only works with, React server components, or can you use it on the client? Are you supposed to use it on the client? There was a really good post that came out recently, Learn suspense by building a suspense enabled library that goes through some of the actual mechanics of trying to build a client side lib that uses suspense.&lt;/p&gt;
&lt;p&gt;[52:24] I&#39;ll be honest, I bookmarked this one because people have been begging for suspense support for RTKQuery. I looked at the issue actually, the issue is at least three years old. So I will probably be referring to this post when we hopefully get around to doing it, maybe later this year?&lt;/p&gt;
&lt;h2 id=&quot;marks-talk-why-use-redux-today-at-react-summit&quot;&gt;Mark&#39;s talk, &quot;Why Use Redux Today&quot; at React Summit&lt;/h2&gt;
&lt;p&gt;[52:39] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; And the obligatory self plug, so I gave a talk at React Summit last month on why use Redux today, because this is a question that gets asked all the time.&lt;/p&gt;
&lt;p&gt;[52:50] TLDR, there&#39;s a lot of reasons why people adopted Redux in the first place. Some of those reasons no longer make sense, like avoiding the legacy context API, but the architectural reasons to consider using Redux are still valid. Being able to have a centralized store, being able to see that the state changes in the dev tools, having a well documented pattern for keeping state outside the component tree, So, it&#39;s not a lot of a sales pitch, it&#39;s like half of a history lesson, and then, discussions of trade offs, because I still find myself unable to give an unambiguous sales pitch.&lt;/p&gt;
&lt;h2 id=&quot;chrome-collects-extra-data-for-google-websites&quot;&gt;&lt;a href=&quot;https://x.com/&quot;&gt;Chrome collects extra data for Google websites&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[53:24] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Cool. This is sort of general tech news a little bit, but Chrome apparently gives Google properties privileged information about your system resources, which is sketchy as heck. Why does Google need to know how much CPU my computer is currently using? Anti competitive behavior. Chrome taking advantage of vertical integration to suck up more data to use for reasons. Not great. Not exciting.&lt;/p&gt;
&lt;h2 id=&quot;component-composition-colocation&quot;&gt;&lt;a href=&quot;https://bobaekang.com/blog/&quot;&gt;Component, composition, colocation&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[53:48] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; There was a really good post talking about trade offs and various architectural patterns between different ways to fetch data. Do you fetch data in hooks as components render? Do you do suspense based data fetching that starts nested down in your component tree versus do you try to kick it off, higher in the component tree, say like with a route or a page loader? Some very good actual thoughts of trade offs between these different patterns.&lt;/p&gt;
&lt;h2 id=&quot;secret-knowledge-to-self-host-nextjs&quot;&gt;&lt;a href=&quot;https://www.flightcontrol.dev/&quot;&gt;Secret knowledge to self-host Next.js&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[54:15] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; And then, there was a good article from the folks at Flight Control, where they talked about challenges in trying to self host Next. js anywhere other than Vercel. It&#39;s feasible, but you definitely have to do some extra work.&lt;/p&gt;
&lt;p&gt;[54:29] Hosting Next on Vercel is obviously the happy path, and there&#39;s some challenges to try to fill in some of the pieces that Vercel would provide for you.&lt;/p&gt;
&lt;h2 id=&quot;node-can-strip-ts-types-soon&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/node/pull/&quot;&gt;Node can strip TS types soon?&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[54:37] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Last but not, not entirely least, a few bits of news from the Node ecosystem. Node has merged a prototype PR to strip types and allow being able to just run TypeScript files directly.&lt;/p&gt;
&lt;p&gt;[54:50] Obviously, they&#39;re not actually checking the types, but similar to like TS Node, at least stripping off the types so it can just execute the code. Very perfect concept, but they&#39;re interested in iterating on it.&lt;/p&gt;
&lt;h2 id=&quot;native-sqlite-drive-in-node&quot;&gt;&lt;a href=&quot;https://nodejs.org/docs/latest/api/&quot;&gt;Native SQLite drive in Node&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[55:01] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, there&#39;s also, there&#39;s now a native SQLite driver in Node. Like if you&#39;re, if you have Node, you can now use SQLite. Wild! Apparently this came out of As Node was adding support for more browser stuff, like, apparently, I actually didn&#39;t really know this, you can also use local storage, quote unquote, from within Node, and that is backed by SQLite, and so then they did the work, after they got local storage in there, they added on a native SQLite driver.&lt;/p&gt;
&lt;p&gt;[55:30] I have been interested in Sqlite and the opportunities that it brings for like development patterns for a while, I&#39;m actually making use of it in a bot that we use here in Reactiflux. I have a Kubernetes cluster set up with a Sqlite database just to keep everything co located and local. So I just have to back up a file instead of having to keep a running database server somewhere.&lt;/p&gt;
&lt;p&gt;[55:52] So yeah, just seeing more motion on Sqlite and seeing it get closer to the, uh, the actual runtime is, Very cool. I think that&#39;s awesome.&lt;/p&gt;
&lt;h2 id=&quot;node-moving-away-from-corepack&quot;&gt;&lt;a href=&quot;https://github.com/nodejs/TSC/pull/&quot;&gt;Node moving away from CorePack?&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[56:00] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Then, last item. So, Node ships with the npm package manager. And you&#39;ve always had to use npm to then install other package managers like yarn and pnpm globally. There&#39;s been a long running effort to give Node a way to more directly install and use other package managers automatically.&lt;/p&gt;
&lt;p&gt;[56:21] If a project actually specifies it, and that&#39;s involved Node shipping a tool called CorePack. And it&#39;s been considered experimental this whole time, and it now seems as if there&#39;s discussions about removing CorePack. from Node. Folks like the Yarn maintainer are not happy about this, and I&#39;ve seen a bunch of arguing about it, even within the last 24 hours.&lt;/p&gt;
&lt;p&gt;[56:43] So, who knows where this is going to land. You know, it&#39;s not like it prevents you from using Yarn or PMP in either way, it&#39;s about ease of usability. But clearly there&#39;s a lot of both technical debate and opinionated feelings involved.&lt;/p&gt;
&lt;p&gt;[56:56] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, I&#39;m surprised to see a move towards getting removed.&lt;/p&gt;
&lt;p&gt;[56:59] It seems like a very valuable thing to have. It seemed very in line with the general direction of trying to decouple NPM from Node. js. But like you said, it&#39;s, this seems to be still very early.&lt;/p&gt;
&lt;p&gt;[57:12] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; I&#39;m also quite surprised we&#39;ve started using Corepack, and I think it&#39;s actually in the interest of other package manager maintainers, but I&#39;m surprised they have backlash, interested to definitely read more about it.&lt;/p&gt;
&lt;p&gt;[57:21] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; All right. That is the last link that we have. Thank you everyone for joining us. We&#39;ll be back on the last Wednesday of the month here in the live stage or back in your podcast feed just as soon as we can, which will hopefully be before Monday.&lt;/p&gt;
&lt;p&gt;[57:33] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; Thank you everyone for having me. Thank you for listening on to my rambling as always.&lt;/p&gt;
&lt;p&gt;[57:37] Always a pleasure and see you all next month.&lt;/p&gt;
&lt;p&gt;[57:39] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Likewise, my two things, I will hopefully be publishing a very, very updated version of the Redux Docs Essentials tutorial within, like, the next few days, I&#39;ve been working on it all year, and I will be glad to have that done. And as I mentioned at the start, I&#39;m looking for a new position.&lt;/p&gt;
&lt;p&gt;[57:54] So, if you have suggestions, let me know. Please contact me.&lt;/p&gt;
&lt;p&gt;[57:57] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; We gather sources from This Week in React, Bytes. dev, React status, Next. js Weekly, the React. js subreddit, and here in Reactiflux from the Tech Reads and News channel, as well as just following a million people on Twitter and looking for articles that way.&lt;/p&gt;
&lt;p&gt;[58:11] If you see anything that it seems like we missed, definitely send us a message. An email at hello at reactiflux. com with T M I R in the subject line. That&#39;s an acronym for the show. I read every email that comes in, including spam. So I will read it, even if I don&#39;t respond to it. We actually got a tip about the RISE tools for React Native.&lt;/p&gt;
&lt;p&gt;[58:30] Thank you for sending in a tip. That&#39;s our first one. Shout out. Thank you. If this is a show that you get value from and want to support, the best way to do so is, like, subscribe. Give it a review, help us show up in discovery charts for other people, or send it to your co workers, even if that gives away the secret of how you know so much about React.&lt;/p&gt;
&lt;p&gt;[58:46] Thank you so much, see you next month.&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2024-07</link><guid isPermaLink="false">reactiflux-tmir-2024-07</guid><pubDate>Tue, 30 Jul 2024 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>This Month in React, June 2024: React 19 delayed (drama-ish), why no JS Laravel, TS 5.5 and more</title><description>&lt;iframe src=&quot;https://podcasters.spotify.com/pod/show/reactiflux/embed/episodes/TMiR-2024-06-React-19-delayed-drama-ish--why-no-JS-Laravel--TS-5-5-and-more-e2lee77&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;Quick hits
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#layoffs-updates&quot;&gt;00:51&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://layoffs.fyi/&quot;&gt;Layoffs.fyi&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#the-riseand-fallof-the-software-developer&quot;&gt;01:35&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.adpri.org/the-rise-and-fall-of-the-software-developer/&quot;&gt;Software jobs down 20% vs 2018? From ADP&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#new-releases&quot;&gt;02:12&lt;/a&gt;]&lt;/code&gt; New releases
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://turbo.build/blog/turbo-2-0&quot;&gt;Turborepo 2.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://marmelab.com/blog/2024/06/20/react-admin-v5.html&quot;&gt;React Admin v5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://rsbuild.dev/community/releases/v0-7&quot;&gt;Rsbuild 0.7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/biomejs/status/1797963672004043040&quot;&gt;Biome 1.8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://astro.build/blog/astro-4100/&quot;&gt;Astro 4.1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://valibot.dev/blog/valibot-v0.31.0-is-finally-available/&quot;&gt;Valibot 0.31.0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#upcoming-conferences&quot;&gt;06:51&lt;/a&gt;]&lt;/code&gt; Conferences (&lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;React&lt;/a&gt;, &lt;a href=&quot;https://confs.tech/javascript&quot;&gt;Javascript&lt;/a&gt;)
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://reactnexus.com/&quot;&gt;React Nexus&lt;/a&gt; July 4-5, 2024. Bangalore, India&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://chainreactconf.com/&quot;&gt;Chain React 2024&lt;/a&gt; July 17-19, 2024. In person in Portland, OR, USA&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://thegeekconf.com/&quot;&gt;The Geek Conf&lt;/a&gt; July 25, 2024. Berlin, Germany&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.wearedevelopers.com/world-congress&quot;&gt;WeAreDevelopers World Congress&lt;/a&gt; Berlin, Germany &amp;amp; Online July 17-19&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://singapore.cityjsconf.org/&quot;&gt;CityJS Singapore&lt;/a&gt; Singapore, Singapore July 24-26&lt;/li&gt;
&lt;li&gt;&lt;del&gt;We Love JS&lt;/del&gt; Unfortunately this appears to be a &lt;a href=&quot;https://twitter.com/_jessicasachs/status/1811394314112565301&quot;&gt;fake event&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.reactrally.com/&quot;&gt;React Rally&lt;/a&gt; August 12-13, 2024. Salt Lake City, UT, USA&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;Main Content
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#suspensegate&quot;&gt;09:43&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/facebook/react/pull/26380&quot;&gt;React 19 delayed&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#this-is-the-exact-build-well-release-as-190&quot;&gt;09:55&lt;/a&gt;]&lt;/code&gt; Previously, per Andrew: &lt;a href=&quot;https://x.com/acdlite/status/1797668537349328923&quot;&gt;React 19 &lt;em&gt;was&lt;/em&gt; ready to release&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;TKDodo: &lt;a href=&quot;https://tkdodo.eu/blog/react-19-and-suspense-a-drama-in-3-acts&quot;&gt;React 19 and Suspense - A Drama in 3 Acts&lt;/a&gt; , and also &lt;a href=&quot;https://blog.codeminer42.com/how-react-19-almost-made-the-internet-slower/&quot;&gt;How React 19 (Almost) Made the Internet Slower&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#joe-savona-some-thoughts-on-the-suspense-changes-from-19-rc&quot;&gt;19:03&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/en_JS/status/1803480672327311425&quot;&gt;Joe Savona “We&#39;ll hold the 19 release”&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;What does the React team &lt;em&gt;want&lt;/em&gt; for data fetching?
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Seb: &lt;a href=&quot;https://x.com/sebmarkbage/status/1801258093327593717&quot;&gt;“We never released official Suspense on the client, we did RSCs instead”&lt;/a&gt; and &lt;a href=&quot;https://x.com/sebmarkbage/status/1801294251965198578&quot;&gt;“Some people got the render-as-you-fetch memo. Some people chose to ignore it.”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Andrew: &lt;a href=&quot;https://x.com/acdlite/status/1803551296974168171&quot;&gt;“the community shouldn’t think ‘we bullied React into changing fetching strategies”&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;Related: how do we communicate with the React team?
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#tanner-linsley-react-needs-a-permanent-working-group&quot;&gt;21:33&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://twitter.com/tannerlinsley/status/1802798385810018769&quot;&gt;Tanner Linsley: “I feel there needs to be a permanent React + community working group”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://x.com/en_JS/status/1803480684331483644&quot;&gt;Joe Savona: “we’re working on ideas to get feedback earlier and more users trying canaries”&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#tc39-proposal-advances&quot;&gt;23:42&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/robpalmer2/status/1801239842908438694&quot;&gt;TC39 proposals advanced&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#react-partners-with-codemod&quot;&gt;26:05&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://codemod.com/blog/react-announcement&quot;&gt;Codemod partners with React&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#react-compiler&quot;&gt;27:52&lt;/a&gt;]&lt;/code&gt; React Compiler
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#i-tried-react-compiler-today,-and-guess-what-&quot;&gt;28:03&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.developerway.com/posts/i-tried-react-compiler&quot;&gt;I tried React Compiler today, and guess what... 😉&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#understanding-react-compiler&quot;&gt;29:32&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://tonyalicea.dev/blog/understanding-react-compiler/&quot;&gt;Understanding React Compiler&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#why-dont-we-have-a-laravel-for-javascript-yet&quot;&gt;29:50&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://wasp-lang.dev/blog/2024/05/29/why-we-dont-have-laravel-for-javascript-yet&quot;&gt;Why We Don&#39;t Have a Laravel For JavaScript... Yet&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=yaodD79Q4iE&quot;&gt;Why Don&#39;t We Have A Laravel For JavaScript?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#vercel-ship-2024&quot;&gt;35:45&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://vercel.com/blog/vercel-ship-2024&quot;&gt;Vercel Ship 2024&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#ts-55&quot;&gt;37:35&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-5-5/?ck_subscriber_id=1888282043&quot;&gt;TS 5.5 released&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=sciBO_IaxTw&quot;&gt;Matt Pocock breaks it down&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#mind-the-gap-talk&quot;&gt;40:41&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=1g5ruM-16_Y&amp;amp;t=7595s&quot;&gt;Mind the Gap by Ryan Florence&lt;/a&gt; at Big Sky Dev Con&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;React Native Stuff:
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#lorenzo-sciandra-exiting-react-native&quot;&gt;41:36&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://x.com/Kelset/status/1800158749811966280&quot;&gt;Lorenzo leaving RN world 😭&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#expo-atlas&quot;&gt;43:47&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://expo.dev/blog/introducing-expo-atlas&quot;&gt;Expo Atlas available&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#expo-adds-compiler-support&quot;&gt;46:40&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/expo/expo/pull/29168&quot;&gt;Expo adding React Compiler support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#starlinks-react-native-app&quot;&gt;46:52&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.notjust.dev/blog/react-native-starlink&quot;&gt;Starlink’s RN story&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#expo-router-35&quot;&gt;47:14&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://twitter.com/Baconbrix/status/1788235769812795559&quot;&gt;Expo Router 3.5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#sf-symbols-beta-support-in-expo&quot;&gt;48:16&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://docs.expo.dev/versions/latest/sdk/symbols/&quot;&gt;SF Symbols Beta Support in Expo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;⚡Lightning round ⚡
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#react-internals-explorer&quot;&gt;50:03&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://jser.dev/2024-05-11-introducing-rie/&quot;&gt;React Internals Explorer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#whats-new-in-javascript-frameworks-for-may-2024&quot;&gt;50:44&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://developer.chrome.com/blog/frameworks-may-2024&quot;&gt;What&#39;s new in JavaScript Frameworks (May 2024)&lt;/a&gt;
-[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#memory-leaks&quot;&gt;51:24&lt;/a&gt;] Memory leaks:
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://lucumr.pocoo.org/2024/6/5/node-timeout/&quot;&gt;Memory Leaks from LocalAsyncStorage?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;a href=&quot;https://schiener.io/2024-03-03/react-closures&quot;&gt;Sneaky React Memory Leaks: How useCallback and closures can bite you&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Follow-up: &lt;a href=&quot;https://schiener.io/2024-05-29/react-query-leaks&quot;&gt;Sneaky React Memory Leaks II: Closures vs React Query&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#data-fetching-patterns-in-single-page-applications&quot;&gt;52:21&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://martinfowler.com/articles/data-fetch-spa.html&quot;&gt;Data Fetching Patterns in Single-Page Applications&lt;/a&gt; from the Martin Fowler blog&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#migrating-to-the-next-app-router-with-zero-downtime&quot;&gt;57:19&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.icodeit.com.au/posts/modularizing-react-apps&quot;&gt;Modularizing React Applications with Established UI Patterns&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#deno-standard-library-nearing-10&quot;&gt;58:12&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://snyk.io/blog/10-modern-node-js-runtime-features/&quot;&gt;10 modern Node.js runtime features to start using in 2024&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://workos.com/blog/migrating-to-next-js-app-router-with-zero-downtime&quot;&gt;Migrating to the Next.js App Router with Zero Downtime&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://deno.com/blog/stabilize-std&quot;&gt;Deno announces the standard library is nearing 1.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-06#why-dont-we-do-acid-tests-anymore&quot;&gt;59:11&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://twitter.com/vcarl_/status/1805627502036983995&quot;&gt;Why don’t we have things like the Acid3 test anymore?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/htmx-simplicity-in-an-age-of-complicated-solutions&quot;&gt;01:03:09&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.erikheemskerk.nl/htmx-simplicity/&quot;&gt;htmx: Simplicity in an Age of Complicated Solutions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;[00:00] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Hello, thanks for joining us. This is June&#39;s edition of This Month in React, where we recap and digest the recent developments in the ever evolving React and web ecosystem. We&#39;re coming to you live from Reactiflux, the place for professional React developers.&lt;/p&gt;
&lt;p&gt;[00:13] I&#39;m Carl, I&#39;m a staff product developer and freelance community manager here at Reactiflux, where I run community programs like these events and build tools that help keep the community going.&lt;/p&gt;
&lt;p&gt;[00:24] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Hi, I&#39;m Mark Erikson. My day job is working at Replay. io where we&#39;re building a time traveling debugger for JavaScript. And outside of that, I do Redux stuff.&lt;/p&gt;
&lt;p&gt;[00:33] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; Hi everyone. I&#39;m Mo. I head the mobile team at Theodo. I&#39;m quite active in the React Native community and I organized the React Native London meetup and here and there dabble in open source with a couple of libraries in the React Native ecosystem. Very happy to be here.&lt;/p&gt;
&lt;p&gt;[00:47] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Uh, I&#39;m just going to start off with some quick hits of new releases and conferences.,&lt;/p&gt;
&lt;h2 id=&quot;layoffs-updates&quot;&gt;Layoffs updates&lt;/h2&gt;
&lt;p&gt;[00:51] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Starting off immediately, because the market, the job market is so bad, I&#39;ve been reading off stuff from layoffs.fyi.&lt;/p&gt;
&lt;p&gt;[00:59] We&#39;re not quite at the end of June, it&#39;s a couple of days left at time of recording, but most of the way through June, we&#39;re at about 9. 2, 000 laid off from 40 companies, which is down, I mean compared to six months ago we&#39;re down substantially, but compared to two years ago we are up substantially, so it&#39;s still not great. I&#39;ve seen some other broader metrics trickling out from other places, like I saw a link from ADP that I unfortunately don&#39;t have handy suggesting that the overall like, tech market is at about 80 percent of it was, I believe, compared to 2018.&lt;/p&gt;
&lt;h3 id=&quot;the-riseand-fallof-the-software-developer&quot;&gt;&lt;a href=&quot;https://www.adpri.org/the-rise-and-fall-of-the-software-developer/&quot;&gt;The rise—and fall—of the software developer&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[01:35] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, I, I found that really interesting because between hearing headlines about like record hiring during the pandemic and record layoffs in the two years, after that, it was like, Where do we end up? So that&#39;s the first data point I&#39;ve seen, uh, addressing that question of, like, what&#39;s the net gain loss, and it suggests net loss of, like, 20%, which seems massive, but yeah, it&#39;s also, it&#39;s ADP, I don&#39;t know how much to trust that, I would assume that they got a very large sample size, but I&#39;m not sure how they defined, like, tech, so, I don&#39;t really know how to interpret that in, through a lens of like software development.&lt;/p&gt;
&lt;h2 id=&quot;new-releases&quot;&gt;New Releases&lt;/h2&gt;
&lt;p&gt;[02:12] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; But yeah, moving on to some new releases.&lt;/p&gt;
&lt;h3 id=&quot;turborepo-20&quot;&gt;&lt;a href=&quot;https://turbo.build/blog/turbo-2-0&quot;&gt;Turborepo 2.0&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[02:14] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; There is TurboRepo 2. 0. That&#39;s probably especially relevant if you&#39;re doing stuff with Next. It looks like it&#39;s mostly like a fancier UI. They&#39;re doing like a pretty high effort in terminal UI. Like it&#39;s, you know, reactive and interactive. And you can now break down your logs on a per task basis rather than it just being, you know, a constant scroll back the way terminals usually are.&lt;/p&gt;
&lt;p&gt;[02:38] So that seems neat. Oh, they had some new docs, and it looks like they included some, like, fundamental information about Monorepos, which seems cool.&lt;/p&gt;
&lt;h2 id=&quot;react-admin-v5&quot;&gt;React Admin v5&lt;/h2&gt;
&lt;p&gt;[02:47] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; React Admin released version five. We actually had Francois Zaniotto, hope I&#39;m not mispronouncing that, on as a guest a couple of weeks ago, and I think he&#39;s super cool.&lt;/p&gt;
&lt;p&gt;[02:57] I love his ethos for the company that he&#39;s building, which maintains React Admin and does agency work. So I just wanted to shout that out.&lt;/p&gt;
&lt;h3 id=&quot;rsbuild-07&quot;&gt;&lt;a href=&quot;https://rsbuild.dev/community/releases/v0-7&quot;&gt;Rsbuild 0.7&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[03:04] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; RS build released version 0. 7, which they say is going to be the last release before 1. 0. Mark, you had some thoughts?&lt;/p&gt;
&lt;p&gt;[03:14] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; ByteDance, the folks behind TikTok, have a massive web tooling infrastructure team. They&#39;ve actually rebuilt Webpack in Rust, and I know that, you know, rewrite it in Rust is its own meme at this point, but it seems like they&#39;ve, they&#39;ve truly built a Webpack compatible version in Rust called RSPack. On top of that, they have a higher level abstraction layer called RSBuild, which has an easier configuration format, a little bit like ESBuild does. if you actually look in their docs, they have a migration guide for switching from Create React app to RSBuild. I did that on a little side project a few months ago.&lt;/p&gt;
&lt;p&gt;[03:55] It was really easy to switch and the compile time dropped from like 30 seconds to less than a second. it feels like a, an actually viable competitor tool.&lt;/p&gt;
&lt;p&gt;[04:06] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Nice. Super cool.&lt;/p&gt;
&lt;h3 id=&quot;biome-18&quot;&gt;&lt;a href=&quot;https://x.com/biomejs/status/1797963672004043040&quot;&gt;Biome 1.8&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[04:08] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; We&#39;ve also got biome 1. 8. Yeah. I have a soft spot for biome. I was an early supporter of Rome. I have been eager to see what comes out of that.&lt;/p&gt;
&lt;p&gt;[04:17] So yeah, it looks like they&#39;ve got like new support for CSS. They have better support for language servers in workspaces, so if you&#39;ve got like a big monorepo, it should work a little bit better. New reporters, migration, some more linting options, but yeah, Biome is like kind of an all in one. They try to do like formatting and linting and, yeah, it&#39;s a bundle play.&lt;/p&gt;
&lt;p&gt;[04:38] They&#39;re taking in a bunch of tools that, were separate and doing it all as one package.&lt;/p&gt;
&lt;p&gt;[04:42] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; And written in Rust.&lt;/p&gt;
&lt;p&gt;[04:44] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Written in Rust. Sure. So super fast, blazing fast. Is blazing fast still cool?&lt;/p&gt;
&lt;h3 id=&quot;astro-410&quot;&gt;&lt;a href=&quot;https://astro.build/blog/astro-4100/&quot;&gt;Astro 4.10&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[04:51] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; There&#39;s also Astro 4. 10. I am hoping to play around with Astro this month. So maybe I&#39;ll be able to actually, you know, say some more intelligent things about what the experience is.&lt;/p&gt;
&lt;p&gt;[05:01] But I, I know lots of people who love the tool. It looks like some small improvements, nothing too major.&lt;/p&gt;
&lt;h3 id=&quot;valibot-031&quot;&gt;&lt;a href=&quot;https://valibot.dev/blog/valibot-v0.31.0-is-finally-available/&quot;&gt;Valibot 0.31&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[05:06] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; This is a new library to me, Valibot released 0.31.&lt;/p&gt;
&lt;p&gt;[05:10] It&#39;s a competitor to Zod, which does like schema validation or, you know, data validation through a schema with like type generation and all that kind of stuff.&lt;/p&gt;
&lt;p&gt;[05:19] This looks like a pretty solid competitor. They talk about, tree shaking and stuff, which I&#39;m broadly skeptical of tree shaking as a general promise. It&#39;s very difficult to verify.&lt;/p&gt;
&lt;p&gt;[05:30] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; My understanding is that Zod, when you import it, you&#39;re basically importing a giant object that has all the possible validation types built in, and I think Valobot&#39;s sales pitch is that it&#39;s a bunch of individual functions, and so you would only import the actual bits that you need.&lt;/p&gt;
&lt;p&gt;[05:47] And therefore, you&#39;re not getting a giant blob of runtime code.&lt;/p&gt;
&lt;p&gt;[05:51] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, I think they said it was like, could be up to like 95 percent smaller than Zod, while also like significantly simplifying the mental model of the schema and the type validation.&lt;/p&gt;
&lt;p&gt;[06:02] If I can think about it less and have it affect the size of my code less, like both of those sound like things that I would want.&lt;/p&gt;
&lt;p&gt;[06:10] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; I guess the thing is, it&#39;s a question of how much you want to really optimize your bundle size and at what stage you&#39;re at. If I&#39;m recalling correctly, Zod minified and gzipped was about 60kb, something around that size.&lt;/p&gt;
&lt;p&gt;[06:22] So it is quite a chunky library to add into your dependencies. So, I guess if this actually delivers on that promise and it&#39;s closer to 90 percent less than that, which is I guess 6kb, it wouldn&#39;t be too bad of a shave to do, I&#39;d say. But, remains to be seen if it&#39;s in practice going to be that good.&lt;/p&gt;
&lt;p&gt;[06:40] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, I just pulled up Bundlephobia for Zod, and it&#39;s, yep, 61kb minified, 14kb minified and zipped. Which is Hefty. Yeah, that&#39;s enormous. That would give me a lot of pause.&lt;/p&gt;
&lt;h2 id=&quot;upcoming-conferences&quot;&gt;Upcoming Conferences&lt;/h2&gt;
&lt;p&gt;[06:51] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Onto some conferences. Mo, I think you had a few.&lt;/p&gt;
&lt;p&gt;[06:53] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; Yeah, I&#39;ll jump right in.&lt;/p&gt;
&lt;h3 id=&quot;react-nexus&quot;&gt;&lt;a href=&quot;https://reactnexus.com/&quot;&gt;React Nexus&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[06:54] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; So, firstly, at the very beginning of July, 4th to 5th of July, React Nexus is happening in India.&lt;/p&gt;
&lt;p&gt;[07:00] One of the great conferences that I attended last year, I really enjoyed. The crowd there was quite a, quite a large crowd as well. I think there&#39;s about 500, 600 people. So a massive conference, but people are so friendly and I got to meet a lot of lovely people. So would highly recommend if you&#39;re sort of in the South Asia region to, to definitely give it a shot, if you can make it to Bangalore.&lt;/p&gt;
&lt;h3 id=&quot;chain-react&quot;&gt;&lt;a href=&quot;https://chainreactconf.com/&quot;&gt;Chain React&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[07:19] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; Mid July, we have Chain React and this is hosted by the folks at Infinite Red. Another one of those great conferences. I&#39;ve not been to Chain React myself, but I&#39;m, So involved in the React Native community that I get told every year, why are you not at Chain React? And you&#39;re missing out on one of the best conferences ever.&lt;/p&gt;
&lt;p&gt;[07:34] So the FOMO hits real hard every time around Chain React. The folks at Infinite Red are absolutely amazing, and they organized an incredible conference from all accounts that I&#39;ve heard of. Everyone really loves Chain React, so if you are in the U. S. and you&#39;re in the React Native scene, you really do not want to be missing Chain React. If I was in the U. S., I would definitely be at Chain React this month, so I cannot give it more praise than that.&lt;/p&gt;
&lt;h3 id=&quot;geekconf&quot;&gt;&lt;a href=&quot;https://thegeekconf.com/&quot;&gt;GeekConf&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[07:58] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; And then, lastly, towards the end of July, we have GeekConf, so GeekConf is another sort of React Native conference with a little bit of a blend of web as well added into it. So that&#39;s happening on the 25th of July in Berlin. There&#39;s also a day that&#39;s dedicated to remote track, but 25th of July is the key date that&#39;s going to be happening in person, and I&#39;ll be speaking at that conference as well, and hopefully if any of you folks are there, please do come around and say hi, would be lovely to meet some of you in person.&lt;/p&gt;
&lt;p&gt;[08:24] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Heck yeah.&lt;/p&gt;
&lt;h3 id=&quot;wearedevelopers-world-congress&quot;&gt;&lt;a href=&quot;https://www.wearedevelopers.com/world-congress&quot;&gt;WeAreDevelopers World Congress&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[08:25] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Leaving the list of conferences that us as hosts have personal experience with, there&#39;s a We Are Developers World Congress in Berlin, July 17th through 19th.&lt;/p&gt;
&lt;h3 id=&quot;cityjs-singapore&quot;&gt;&lt;a href=&quot;https://singapore.cityjsconf.org/&quot;&gt;CityJS Singapore&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[08:35] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; There&#39;s a CityJS in Singapore. That&#39;s going to be July 24th through 26th.&lt;/p&gt;
&lt;h3 id=&quot;we-love-js-amsterdam&quot;&gt;&lt;a href=&quot;https://welovejs.vercel.app/&quot;&gt;We Love JS Amsterdam&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[08:42] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; We love JS in Amsterdam in the Netherlands, August 9th and 10th.&lt;/p&gt;
&lt;h3 id=&quot;react-rally&quot;&gt;&lt;a href=&quot;https://www.reactrally.com/&quot;&gt;React Rally&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[08:46] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; And then the last conference that we&#39;re highlighting in the next two months is React Rally, which is going to be August 12th through 13th in Salt Lake City. Actually, I have been to that one in the past and it was pretty quality.&lt;/p&gt;
&lt;p&gt;[08:58] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yeah, I, I would also. Emphasize like React Rally has been fantastic. the organizers are great.&lt;/p&gt;
&lt;p&gt;[09:04] they do a really good job of giving it a good community feel. I was there last year and attendance was unfortunately just a little down because of trying to revive it after COVID. So if, if you can all make it to React Rally in August, please go. It&#39;s, it&#39;s totally worth, worth it.&lt;/p&gt;
&lt;p&gt;[09:19] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, and it&#39;s the home neighborhood for a lot of really big people in the React and web ecosystem.&lt;/p&gt;
&lt;p&gt;[09:25] there are quite a number of people who live generally in Utah and in Salt Lake City. I think Kent C. Dodds is out there.&lt;/p&gt;
&lt;p&gt;[09:32] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Kent, Tanner, Ryan.&lt;/p&gt;
&lt;p&gt;[09:33] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, it&#39;s their home neighborhood. I assume they&#39;ll be at the conference. Yeah, anyway, cool. All right, moving on to some of our main content here. Mark, you want to start us off?&lt;/p&gt;
&lt;h2 id=&quot;suspensegate&quot;&gt;&quot;SuspenseGate&quot;&lt;/h2&gt;
&lt;p&gt;[09:43] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Boy, oh boy, oh boy. Okay, welcome to SuspenseGate. So, for the for those of you who may not have been following all the drama on Twitter, we&#39;re here for you.&lt;/p&gt;
&lt;h3 id=&quot;this-is-the-exact-build-well-release-as-190&quot;&gt;&lt;a href=&quot;https://x.com/acdlite/status/1797668537349328923&quot;&gt;&quot;This is the exact build we&#39;ll release as 19.0&quot;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[09:55] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; About a month ish ago, a month and a half ish ago, Andrew Clark actually tweeted that, We&#39;ve, we&#39;ve updated to a new React 19 release candidate, and we think that this release candidate is going to be the final one, like, these are the actual bytes we plan to release as React 19, unless there&#39;s any other major changes.&lt;/p&gt;
&lt;p&gt;[10:17] Well, there is now cause for major changes. And in fact, React 19 has been delayed semi indefinitely. The React team is going to be doing some updates, and we don&#39;t know how long that&#39;s going to take. Why are they doing these updates?&lt;/p&gt;
&lt;p&gt;[10:32] In November of last year, Andrew Clark put up a PR that changed the behavior of the suspense component and how it manages loading children that are suspending to fetch data.&lt;/p&gt;
&lt;p&gt;[10:44] Previously, if you had multiple children inside of suspense, And they all wanted to fetch some data. The suspense component would give each of these components a chance to start rendering and start the data fetching. And then actually pause and wait for all of the components to finish fetching their data.&lt;/p&gt;
&lt;p&gt;[11:04] Doing it all in parallel, kind of like a promise. all combination. And with this PR, the React team changed it. So that React really only gives the first child that suspends a chance to fetch, and then it waits for that child to finish loading its data, tries to re render, and then keeps going until the next child component tries to fetch data.&lt;/p&gt;
&lt;p&gt;[11:28] Basically doing all of that in serial instead. Now, they, if you look at the PR, Andrew listed some potential reasons for this. One is that this actually made Facebook. com load a little faster. But also, it has to do with how the React team thinks. that people should be doing data fetching on the client side.&lt;/p&gt;
&lt;p&gt;[11:51] And basically their argument is, you, you shouldn&#39;t be doing data fetching nested deep in the component tree. Instead, you should hoist it up to the top at like the route level or the page level instead. And so their argument is like, well, we don&#39;t think people should be doing this pattern much anyway.&lt;/p&gt;
&lt;p&gt;[12:11] So it&#39;s okay for us to change it. Now, this was done as part of React 19&#39;s development, and React 19 is a major version. So you can totally, you know, make changes. It&#39;s, it&#39;s legal under the terms of semantic versioning. And this was available in the React 19 Canaries, but as we all know, nobody actually tries out pre release versions, everyone waits until it&#39;s actually released, and then tries it, and then reports bugs.&lt;/p&gt;
&lt;p&gt;[12:38] So, this basically went unnoticed by the community for months. And about a month ago, someone mentioned it on Twitter, very briefly, and TK Dodo, the maintainer of React Query, Saw that comment and said, oh, that doesn&#39;t look great, and then didn&#39;t think about it. And then just a couple weeks later, there was another discussion thread, and suddenly TK Dodo and a bunch of other people began to realize, wait a minute, this is actually a very significant change in how suspense works.&lt;/p&gt;
&lt;p&gt;[13:08] And in particular, the React 3 Fiber developers, which is the React for 3D game engines, Realized we depend on suspense heavily because we need to be able to load a lot of different things async like game assets. So it&#39;s not just about data fetching, it&#39;s about lots of other async behavior. And they, and they started showing demos where, everything went from loading in parallel to loading as a waterfall in serial.&lt;/p&gt;
&lt;p&gt;[13:38] And now example apps were way, way slower as a result. There was a massive firestorm on Twitter. A day or so later, Sophie Alpert from the React team said, We talked about this in a React team meeting today. We didn&#39;t realize how many people would be affected by this. But also, this was a very major change to React&#39;s internals. We did this, like, seven months ago. We&#39;ve continued making lots more changes to the internal since then. We can&#39;t just roll back this change. We know what we would need to do in order to re enable the old behavior, but it&#39;s going to take another fairly significant set of internal changes to do that.&lt;/p&gt;
&lt;p&gt;[14:19] So, we don&#39;t know when we&#39;re going to get around to it. Stepping back for a second, at that point in time, the community conclusions were, they already said React 19 is release candidate and ready to ship, and we don&#39;t, like, we know this would take major changes. Therefore, the conclusion was React 19 is about to ship with this behavior and we&#39;re all going to be stuck with it for the duration of React 19 as a major release.&lt;/p&gt;
&lt;p&gt;[14:45] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, I don&#39;t know, some of the like firestorm framing for this, it makes me a little bit like, I don&#39;t know, it&#39;s, okay, this was a, this was a confusing behavior, and something that they overlooked, but I am glad that this conversation did happen.&lt;/p&gt;
&lt;p&gt;[14:59] And ultimately, the React team had this pointed out to them and did respond ultimately, I think, appropriately. So, like, it&#39;s, I don&#39;t know, how do you, How do you do open source development with millions of people, very few of whom actually try out pre releases?&lt;/p&gt;
&lt;p&gt;[15:15] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yeah, that actually even ties into the events this week of Jordan Harband and some of the package updates going on. Mo, you had a thought?&lt;/p&gt;
&lt;p&gt;[15:24] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; Well, I was just thinking, well, firstly, ironically, I remember when we did the last, last month&#39;s episode, we were talking about how this might be like the quickest release cycle for React, or, well, you know, it&#39;ll be a quick transition into Release Candidate and then released, and then this came up. So I find that quite funny that sometimes these things will come up and we can&#39;t predict it.&lt;/p&gt;
&lt;p&gt;[15:41] But I think it&#39;s, you know, around the whole expecting people to test canaries and, and release candidates, I almost wonder if there&#39;s a different way that that needs to be done and if there&#39;s some level of automation that can be done to ensure that not just, you know, apps that are using RSCs and are, you know, the most up to date and exactly architected in a way where Meta wants them to be architected, are tested, but rather, there&#39;s a whole wide range of apps, ones that are built over a long period of time, there might be SPAs or other things like that, all of those get tested. I don&#39;t know if there&#39;s a nicer way to handle that, but I feel like just expecting people to test Canaries and test RCs will not catch stuff like this .&lt;/p&gt;
&lt;p&gt;[16:20] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; That&#39;s the thing, I believe the Vue ecosystem has like a full fledged, I don&#39;t know the right term for it, they have a massive automation setup that tests all kinds of libraries across the ecosystem against the latest versions of like Vue and Vuex and Pinia and Vue Router and all these other tools. And similarly TypeScript, every time you push a PR to TypeScript, it does checks against almost all of DefinitelyTyped, or at least like a, the most widely used libraries on, on DefinitelyTyped and across the ecosystem, to try to catch a lot of these issues ahead of time.&lt;/p&gt;
&lt;p&gt;[16:56] But even then, there&#39;s a distinction between, do the library&#39;s tests fail, and how are people using that library. I think in this case, React Query had one test that did parallel fetching in a suspense, but it was like two components running locally. And so the effects of it would not have been meaningfully visible in terms of timing.&lt;/p&gt;
&lt;p&gt;[17:18] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Right. Right. And ultimately this is a like timing and parallelism issue. And I don&#39;t know, I&#39;m not sure that that&#39;s something that would work. have been proactively tested? Like, I&#39;m not sure that it&#39;s something that An automated test suite could like reasonably easily evaluate. And I&#39;m not sure that someone would have said, Oh, this is a large enough risk that we need to invest, you know, several days of engineering time in order to make sure that we have test coverage that will flag this if it breaks.&lt;/p&gt;
&lt;p&gt;[17:48] So I don&#39;t know, I, to me, this is just like such a. Niche interaction between, you know, it&#39;s, it&#39;s such a corner case between the assumptions of the React core team and the, you know, evaluation work that they do against the Facebook project and the, you know, broader needs. So like, I don&#39;t know, I saw various negative takes, like, oh, I don&#39;t know, I saw lots of various negative takes, I&#39;m not even gonna try and imagine, try and make up one.&lt;/p&gt;
&lt;p&gt;[18:16] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; the React Summit organizers for the last couple years Have done an event that they call the React ecosystem contributors summit, where they get like 25 to 30 maintainers and contributors to various tools and libraries together in a room. And they just give us a chance to vote on whatever topics we think would be worth discussing and then give us three hours to, talk about it in whatever way we think would be useful.&lt;/p&gt;
&lt;p&gt;[18:44] So, I was there. There were two topics that were discussed. Two thirds of the room was discussing the technical aspects of the suspense change, two thirds of the group was discussing the technical behaviors. One third of us were discussing, how can we have better communication and interactions with the React team.&lt;/p&gt;
&lt;h3 id=&quot;joe-savona-some-thoughts-on-the-suspense-changes-from-19-rc&quot;&gt;&lt;a href=&quot;https://x.com/en_JS/status/1803480672327311425&quot;&gt;Joe Savona: Some thoughts on the suspense changes from 19 RC&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[19:03] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; A couple of days later, Joe Savona from the React team put up a long Twitter thread, which is very, very good and very worth reading. And he said, number one, we&#39;re going to hold off on the React 19 release. We agree that this is a major behavior change. And frankly, we underestimated how many people would be affected by this pattern change.&lt;/p&gt;
&lt;p&gt;[19:24] So they&#39;re going to step back and they&#39;re going to do something to do it. My, my, my assumption is trying to do the actual work to re implement some of the older behavior in the, in the reconciler internals. So that&#39;s good. Like the community complained, we communicated, they listened, they changed plans.&lt;/p&gt;
&lt;p&gt;[19:43] These are all actually very, very good things, but that ties into the communications question. Like a semi official way to communicate to the React team is by filing an issue, and the React issues are basically useless in that sense. One thing, they&#39;ve been full of spam, both in terms of like really, really old issues and literal, literal spam issues, but also like the React team doesn&#39;t pay tons of attention to their issues list.&lt;/p&gt;
&lt;p&gt;[20:10] And so just filing an issue is not necessarily going to get like a quick response. There&#39;s Twitter, and a lot of the, you know, React team members are very active on Twitter, and that&#39;s great, but it&#39;s also not like a formal communications channel. So, what we concluded in our little set of people talking during this Contributors Summit, is that we really need to bring back this idea of a working group.&lt;/p&gt;
&lt;p&gt;[20:36] For React 18, the React team put together a React 18 working group where they specifically invited 50 to 75 people from across the ecosystem and continued adding to it over time. And there was a public GitHub repo where the React team and the invited contributors could write comments. Anybody could read it, so the discussions were public, but the idea was have a high signal ratio of meaningful discussions and questions about React 18, how things worked, how people could actually use some of the features and what the practical results would be.&lt;/p&gt;
&lt;p&gt;[21:12] And I think that was a great success. Like, there was a lot of really good information in that repo. So our conclusion, as the little group of people talking amongst ourselves, was we should somehow have a permanent version of the working group. And actually, Tanner Linsley independently tweeted the same thing a few days later, as well.&lt;/p&gt;
&lt;h3 id=&quot;tanner-linsley-react-needs-a-permanent-working-group&quot;&gt;&lt;a href=&quot;https://twitter.com/tannerlinsley/status/1802798385810018769&quot;&gt;Tanner Linsley: React needs a permanent working group&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[21:33] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; So along with that, Joe Savona also said in his tweet thread that we are actively looking at how can we get more feedback on pre release versions and how we can actually Have better communication with the community. So, I don&#39;t know exactly what will happen, but I&#39;m hopeful that something like this working group model would be an option going forward.&lt;/p&gt;
&lt;p&gt;[21:55] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; That&#39;s not, you know, too far away from how the React Native team does it, you know, for, for the past couple of years, I&#39;d say, since, you know, Nicola Corti and Riccardo have come into the React Native team, they&#39;ve been pushing this sort of release cycle where they&#39;ll have two, three different people from the community owning the release process for each version of React Native that comes out, and that Inherently add some level of community involvement to the releases.&lt;/p&gt;
&lt;p&gt;[22:17] Obviously a working group with more and more and more people, you know, about 60, 70 people sounds like there&#39;s going to be even more exposure, which is great. But I think it&#39;s, it&#39;s something that could take a page out of the React native core teams book as well, because they&#39;ve done it successfully there.&lt;/p&gt;
&lt;p&gt;[22:29] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Overall, takeaways are, nobody tries pre release versions, we really need a formal communications channel between the React team and the community that they will pay attention to, and that we can collectively offer feedback that they will see.&lt;/p&gt;
&lt;p&gt;[22:44] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, I, I, I chimed in on that because I don&#39;t know, Reactiflux, we&#39;re a thriving subset of the community.&lt;/p&gt;
&lt;p&gt;[22:50] Maybe we could be a neutral space for that type of communication to happen where they don&#39;t need to own the moderation side of things that has not turned into a conversation. So, hey, maybe it will eventually, but yeah. Twitter is definitely, I&#39;m not sure how effective it was ever as like a DevRel, you know, source of truth, but now, like, if you don&#39;t have an account, they don&#39;t even let you view tweets, so, I think it is past time, well past time for DevRel from the React team to go somewhere else. Like it is, it&#39;s been over a month since the last blog post. And other than that, I don&#39;t know where any communications from the React team out to the broader community come from. It&#39;s basically the blog and the Twitter and the blog is not active. So. Yeah, I hope that that working group concept turns into something a little more effective.&lt;/p&gt;
&lt;h3 id=&quot;tc39-proposal-advances&quot;&gt;&lt;a href=&quot;https://x.com/robpalmer2/status/1801239842908438694&quot;&gt;TC39 proposal advances&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[23:42] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; But yeah, okay, cool. Next subject, TC39 proposals. A bunch just came out. I&#39;m just going to kind of run through this on the high level. Yeah, promise. try, it looks like it&#39;s pretty much just like a quick wrapper on, , you know, new promise, and then you immediately resolve with a value.&lt;/p&gt;
&lt;p&gt;[23:58] I&#39;ve done that a number of times, so I guess there&#39;s a use case for this, but in the abstract I&#39;m not really coming up with a great example of why you would want to just Take a synchronous value and make it a promise.&lt;/p&gt;
&lt;p&gt;[24:09] Deferred import evaluation seems useful. it&#39;s a way, it&#39;s a way of delaying execution of some parts of the import process when you&#39;re getting a module in.&lt;/p&gt;
&lt;p&gt;[24:20] You can, you know, mark it as deferred so that it will not actually evaluate the module. It&#39;ll still like parse it and do some other interpretation steps that I&#39;m blanking out at the moment. But it will not actually evaluate the code until later on.&lt;/p&gt;
&lt;p&gt;[24:33] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Basically this, this allows. Speeding up, like the initialization process by not running all the code in the application right away on startup, even though you know, you&#39;ll need some of that code later.&lt;/p&gt;
&lt;p&gt;[24:48] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah. Okay. There we go. Another one was joint iteration. I thought this was pretty cool because I&#39;ve needed this a number of times. It&#39;s a way of iterating over more than one. iterable at the same time. That&#39;s on stage 2. 7, which means it&#39;s still pretty far from getting shipped.&lt;/p&gt;
&lt;p&gt;[25:03] Error. isError seems very useful for, for types. I guess lots of new stuff is moving down the pipe, I don&#39;t know how many of these are super important to call out in great detail, but yeah, Mark, Mo, anything that caught your eye is particularly important?&lt;/p&gt;
&lt;p&gt;[25:18] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; I, I really think Error.isError is the one that I&#39;m most interested in. Obviously quite a while away before it gets to adoption. It&#39;s still on the process step two, it&#39;s stage two, but hopefully very soon. Well, I don&#39;t know how long this process is going to take for them.&lt;/p&gt;
&lt;p&gt;[25:31] It was interesting. The TC39 meeting that they had was happening in Helsinki, uh, near Future Frontend, which was a conference that we gave a shout out to last month.&lt;/p&gt;
&lt;p&gt;[25:39] And I happened to be there. That was quite cool to see some of these folks gather together and how they chatted about some of these standards. Just being privy to those conversations was fascinating. So they have a, they have an incredible process that I&#39;ve, I&#39;ve not seen anything like before in any other sort of working group.&lt;/p&gt;
&lt;h3 id=&quot;panel-discussion-at-future-frontend&quot;&gt;&lt;a href=&quot;https://youtu.be/29wHaG7eVPM?t=17422&quot;&gt;Panel discussion at Future Frontend&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[25:53] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; So quite interesting, would recommend. There&#39;s a, if you go onto the Future Frontend streams, they actually have a big panel discussion for, from the second day of Future Frontend, and they actually discuss some of these proposals in detail, which is quite cool.&lt;/p&gt;
&lt;h3 id=&quot;react-partners-with-codemod&quot;&gt;&lt;a href=&quot;https://codemod.com/blog/react-announcement&quot;&gt;React partners with Codemod&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[26:05] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; All right, let&#39;s move on to the next one.&lt;/p&gt;
&lt;p&gt;[26:08] This is, I&#39;m, CodeMod they announced they are partnering with the React team to help migrate to React 19.&lt;/p&gt;
&lt;p&gt;[26:16] I know, I feel like the React team initially popularized the idea of CodeMods. So this is like not a surprise at all to me. I guess I wasn&#39;t really familiar, wasn&#39;t really aware of Codemod as like its own separate team. I see, you know, this is posted by the founder of CEO of Codemod, I guess.&lt;/p&gt;
&lt;p&gt;[26:34] So that&#39;s kind of news to me. But yeah, so there&#39;s gonna be more Codemods, I guess, to help your codebase stay up to date with React 19.&lt;/p&gt;
&lt;p&gt;[26:42] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; I am very familiar with code not code mods as a technical concept I had no idea there was an entire company devoted to building tools for code mods as like a corporate thing.&lt;/p&gt;
&lt;p&gt;[26:53] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Right, right as a technical thing Very familiar. I don&#39;t really understand what the business case for that would be. I don&#39;t know, I guess maybe consulting. Maybe it&#39;s a services business.&lt;/p&gt;
&lt;p&gt;[27:03] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; Apparently the way that they also make it more effective is that they apparently pair it with some AI. It might be a pivot, I don&#39;t know, but apparently they pair it with some AI and some nice CLI tools to make your code mods more effective. That&#39;s not an endorsement, I don&#39;t know if it works well, but that&#39;s seemingly their model.&lt;/p&gt;
&lt;p&gt;[27:20] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Makes me a little skeptical, but yeah, I don&#39;t know. Codemods generally are great.&lt;/p&gt;
&lt;p&gt;[27:24] Any migrations and like major refactorings like that are definitely substantially helped by having automated tools that do, you know, even if it&#39;s like 60 to 80%, that&#39;s still pretty great, but yeah, cool. So there&#39;s an official partnership there. So I guess there&#39;s a business that is writing these codemods and the React team is in collaboration with them to make sure that they work well.&lt;/p&gt;
&lt;p&gt;[27:45] That&#39;s cool. That&#39;s great. Love that it&#39;s not just the core team trying to do everything on their own. Yeah, Mark, you want to take us on to React Compiler?&lt;/p&gt;
&lt;h2 id=&quot;react-compiler&quot;&gt;React Compiler&lt;/h2&gt;
&lt;p&gt;[27:52] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Sure. So, React Compiler came out in beta at ReactConf, and so we&#39;re starting to get, you know, various examples of people trying it out hands on in the real world.&lt;/p&gt;
&lt;h3 id=&quot;i-tried-react-compiler-today-and-guess-what-&quot;&gt;&lt;a href=&quot;https://www.developerway.com/posts/i-tried-react-compiler&quot;&gt;I tried React Compiler today, and guess what… 😉&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[28:03] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; There was a very good post from Nadia Makarevich, I believe is the name, who has written a number of excellent articles about React rendering in the past. And she tried it out on both some toy applications and some larger, real world codebases that she had. And she found that the results were mixed. She expected the compiler to optimize fairly large percentages of the components in those codebases.&lt;/p&gt;
&lt;p&gt;[28:29] And it only seemed to optimize like 20 or 30 percent. Now, , apparently the compiler tool does have a health check command that will tell you which components it would bail out of because those are breaking the rules of React. And I believe that the updated React lint rules can also give you an indication of which components might not get optimized.&lt;/p&gt;
&lt;p&gt;[28:51] But her takeaway, I believe her takeaway was You know what? Well, okay, like this, this seems promising, but if real world code bases aren&#39;t going to get, or are we going to have like 20 to 30 percent of the components improved, that&#39;s not quite what we were pitched. Now, I will note that, uh, Satya from the React, React compiler team, I believe commented here in Reactiflux that, hey, this article is great.&lt;/p&gt;
&lt;p&gt;[29:14] Like, we got to See these example apps that she posted about, and we&#39;ve been doing a bunch of additional changes to make sure we&#39;re handling those cases. So, I mean, just because it didn&#39;t work perfectly in her case, doesn&#39;t mean that the compiler&#39;s bust. It just means that it&#39;s still a work in progress. So having that real world feedback is actually very good.&lt;/p&gt;
&lt;h3 id=&quot;understanding-react-compiler&quot;&gt;&lt;a href=&quot;https://tonyalicea.dev/blog/understanding-react-compiler/&quot;&gt;Understanding React Compiler&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[29:32] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; And then Tony Alicea, wrote an Excellent article that actually breaks down what the compiler does and what the output looks like and how it works in practice. So, very worth reading if you want to understand what the compiler actually does for you.&lt;/p&gt;
&lt;p&gt;[29:47] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Heck yeah. Cool. Yeah, I guess I&#39;ll move us on.&lt;/p&gt;
&lt;h3 id=&quot;why-dont-we-have-a-laravel-for-javascript-yet&quot;&gt;&lt;a href=&quot;https://wasp-lang.dev/blog/2024/05/29/why-we-dont-have-laravel-for-javascript-yet&quot;&gt;Why don&#39;t we have a Laravel for JavaScript... Yet&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[29:50] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I wanted to call out this There&#39;s been a lot of, conversation that I&#39;ve seen around, like, Laravel, specifically, specifically Laravel, Theo put out a video that then somebody wrote a blog post replying to of, &quot; why don&#39;t we have a Laravel for JavaScript?&quot;&lt;/p&gt;
&lt;p&gt;[30:06] And this actually crossed my radar from somebody who&#39;s not in the React world at all, they were talking about scoping a project, adding authentication to some app. And they said, &quot;this developer estimated two weeks to add authentication to the product and I thought that was ridiculous. We have that out of the box in Laravel.&quot;&lt;/p&gt;
&lt;p&gt;[30:24] I, I, I chimed in because it&#39;s like, you know, I&#39;ve done auth a couple of times in my life, in my career and like, yeah, you know, okay, sure. A login form, that&#39;s not hard to do in a day, but when you get like a settings page and you know, you got to be able to change your email address and reset your password and do two factor authentication and, you know, social login, It&#39;s like, you know, I mean, two weeks doesn&#39;t sound that wrong to me.&lt;/p&gt;
&lt;p&gt;[30:48] And he replied like, All of this is, all of that, everything you just described comes out of the box in Laravel. And it&#39;s like, alright, you know what, okay, maybe we do complicate things a little bit. Maybe not overcomplicate, but I guess, it, it, we do have so much flexibility and modularity and ability to Write things from scratch in React and, you know, in the React ecosystem more broadly, maybe that we have, you know, as far as the pendulum swings, maybe we have stayed in maximum modularity mode for a little bit longer than might be optimal.&lt;/p&gt;
&lt;p&gt;[31:21] I don&#39;t know. I, I&#39;m curious what you guys think of that. where&#39;s the trade off? Where&#39;s the optimal line between modularity and out of the box functionality? I&lt;/p&gt;
&lt;p&gt;[31:29] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; mean, I think a lot of it also is the, you know, the whole back end, front end split. I mean, Laravel, you know, PHP, Rails, Ruby, they are back end languages, and the use case is You know, like, you know, the back end is doing basically all the work for you, and then, you know, there, there might be some additional stuff on the front end.&lt;/p&gt;
&lt;p&gt;[31:53] And so I think the frameworks there, they&#39;ve, they&#39;ve been around longer, and also they evolved to have, we, we need to have everything the back end needs to do all the work. Whereas, JS has always had the front end, back end split, and it&#39;s not that we couldn&#39;t build something that was, you know, absolutely out of the box like that.&lt;/p&gt;
&lt;p&gt;[32:13] I mean, there are, you know, some examples of that in the JS ecosystem, but I think it&#39;s typically been much more of a, like, I just need a basic HTTP server like Express. to serve up my client side code and then go from there. So, I think the modularity is a big aspect, but then also the differences in, like, the ecosystem historically as well.&lt;/p&gt;
&lt;p&gt;[32:34] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; I do think, you know, I&#39;ve spent a bit of time working in the Django world a little bit, and I can definitely see the appeal to having something like Laravel, where so much comes out of the box. Done for you. And that interconnectedness means that it is a lot smoother to do things like you mentioned, like settings on a profile to modify those things.&lt;/p&gt;
&lt;p&gt;[32:51] They&#39;re all like one centralized model in Django. And it&#39;s significantly easier to create those sort of CRUD operations for users on like a settings page. It doesn&#39;t take you weeks. It takes you a day. And I know a lot of people who&#39;ve been developing a while, like they spent time in the PHP world or in the Python world with Laravel or Django, and then they, you know, started doing React in our company and they were all like, this sucks, really don&#39;t like doing this.&lt;/p&gt;
&lt;p&gt;[33:12] It was so easy with Django, but I guess it&#39;s the pendulum swings and we probably land on some sort of midpoint, you know, I wouldn&#39;t be surprised if people start building things on top of Next, which allows it to be a more full fledged opinionated server that also can render and template React code.&lt;/p&gt;
&lt;p&gt;[33:26] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; That&#39;s what Blitz was. Blitz started off as the whole suite of things to go with Next, and then they tried to fork Next, and then they gave up on that idea.&lt;/p&gt;
&lt;p&gt;[33:35] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, and I mean, I guess this is, over the last ten years, React has slowly, I feel like it&#39;s grown in scope of, like, where people want to use it.&lt;/p&gt;
&lt;p&gt;[33:43] Like, when I first started it, There was a lot of, put it in, like, this spot, this little rectangle on the website, like, that&#39;s where React goes, and several years ago, that moved into, most people are using React to build their entire app, like it owns the entire client side, and now we&#39;re moving Up the chain into React owns more of the server side as well.&lt;/p&gt;
&lt;p&gt;[34:05] So maybe that&#39;s just kind of like the, this projects like Laravel already owned the data model in the server. And they had to come from there into owning more of the client side to provide a better experience there. And they certainly don&#39;t compete with React there in any meaningful way. Like nobody would, I don&#39;t think anyone would seriously suggest that projects like Laravel are able to provide. An exact, or a highly comparable, interactive client side experience.&lt;/p&gt;
&lt;p&gt;[34:35] You know, as I&#39;m saying that, nobody would argue that. I think DHH has seriously argued that.&lt;/p&gt;
&lt;p&gt;[34:39] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; I was gonna say DHH hasn&#39;t argued that yet.&lt;/p&gt;
&lt;p&gt;[34:42] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; So, okay, people do People do argue that, but let me add the caveat of offline capable. I don&#39;t think anyone would seriously argue they provide an offline capable client side experience comparable to React.&lt;/p&gt;
&lt;p&gt;[34:54] And so, yeah, I guess, you know, now with, as server components expand in utility and capabilities, like, yeah, maybe we will start seeing more of a Laravel. Or Ruby on Rails type of full ownership of the experience, which would make it more easy. Because that&#39;s really the problem here is React isn&#39;t even aware of the data model in most applications.&lt;/p&gt;
&lt;p&gt;[35:18] So that makes it very hard to do CRUD interactions, if you don&#39;t have the data, if you don&#39;t have direct access to the data. I just thought that was a really interesting framing for this. Like I have all, I&#39;ve, I&#39;ve lived in React for many, many years. And so then seeing people talk about how quickly you can do common tasks in a Laravel, it&#39;s like, Oh, Shit. Interesting. That&#39;s, that is a big difference.&lt;/p&gt;
&lt;p&gt;[35:39] Cool. Let&#39;s move on to Vercel Ship, their conference roundup. Moe, do you want to take us on that?&lt;/p&gt;
&lt;h3 id=&quot;vercel-ship-2024&quot;&gt;&lt;a href=&quot;https://vercel.com/blog/vercel-ship-2024&quot;&gt;Vercel Ship 2024&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[35:45] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; Sure. just the general and quickly running through this, Vercel is obviously moving across and, and taking up more of the, more than just becoming a hosting platform, so.&lt;/p&gt;
&lt;p&gt;[35:54] There&#39;s pieces on how you can collaborate and people in different teams can collaborate and, you know, preview different sort of webpages. And we&#39;ve seen some stuff like that and more focus on observability. So they&#39;ve added things like metrics and feature flags. And so there was someone who actually commented on Twitter about how beautiful their toolbar was as well, which I thought was quite cool. But no, there&#39;s, there&#39;s like a lot of direction around like product collaboration and a push in that, in, in that direction. So that&#39;s quite interesting.&lt;/p&gt;
&lt;p&gt;[36:18] Just on the observability piece, I actually found it quite interesting that hosting providers are going in that space. So Cloudflare a few months ago acquired Baseline, which is also an observability tool, and I think they&#39;re trying to integrate it into their workers slash Cloudflare pages space, which is a competitor to Vercel&#39;s, you know, hosting platform plus their, their serverless functions that they&#39;ve got.&lt;/p&gt;
&lt;p&gt;[36:37] So, or the edge functions that they&#39;ve got. So I think it&#39;s interesting that a lot of them are moving. Past just hosting into that observability space as well. And I think there&#39;s going to be a pretty big competition in that space in the next couple of years.&lt;/p&gt;
&lt;p&gt;[36:48] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Okay. That makes sense. Yeah. I haven&#39;t yet played with this at all, but I think I&#39;ve heard people discussing the Vercel, metrics and feature flagging and that, yeah, I think that the, tacking those onto the, to a hosting provider does make a lot of sense to me because I feel like you get, you start getting a lot more things for free if those are all bundled together into one thing, like, I don&#39;t know, just having used LaunchDarkly and other feature flagging tools like that.&lt;/p&gt;
&lt;p&gt;[37:14] It feels like if they knew when a release was happening, if those feature flagging tools knew when a release was happening, I can imagine various optimizations or improvements to the, like, developer experience, the experience of putting out a new release that could be enabled by that. So yeah, that&#39;s something I&#39;m paying attention to.&lt;/p&gt;
&lt;p&gt;[37:34] We&#39;ll see how that goes.&lt;/p&gt;
&lt;h3 id=&quot;ts-55&quot;&gt;&lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-5-5/&quot;&gt;TS 5.5&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[37:35] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; All right, next up, TypeScript 5. 5 is out. And the, the single biggest thing that is interesting about this release is what they&#39;re calling inferred Type predicates. So as a little bit of background, one of the nifty things about TypeScript is you can write code that does runtime checks, and TypeScript uses that to narrow down TypeScript type of a particular variable is.&lt;/p&gt;
&lt;p&gt;[38:00] And part of that is not just having like an if statement, but actually having separate functions that, for example, accept any value, and then they do some runtime checks and you tell TypeScript, if this function returns true, then the actual TS type of the value must be some more specific type. And so you can use that to tie together runtime checks and type and compile time behavior.&lt;/p&gt;
&lt;p&gt;[38:27] But the issue was that things like filter callbacks for arrays, which return a boolean, didn&#39;t do any of that narrowing. And so you might have, like, an array that could be, like, item or null, and you could do a check. In the filter callback and say, if thing is not null, you know, return true, which ought to tell you that by the time we&#39;re done, we only have actual items and no nulls.&lt;/p&gt;
&lt;p&gt;[38:53] But TypeScript wouldn&#39;t automatically narrow down the TS types based on callback functions like that. So with TypeScript 5. 5, they&#39;ve improved the type inference. So that if you have a function that accepts some value and does some checks and returns a boolean, TypeScript will automatically try to narrow down the TS types of the output to be stricter.&lt;/p&gt;
&lt;p&gt;[39:18] And so, this is going to be a nice little quality of life improvement for a lot of different TypeScript use cases. One other interesting thing that I saw in there, is that apparently they&#39;re doing some syntax checking on regular expressions. Mostly just catching things like, you know, like you have too many parentheses in there.&lt;/p&gt;
&lt;p&gt;[39:36] But that one&#39;s actually pretty cool too.&lt;/p&gt;
&lt;p&gt;[39:38] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, definitely super cool. I, on my list of things that I, that would make me excited, like typescript checking regexes was not on there, so I, Very unexpected for them to even start moving in that direction. But like, heck yeah, please help me make my regexes a little more robust.&lt;/p&gt;
&lt;p&gt;[39:54] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; One other thing towards the bottom that&#39;s under the hood. So they&#39;ve done some changes on their internal variable definitions. So that they get more optimized by the JavaScript runtime, basically making sure that the same fields always exist. And you don&#39;t like occasionally add an extra field to the object dynamically.&lt;/p&gt;
&lt;p&gt;[40:15] And so because of that, the runtimes are able to optimize the behavior. And they found that it actually improved compile times by like 5 to 10 percent just by making the fields more consistent.&lt;/p&gt;
&lt;h3 id=&quot;typescript-55-is-a-banger&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=sciBO_IaxTw&quot;&gt;TypeScript 5.5 is a BANGER&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[40:26] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, I also want to share, Matt Pocock did a really great, just like quick 10 minute video breaking down what&#39;s new in TypeScript 5.&lt;/p&gt;
&lt;p&gt;[40:35] 5. So definitely worth, he&#39;s just such a great TypeScript expert. Just wanted to call that out. Great resource.&lt;/p&gt;
&lt;h3 id=&quot;mind-the-gap-talk&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=1g5ruM-16_Y&amp;amp;t=7595s&quot;&gt;Mind The Gap talk&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[40:41] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Cool. I wanted to shout out a conference talk by Ryan Florence that came out of Big Sky DevCon. I saw quite a number of people referring to it as like the best talk I&#39;ve seen in years. I don&#39;t know if I would go that far personally. It&#39;s a great, it is a great talk.&lt;/p&gt;
&lt;p&gt;[40:57] It&#39;s, it&#39;s kind of just, I think I would describe it as like an oral history of the Problem space that React Server Components is trying to address. It just sort of talks about like the difference between, you know, the server and the client and the network being in the middle and plots out a couple of different tools and where they live in that, You know, taxonomy.&lt;/p&gt;
&lt;p&gt;[41:19] Definitely worth checking out. I mean, Ryan Florence has been around for so, so long. So hearing him just do kind of a dump of history of a problem, I thought was really interesting. It was definitely worth listening to.&lt;/p&gt;
&lt;p&gt;[41:32] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; I&#39;ll jump in with some React Native stuff quickly.&lt;/p&gt;
&lt;h3 id=&quot;lorenzo-sciandra-exiting-react-native&quot;&gt;&lt;a href=&quot;https://x.com/Kelset/status/1800158749811966280&quot;&gt;Lorenzo Sciandra exiting React Native&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[41:36] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; So first, and I&#39;d say most significant news in this space is unfortunately that Lorenzo Sciandra from the Microsoft team is leaving the React Native world and also leaving Microsoft, which is, I would say personally, a pretty big blow to this, to this community.&lt;/p&gt;
&lt;p&gt;[41:51] He&#39;s been such an instrumental part of. Getting more and more community involvement inside of React Native. He&#39;s been doing React Native for more than six years and, you know, being based in the UK. I&#39;ve known him personally for a couple of years now and such a lovely guy. And I think he&#39;s moving on to focus something around making sure that the tech space is A little bit healthier and a little bit more humane, as he likes to put it.&lt;/p&gt;
&lt;h3 id=&quot;debugmind-by-lorenzo-kelset-sciandra&quot;&gt;&lt;a href=&quot;https://www.youtube.com/playlist?list=PLiD6R_aXkpLiMfS2YrhSgtSj09JJCaP2y&quot;&gt;debug:mind by Lorenzo &#39;kelset&#39; Sciandra&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[42:13] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; And he&#39;s been focusing on mental health struggles within the tech ecosystem and within, within a career of tech. So you should definitely check out his podcast called Debug Mind. But really just want to, from the bottom of my heart, say a big thank you to Lorenzo for everything that he&#39;s done over the last six plus years.&lt;/p&gt;
&lt;p&gt;[42:27] An absolute shame that he&#39;s leaving us, but I am very excited for everything that he&#39;s going to be doing afterwards.&lt;/p&gt;
&lt;p&gt;[42:33] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, I have repeatedly come across his name when I&#39;ve looked for React Native resources. He&#39;s done so many great lists of like, I can&#39;t even remember the various types of lists he&#39;s done, but just like major projects in the React Native space and educational resources on React Native.&lt;/p&gt;
&lt;p&gt;[42:51] Yeah, definitely a big blow to have him exit the ecosystem.&lt;/p&gt;
&lt;p&gt;[42:55] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; And, you know, more than that, you know, I think Lorenzo has been sort of the person who&#39;s been trying to bring the meta team closer and closer to the community. So, you know, Lorenzo, for the first time that I went to Meta&#39;s offices, Lorenzo invited me and, Organize that with a lot of the Meta folks to, to bring me over and, you know, for me to be able to chat and bring some of my concerns over to some of the folks at Meta and, you know, that became more of a recurring thing, all thanks to Lorenzo.&lt;/p&gt;
&lt;p&gt;[43:17] So he&#39;s been very instrumental and he&#39;s one of those sort of open source maintainer that maintainers that really cares about the community. So yeah, definitely a big blow.&lt;/p&gt;
&lt;p&gt;[43:24] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, and earlier, Mark was talking about how the React Native team has been a little bit better than the React core team at interfacing, doing like working groups and things like that, and including the community and the development.&lt;/p&gt;
&lt;p&gt;[43:36] I wonder, I wonder what role he played in making that happen.&lt;/p&gt;
&lt;p&gt;[43:40] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; A major one, definitely. So, yeah, but. Best of luck to him. I&#39;m sure he&#39;s got some amazing stuff lined up that he&#39;s going to be exploring next. And yeah.&lt;/p&gt;
&lt;h3 id=&quot;expo-atlas&quot;&gt;&lt;a href=&quot;https://expo.dev/blog/introducing-expo-atlas&quot;&gt;Expo Atlas&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[43:47] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; Next up, one thing that I&#39;m personally super excited about is Expo Atlas. So Expo Atlas is almost like a sort of bundle size visualizer, but taken to a little bit of a higher level.&lt;/p&gt;
&lt;p&gt;[43:57] And this is something that&#39;s been missing from the React Native ecosystem for a long time. So just a little bit of context. Bundle size has never been a concern for the React Native ecosystem, unfortunately. For, for, for better or for worse, because it&#39;s all sort of sent once in the bundle of an application, when you download it from the app store, people don&#39;t seem to really care that much about how much JavaScript you ship, so long as it&#39;s downloaded once it&#39;s done.&lt;/p&gt;
&lt;p&gt;[44:19] And, you know, things like app startup time and actually, you know, having a lot of JavaScript and runtime don&#39;t affect React Native apps as much because of. Things like Hermes existing, where you have an engine that will have some sort of like bytecode representation and not have to load the entire JavaScript bundle into, into its runtime.&lt;/p&gt;
&lt;p&gt;[44:35] So that&#39;s been a challenge when you&#39;re trying to take React Native and put it on the web and deal with this whole universal story. And so, you know, one of the things that I spent a lot of time around React Summit, speaking to Evan and Cedric from the Expo team about was, you know, how do we make sure that some of the third party libraries that have.&lt;/p&gt;
&lt;p&gt;[44:52] I&#39;ve been creating over a long period of time in the React Native ecosystem, actually have small bundle sizes when you try to take them to the web. And Expo Atlas is kind of the take that the Expo team has at doing that, which is, well, a lot of these libraries are all CJS based, so if we just introduce tree shaking into the bundler for React Native, It&#39;s not going to necessarily solve that problem by itself because most of the libraries won&#39;t be tree shakable.&lt;/p&gt;
&lt;p&gt;[45:13] So then what&#39;s the way to do it? Well, let&#39;s just visualize the problem, see what libraries are bundling in a lot of crap, and then see if we can slowly start to, as a community, shave some of that off and improve the performance for React Native web apps. This is a slow burn. It&#39;s not going to. Change over the next year, two years, maybe even three years, because there&#39;s a lot of legacy there.&lt;/p&gt;
&lt;p&gt;[45:31] But I think it&#39;s the right step. It&#39;s showing and visualizing the problem. So great tool that&#39;s out there. We&#39;d definitely check it out. It shows you in a different way to how like the bundle visualizers that you might be used to, it actually shows you which import of a library you have in your code that is actually causing this library that might be bloating your bundle to be loaded.&lt;/p&gt;
&lt;p&gt;[45:50] So, you know, it might, it goes down the tree for transitive dependencies as well, which is quite cool.&lt;/p&gt;
&lt;p&gt;[45:54] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Oh, that&#39;s wonderful.&lt;/p&gt;
&lt;p&gt;[45:56] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; Really great tool.&lt;/p&gt;
&lt;p&gt;[45:57] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah. I&#39;m looking at this, the visualization of the blog post with the, you know, recursive squares showing the, the bundle size and, oh man, I remember almost a visually, almost identical tool, much less polished.&lt;/p&gt;
&lt;p&gt;[46:10] Clearly this has someone who did a design pass, but there was a very similar tool that came out for Webpack in like, I don&#39;t know, 2014.&lt;/p&gt;
&lt;p&gt;[46:19] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; There&#39;s been a number of them, Webpack Bundle Analyzer, Source Map Explorer, and a couple others.&lt;/p&gt;
&lt;p&gt;[46:25] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I, I like practically made a career out of like fixing performance issues just because I learned that tool and it actually enabled me to do things.&lt;/p&gt;
&lt;p&gt;[46:33] So yeah, cool. Love to see it. Love to see it in the React Native context. Definitely looks valuable.&lt;/p&gt;
&lt;p&gt;[46:38] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; Cool. So then a few sort of quick things.&lt;/p&gt;
&lt;h3 id=&quot;expo-adds-compiler-support&quot;&gt;&lt;a href=&quot;https://github.com/expo/expo/pull/29168&quot;&gt;Expo adds Compiler support&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[46:40] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; Firstly, Expo&#39;s now added React compiler support. We saw this in the React Conf app. It was already using the React compiler. So just, you know, if you want to try it out experimentally, you can use the React compiler and see how it works for your app.&lt;/p&gt;
&lt;h3 id=&quot;starlinks-react-native-app&quot;&gt;&lt;a href=&quot;https://www.notjust.dev/blog/react-native-starlink&quot;&gt;Starlink&#39;s React Native app&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[46:52] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; Next up is Starlink&#39;s React Native story. So this was interesting because it came out during AppJS, which happened last month. So the Starlink app is, is obviously built with React Native and it uses a lot of the expo libraries and things like React 3 Fiber. And it&#39;s really cool to see how some of these tools that we all have available to us are used in practice in some pretty serious production apps.&lt;/p&gt;
&lt;h3 id=&quot;expo-router-35&quot;&gt;&lt;a href=&quot;https://twitter.com/Baconbrix/status/1788235769812795559&quot;&gt;Expo Router 3.5&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[47:14] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; And then another quick fire one, minor changes to Expo Router in Expo Router version 3. 5. So, just some stuff like, you know, supporting the, the sort of the hash parameters. There&#39;s some stuff around native, native intents with deep linking that you&#39;ll need for having a more seamless handoff between different Devices, and also for allowing for certain links to, to come with more details to, to really augment the native functionality.&lt;/p&gt;
&lt;p&gt;[47:38] Another small thing that I think is quite important, that&#39;s not actually one of the top headlines with this, is that previously Expo router was using an, a non standard version of the request and response. And with this version, they&#39;ve, they&#39;ve standardized it a bit more, which is great because that should definitely be standardized.&lt;/p&gt;
&lt;p&gt;[47:55] And then a few. Other minor things that I&#39;m just going to run through. One is React Native Vision OS won the Git Nation Open Source Award, which was quite cool. It&#39;s a really cool project. Definitely give it a shot. And the folks from Callstack were there at a bunch of these different conferences with Apple Vision pros, trying to get people to try out React Native with Vision OS, which was quite a fun thing to try out.&lt;/p&gt;
&lt;h3 id=&quot;sf-symbols-beta-support-in-expo&quot;&gt;&lt;a href=&quot;https://docs.expo.dev/versions/latest/sdk/symbols/&quot;&gt;SF Symbols beta support in Expo&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[48:16] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; Next up there is sf symbols. So sf symbols is sort of an icon pack that comes default with iOS. It oftentimes feels very Apple esque and having that inside of your app means that the icons are uniform with the OS and they look and feel like it&#39;s an iOS application and Expo&#39;s added beta support for it.&lt;/p&gt;
&lt;p&gt;[48:36] This is an interesting one because React Native is obviously cross platform. The main targets that you&#39;ll have is an iOS and an Android app, so specifically supporting icon sets and an icon set that&#39;s available for iOS means that you may need to have some divergence in your code base if you want to really use those SF symbols, and you&#39;ll need to create or choose equivalent Android icons, so a little bit of an odd take, but I&#39;ll see you A lot of people seem to really want to use SF Symbols, even with React Native apps.&lt;/p&gt;
&lt;p&gt;[49:03] So I&#39;m sure that there was a level of feature requests and community involvement in trying to get that working. So that&#39;s definitely there. And then lastly, React Native Screens. This is actually a library that you will rarely ever have to use directly inside of your application code, but it&#39;s actually being used under the hood by React Navigation, which is by far the most common navigation library within React Native.&lt;/p&gt;
&lt;p&gt;[49:25] And they&#39;ve just added some extra minor improvements. One that&#39;s quite cool is transparent header support. Obviously on the native layer, there&#39;s functionalities on iOS and Android to be able to add a transparent heading that&#39;s got a little bit of a blur, and it comes up with some cool effects. You can do that in React Native with the, with the default navigation libraries.&lt;/p&gt;
&lt;p&gt;[49:43] So React Native Screens has been updated to support that on both iOS and Android now, which is just cool minor changes. And that&#39;s just about everything that&#39;s been happening in the React Native ecosystem in the last month.&lt;/p&gt;
&lt;p&gt;[49:53] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Nice. Excellent. Thank you for catching us up.&lt;/p&gt;
&lt;p&gt;[49:56] Okay, shall we move on to our lightning round, see how many links we can get through there?&lt;/p&gt;
&lt;p&gt;[50:00] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yes, because we&#39;re already an hour in, so moving right along.&lt;/p&gt;
&lt;h3 id=&quot;react-internals-explorer&quot;&gt;&lt;a href=&quot;https://jser.dev/2024-05-11-introducing-rie/&quot;&gt;React Internals Explorer&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[50:03] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; I saw a really, really cool tool called React Internals Explorer. It looks like you write some React code in a sandbox editor. And then it actually digs into the React fiber tree and shows you the structures of that.&lt;/p&gt;
&lt;p&gt;[50:17] I haven&#39;t even had time to play with this, but just like glancing at it and seeing a screenshot. I&#39;m actually really, really excited about this because I love digging inside React&#39;s internals. I know most other people don&#39;t need to, but this looks really helpful. And the author has already written a whole series of blog posts where they actually go straight into the React source code and explain how specific features of React are implemented under the hood.&lt;/p&gt;
&lt;p&gt;[50:41] So if you want to know how React works inside, very worth reading.&lt;/p&gt;
&lt;h3 id=&quot;whats-new-in-javascript-frameworks-for-may-2024&quot;&gt;&lt;a href=&quot;https://developer.chrome.com/blog/frameworks-may-2024&quot;&gt;What&#39;s new in JavaScript Frameworks for May 2024&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[50:44] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah. I wanted to call out a blog post from the Chrome team where they just, they do a recap. What&#39;s new in JavaScript frameworks for May, 2024. So this is, I guess this is old. It&#39;s undated. So I guess it must have come out last month, but they are just, they just quickly round up a bunch of.&lt;/p&gt;
&lt;p&gt;[51:02] they go through like Angular, Astro, React, Remix, Next, Vue, NUC, Solidsfelt, and a couple of others. Yeah. This is Adi Osmani is. One of the, you know, it looked like they did a video and wrote a blog post with it. I thought it was curious, or I thought it was interesting to see what the Chrome team thinks about JavaScript frameworks.&lt;/p&gt;
&lt;h3 id=&quot;memory-leaks&quot;&gt;&lt;a href=&quot;https://lucumr.pocoo.org/2024/6/5/node-timeout/&quot;&gt;Memory leaks&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[51:24] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; There were a few different blog posts that touched on the theme of memory leaks. There was one that talked about memory leaks inside of Node, potentially if you&#39;re using the relatively new local async storage feature. the example there was with setTimeout.&lt;/p&gt;
&lt;p&gt;[51:42] Apparently, Node can be keeping track of async call stacks attached to the context storage, and so you could actually end up leaking a whole bunch of memory if you&#39;re using it in certain ways.&lt;/p&gt;
&lt;h3 id=&quot;sneaky-memory-leaks&quot;&gt;&lt;a href=&quot;https://schiener.io/2024-03-03/react-closures&quot;&gt;Sneaky Memory Leaks&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[51:53] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Uh, similarly, there are also a couple of very good blog posts talking about potential ways you might end up with memory leaks in a React application.&lt;/p&gt;
&lt;p&gt;[52:00] In cases where you&#39;re using like use callback or use memo or with React query where you&#39;re writing functions that are doing data fetching or something like that, and they&#39;re closing over variables that are in scope and they might not even be getting used. But the closure keeps those variables alive longer than you would have expected.&lt;/p&gt;
&lt;h3 id=&quot;data-fetching-patterns-in-single-page-applications&quot;&gt;&lt;a href=&quot;https://martinfowler.com/articles/data-fetch-spa.html&quot;&gt;Data Fetching Patterns in Single Page Applications&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[52:21] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; Cool. So next up is an article that&#39;s actually on Martin Fowler&#39;s blog. So Martin Fowler being the big thought leader and evangelist of, of all things, application development, period.&lt;/p&gt;
&lt;p&gt;[52:33] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Enterprise architecture patterns.&lt;/p&gt;
&lt;p&gt;[52:35] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; You see, divisive at the best of times, Martin Fowler is, but there&#39;s, there&#39;s been more and more React articles popping on, and they&#39;re not actually written by Martin Fowler, but they&#39;re written by someone who works at, whose name is Juntao, or actually, I don&#39;t think he works at ThoughtWorks, but he&#39;s very close with Martin Fowler, so he writes on Martin Fowler&#39;s blogs.&lt;/p&gt;
&lt;p&gt;[52:53] And he&#39;s been doing some really cool work on writing articles that start from the basic principles and expand out and create more and more complex applications that explain a bunch of concepts. So his latest article is about data fetching patterns in single page applications, and it starts with basic React concepts, builds up around, you know, asynchronous states being handled on the client side, parallel data fetching, how do you handle fallbacks, and then things like pre fetching, and then kind of It takes you through this journey and tells you when you should use which one.&lt;/p&gt;
&lt;p&gt;[53:21] Would recommend it. It&#39;s a very, very long read, probably one of the largest blog articles I&#39;ve seen in a very long while, but it&#39;s definitely worthwhile if you want to get a more holistic viewpoint. And he&#39;s written a lot of articles like this. Another great one that he&#39;s written just to give a shout out is called modularizing React applications with established UI patterns.&lt;/p&gt;
&lt;p&gt;[53:38] And this is one that Mark is not going to be very happy about, but this one is one of those, which is like, how do you enterprise ify React code, but it&#39;s actually a very interesting article that has some thoughts about how you should architect React apps. And some of those patterns, not all of them, are actually very good to make it easier for you to do things like testing and so on and so forth.&lt;/p&gt;
&lt;p&gt;[53:55] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Cheers. Yeah. Oh man, I remember reading Martin Fowler&#39;s blog like 15 years ago when I was like starting my career. So just for it to still be relevant is like a little bit mind boggling to me.&lt;/p&gt;
&lt;p&gt;[54:07] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; The website still looks like it&#39;s from 15 years ago as well.&lt;/p&gt;
&lt;p&gt;[54:10] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah. It&#39;s unchanged from when I started reading it.&lt;/p&gt;
&lt;p&gt;[54:13] Yeah. Not a single change that I can identify.&lt;/p&gt;
&lt;p&gt;[54:16] Cool. Yeah. I wanted to bring up a blog from Snyk, a security. Firm, I don&#39;t know, security product service, 10 modern Node. js runtime features to start using in 2024. It&#39;s, I have always found it really tricky to stay on top of every level of development over time.&lt;/p&gt;
&lt;p&gt;[54:35] So I appreciate a little roundup post like this that just sort of calls out a number of new features that I may not have caught the release of. It&#39;s sometimes it&#39;s hard to see, see the each individual release. So the 10 that they call out are a test runner. Native mocking, native test coverage, watch mode, core pack, the env loader, some import meta fields for the **dirname and **file fields, native timers and promises, permissions module and a policy module.&lt;/p&gt;
&lt;p&gt;[55:08] Those last two are not super clear to me, but like the test runner and native mocking and test coverage. Super great to not have to pull in a third party tool for that. As well as, yeah, I mean, watch mode. The number of times I&#39;ve installed NodeMon. If I can stop relying on a third party package for that, I&#39;ll be pretty happy.&lt;/p&gt;
&lt;p&gt;[55:26] I haven&#39;t checked that out yet, though. CorePack is actually, I feel like the name of it makes you compare it to Webpack, or it makes me compare it to Webpack, at least. But actually, it&#39;s, the main use for it is being able to specify a package manager at a specific version, which is so useful. Um, I appreciate that they have made it, I guess it&#39;s a, I guess it&#39;s a combination of being able to pin a specific version of your package manager, but it&#39;s also, I think, some underlying tools to make cross compatibility possible between package managers.&lt;/p&gt;
&lt;p&gt;[55:59] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; The primary issue is that NPM has always come pre installed with Node. But if you want to use Yarn or PNPM, or, Bun, I guess, you have to first use NPM to install those tools globally. And that&#39;s kind of a one off per system thing. And then you have to remind everybody that they&#39;re supposed to be using this package manager, the project.&lt;/p&gt;
&lt;p&gt;[56:22] And so I think the idea of CorePack is that if you specify in your package JSON, that, Hey, we&#39;re actually using Yarn 4. 1 or PMPM 9. 2. It will automatically do the work to make sure that the right package manager is available and being used in that project.&lt;/p&gt;
&lt;p&gt;[56:40] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Right. It fills the gap where, like, PackageLock or Yarn.&lt;/p&gt;
&lt;p&gt;[56:44] Lock will let you pin your dependencies, left the, you know, the gap of what about the version, you know, for the package manager because the different versions interpret that lock file slightly differently sometimes. Or, you know, I&#39;ve had a more recent version of Yarn blow away my Yarn or, you know, start adding things like a, a digest half to the, to the lock file.&lt;/p&gt;
&lt;p&gt;[57:06] So being able to pin a version, super great. Yeah. As well as like having a env loader, so we don&#39;t need to use env anymore. But yeah, so I appreciated this as a quick summary of a number of new built ins for Node.&lt;/p&gt;
&lt;p&gt;[57:18]&lt;/p&gt;
&lt;h3 id=&quot;migrating-to-the-next-app-router-with-zero-downtime&quot;&gt;&lt;a href=&quot;https://workos.com/blog/migrating-to-next-js-app-router-with-zero-downtime&quot;&gt;Migrating to the Next App Router With Zero Downtime&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[57:19] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; There was a very good post on migrating to the next app router with zero downtime. One of the pain points with server components is that you have to have the entire application set up with server components as the outer layer of the application in order to use them at all.&lt;/p&gt;
&lt;p&gt;[57:36] There&#39;s no straightforward, simple, like migrate, just a little piece of my component tree. And while you can use the app router with everything still on the client, as a client component, it&#39;s still a key step in order to even be able to think about using server components with Next. And so, this article was a good example of how a team with an existing Next app that used the Pages router was able to mimic the routing setup in the app router and carefully, step by step, make sure that things worked the same both ways.&lt;/p&gt;
&lt;p&gt;[58:05] Switch over and then be able to start using some server components piece within the existing structure.&lt;/p&gt;
&lt;h3 id=&quot;deno-standard-library-nearing-10&quot;&gt;&lt;a href=&quot;https://deno.com/blog/stabilize-std&quot;&gt;Deno Standard Library nearing 1.0&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[58:12] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; All right, Deno announces that the standard library is nearing 1. 0. That sounds great to me. The standard library is now a collection of 38 packages, they say. I appreciated this. Rather than doing it all in one big bang 1.&lt;/p&gt;
&lt;p&gt;[58:26] 0 release for the standard library, they&#39;re actually going to repeat a process for bringing each of those 38 packages up to stable relief. So they&#39;re gonna do it through like a release candidate and then gather feedback with like a a one month timeline for each of those packages to gather feedback.&lt;/p&gt;
&lt;p&gt;[58:45] So yeah, that&#39;s A lot of effort, a lot of energy being invested into creating a standard library and oh man, here&#39;s a standard library for a JS runtime.&lt;/p&gt;
&lt;p&gt;[58:55] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; I&#39;m confused. Are we allowed to have that?&lt;/p&gt;
&lt;p&gt;[58:57] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Right? It&#39;s, it, the classic criticism of JavaScript is the lack of a standard runtime.&lt;/p&gt;
&lt;p&gt;[59:02] So, oh my goodness, we have a standard runtime hitting stable. I feel like that&#39;s going to affect the ecosystem in some way, but we&#39;ll have to see what happens there. Cool.&lt;/p&gt;
&lt;h3 id=&quot;why-dont-we-do-acid-tests-anymore&quot;&gt;&lt;a href=&quot;https://twitter.com/vcarl_/status/1805627502036983995&quot;&gt;Why don&#39;t we do Acid tests anymore?&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[59:11] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I&#39;m going to call this one out. This was, I put, I put up one of my tweets. I don&#39;t know. I think it&#39;s a good question. I&#39;m going to do it.&lt;/p&gt;
&lt;p&gt;[59:16] I proposed the question out, why did we stop making checks like the ACID3 test? Why isn&#39;t there an ACID3 test for, for example, progressive web apps? I remember the ACID test series of, projects was&lt;/p&gt;
&lt;p&gt;[59:30] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Browser rendering behaviors.&lt;/p&gt;
&lt;p&gt;[59:32] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Browser rendering behaviors. It was, is the browser you&#39;re viewing the web page in standards compliant? Here is something. It should look like this. And I remember checking that in, you know, 2008 or whatever, when I was a wee baby nerd. And, my browser didn&#39;t render it correctly, and then a couple years later it did.&lt;/p&gt;
&lt;p&gt;[59:50] I was considering, like, what factors may have moved us away from things like that, and I feel like it used to be so hard to ship new things, new standards. That it took big coordinated pushes like that, or maybe the ecosystem was also just smaller and the number of players involved were, you know, it could fit in a room, but I feel like we&#39;ve lost something a little bit in there.&lt;/p&gt;
&lt;p&gt;[01:00:12] Like the acid three test was CSS three was ratified as a standard. They put out an associated test for this rendering behavior so that. Users could check if their browser was working in compliance with the standards. And I guess I, I put up the comparison to progressive web apps because like, They are not fully rolled out, like Chrome put out, the Chrome team put out a lot of support for progressive web apps, very much as a attempt, I think, to make web pages viable as competitors to native apps, and it just kind of never really happened, I think in large part because we never got cross compatibility With all the browsers for those capabilities.&lt;/p&gt;
&lt;p&gt;[01:00:54] And I don&#39;t even know that we, as an ecosystem, as web developers, have a shared understanding of what makes a progressive web app, you know, what defines a progressive web app? How do you distinguish that what you&#39;ve made meets all the criteria? So, I don&#39;t know. I just, it was lamenting our lack of those sort of litmus tests for, I guess, bringing a Technical definition to some of the terms that we throw around frequently.&lt;/p&gt;
&lt;p&gt;[01:01:21] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; It&#39;s, it&#39;s not quite what you&#39;re asking for here, but I can point to a couple ways that there&#39;s been more efforts to do interoperability efforts. One is I think the latest version of the speedometer benchmark for JS engines was specifically built to include a bunch of different things.&lt;/p&gt;
&lt;p&gt;[01:01:38] Reasonable, plausible example applications using various JavaScript frameworks. Like I know that there&#39;s like a React, Redux, Todo application as part of the benchmark sequence. So that&#39;s been an attempt to semi standardize things and make things a little more plausible. Also, I believe the last three or four years, all the major browser Vendors have done, I don&#39;t remember the exact term but like an interoperability effort where they identify like the top five or six pain points of places we know where browser behavior is differing and we&#39;re all going to make a push this year to make sure we all work the same way for these things.&lt;/p&gt;
&lt;p&gt;[01:02:15] So it&#39;s, it&#39;s not quite the same as having like the ACID3 test or, you know, a named version of CSS that we&#39;re all trying to implement, but it is, it is kind of along those lines.&lt;/p&gt;
&lt;p&gt;[01:02:27] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Right. Yeah. I don&#39;t know. I guess I, I, I think the branding that used to be baked in to those sort of releases served, I think to me, it served a valuable function in developer education. And I think that we&#39;ve lost something through not having it.&lt;/p&gt;
&lt;h3 id=&quot;web-platform-tests-dashboard&quot;&gt;&lt;a href=&quot;https://wpt.fyi/&quot;&gt;Web Platform Tests dashboard&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[01:02:41] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Like there was a web platform tests dashboard that like, yes, here is a single place that compares all of the features, accessibility, all of the compatibility across browsers, but it&#39;s not actually, you know, as a developer, it doesn&#39;t tell me what features are grouped together? What features go well together? What capabilities are unlocked by supporting this thing? We&#39;re going well beyond the scope of a lightning round link right now.&lt;/p&gt;
&lt;h3 id=&quot;htmx-simplicity-in-an-age-of-complicated-solutions&quot;&gt;&lt;a href=&quot;https://www.erikheemskerk.nl/htmx-simplicity/&quot;&gt;HTMX: Simplicity in an Age of Complicated Solutions&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[01:03:09] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; all right, and last one we got on the list. HTMX is a library for basically adding attributes to HTML tags that do things like data fetching and automatically inserting the results into the page without having to explicitly write JavaScript yourself, and they put up a blog post entitled Simplicity in an Age of Complicated Solutions, where they have some examples of handling inputs and data fetching with VanillaJS or with React code.&lt;/p&gt;
&lt;p&gt;[01:03:37] And they point out and say, look at how complicated this is. Whereas if we just slap HTML into the page and we add a couple attributes, look at how simple this is. And there&#39;s, there&#39;s some valid trains of thought to this. Certainly you&#39;re writing less code as an application developer. I questioned a little bit some of their arguments on general principle, but it is worth reading for an alternate viewpoint on how application behavior should be implemented.&lt;/p&gt;
&lt;p&gt;[01:04:00] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, definitely interesting from a perspective of just considering expansion of complexity too. I thought that was, I thought it was cool to read from that lens too.&lt;/p&gt;
&lt;p&gt;[01:04:08] Cool. All right. That is all of the, all the links we have. Thanks everyone for joining us. We&#39;ll be back on the last Wednesday of the month in here in the live stage of Reactiflux or in your podcast feed as soon as we can after that.&lt;/p&gt;
&lt;p&gt;[01:04:20] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Thank you for listening. Plug, please check out Replay. io for debugging your tests and trying to fix flakes. And also, I&#39;m almost done with a very large revamp of the primary Redux tutorial to make it TypeScript first and explain more things. Carl just pasted a link to the draft PR in there. I would appreciate feedback.&lt;/p&gt;
&lt;h3 id=&quot;revamp-redux-essentials-tutorial&quot;&gt;&lt;a href=&quot;https://github.com/reduxjs/redux/pull/4706&quot;&gt;Revamp &quot;Redux Essentials&quot; tutorial&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;[01:04:43] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; I&#39;m hoping to have this done within the next couple weeks. Like, I&#39;m almost done with the first draft, and then hopefully there&#39;s not too much more work to do. So, feedback, please?&lt;/p&gt;
&lt;p&gt;[01:04:52] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; For sure. Awesome. Yeah. Mo, anything you want to add?&lt;/p&gt;
&lt;p&gt;[01:04:55] &lt;strong&gt;Mo Khazali:&lt;/strong&gt; Nothing. Just thank you again for having me and always a lovely time chatting with you all and going over everything that&#39;s been happening.&lt;/p&gt;
&lt;p&gt;[01:05:02] And yeah, looking forward to the next one.&lt;/p&gt;
&lt;p&gt;[01:05:03] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Most definitely. Yeah. Always good talking to you guys. Cool.&lt;/p&gt;
&lt;p&gt;[01:05:07] we, we gather links from, um, a bunch of different sources, including thisweekinreact, bytes. dev, reactstatus, nextjsweekly, the reactjs subreddit. Right here in Reactiflux from the Tech Reads and News channel, um, and directly from people publishing articles, usually on like Twitter or Blue Sky.&lt;/p&gt;
&lt;p&gt;[01:05:26] If you see anything that you think that we should be paying attention to, definitely feel free to email us at hello at reactiflux. com with T M I R in the subject line. That&#39;s acronym for the show. I read every email that comes in, even the ones marked as spam. If this is the show you get value from and want to support, the best way to do so is to send it to someone.&lt;/p&gt;
&lt;p&gt;[01:05:45] Send it to your co workers, help them learn how you know so much about React. Otherwise, you know, submit a review, do stuff like that. But yeah, thank you so much for joining us. Appreciate it. See you next month.&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2024-06</link><guid isPermaLink="false">reactiflux-tmir-2024-06</guid><pubDate>Tue, 25 Jun 2024 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>This Month in React, May 2024: Updates from React Conf</title><description>&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://open.spotify.com/show/4g3Le83YfsMeI8Fq3cpPeH&quot;&gt;Spotify&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://podcasts.apple.com/us/podcast/reactiflux-events/id1661733526&quot;&gt;Apple Podcasts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://anchor.fm/s/a1f8a59c/podcast/rss&quot;&gt;RSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://podcasters.spotify.com/pod/show/reactiflux&quot;&gt;or anywhere you prefer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;iframe src=&quot;https://podcasters.spotify.com/pod/show/reactiflux/embed/episodes/TMiR-2024-05-Updates-from-React-Conf-e2kdg65&quot; height=&quot;102px&quot; width=&quot;400px&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://layoffs.fyi/&quot;&gt;9600 laid off from 36 companies&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;New releases
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#docusaurus-33&quot;&gt;02:07&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://docusaurus.io/blog/releases/3.3&quot;&gt;Docusaurus 3.3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#mantine-790&quot;&gt;02:17&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://mantine.dev/changelog/7-9-0/&quot;&gt;Mantine 7.9.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#astro-48&quot;&gt;02:30&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://astro.build/blog/astro-480/&quot;&gt;Astro 4.8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#redwood-75&quot;&gt;03:18&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/redwoodjs/redwood/releases/tag/v7.5.0&quot;&gt;Redwood 7.5&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;Upcoming conferences&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#render-atlanta&quot;&gt;03:32&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://renderatl.com/&quot;&gt;Render ATL&lt;/a&gt; June 12-14, 2024. Atlanta, GA, USA&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#future-frontend&quot;&gt;03:53&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://futurefrontend.com/&quot;&gt;Future Frontend&lt;/a&gt; June 13-14, 2024. Helsinki, Finland&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#react-norway&quot;&gt;04:49&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactnorway.com/&quot;&gt;React Norway&lt;/a&gt; June 14, 2024. Larvik, Norway&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#react-summit&quot;&gt;05:01&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactsummit.com/&quot;&gt;React Summit&lt;/a&gt; June 14 + 18, 2024. Amsterdam, Netherlands (+remote)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#react-nexus&quot;&gt;05:15&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactnexus.com/&quot;&gt;React Nexus&lt;/a&gt; July 4-5, 2024. Bangalore, India&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#chain-react&quot;&gt;05:43&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://chainreactconf.com/&quot;&gt;Chain React 2024&lt;/a&gt; July 17-19, 2024. In person in Portland, OR, USA&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#the-geek-conf&quot;&gt;06:12&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://thegeekconf.com/&quot;&gt;The Geek Conf&lt;/a&gt; July 25, 2024. Berlin, Germany&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#react-conf-recap&quot;&gt;06:53&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react.dev/blog/2024/05/22/react-conf-2024-recap&quot;&gt;React Conf recap&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=T8TZQ6k4SLE&quot;&gt;Livestream recording&lt;/a&gt; (165k views 🤯)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/sethwebster/status/1792739000366809363&quot;&gt;Seth Webster&#39;s mentioned thread&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#react-19-rc&quot;&gt;08:21&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react.dev/blog/2024/04/25/react-19&quot;&gt;React 19 RC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;Talks:
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=T8TZQ6k4SLE&amp;amp;t=8880s&quot;&gt;What’s new in React 19&lt;/a&gt; by &lt;a href=&quot;https://twitter.com/lydiahallie&quot;&gt;Lydia Hallie&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=T8TZQ6k4SLE&amp;amp;t=10112s&quot;&gt;React Unpacked: A Roadmap to React 19&lt;/a&gt; by &lt;a href=&quot;https://twitter.com/samselikoff&quot;&gt;Sam Selikoff&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#server-components-on-expo&quot;&gt;09:44&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=T8TZQ6k4SLE&amp;amp;t=20765s&quot;&gt;React Server Components Demo on Expo&lt;/a&gt; by Expo Team&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#react-for-two-computers&quot;&gt;12:12&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=T8TZQ6k4SLE&amp;amp;t=18825s&quot;&gt;React for Two Computers&lt;/a&gt; by &lt;a href=&quot;https://twitter.com/dan_abramov2&quot;&gt;Dan Abramov&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#qas-with-react-and-react-native-core-team&quot;&gt;15:46&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=T8TZQ6k4SLE&amp;amp;t=27518s&quot;&gt;React Q&amp;amp;A&lt;/a&gt; hosted by &lt;a href=&quot;https://twitter.com/chantastic&quot;&gt;Michael Chan&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=0ckOUBiuxVY&amp;amp;t=27935s&quot;&gt;React Native Q&amp;amp;A&lt;/a&gt; hosted by &lt;a href=&quot;https://twitter.com/jamonholmgren&quot;&gt;Jamon Holmgren&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#react-compiler&quot;&gt;16:33&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react.dev/learn/react-compiler&quot;&gt;React Compiler&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://playground.react.dev/&quot;&gt;Compiler playground&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Lauren Tan’s &lt;a href=&quot;https://www.youtube.com/watch?v=T8TZQ6k4SLE&amp;amp;t=18825s&quot;&gt;walkthrough of using the compiler and seeing the output&lt;/a&gt;, and Sathya + Mofei’s &lt;a href=&quot;https://www.youtube.com/live/0ckOUBiuxVY?si=yK4-4Ph_tm91zO8V&amp;amp;t=9303&quot;&gt;deep dive into how the compiler works&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=PYHBHK37xlE&quot;&gt;Jack Herrington’s compiler walkthrough&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/_gsathya/status/1792968851212169441&quot;&gt;Recommended for library authors to ship compiled artifacts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://speakerdeck.com/poteto/embercamp-2016-i-can-write-my-app-with-no-handlebars-declarative-templating-in-ember&quot;&gt;A talk from Lauren Tan in 2016&lt;/a&gt; that’s spiritually related to React Compiler&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#remix-is-merging-back-into-react-router&quot;&gt;23:39&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://remix.run/blog/merging-remix-and-react-router&quot;&gt;Merging Remix and React Router&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#effect-js&quot;&gt;28:08&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://effect.website/blog/effect-3.0&quot;&gt;Effect&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=SloZE4i4Zfk&quot;&gt;Great 10 min intro&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=PxIBWjiv3og&quot;&gt;Production-Grade Typescript talk&lt;/a&gt; at an event they hosted&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#forensics-of-react-server-components&quot;&gt;34:23&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.smashingmagazine.com/2024/05/forensics-react-server-components/&quot;&gt;The Forensics Of React Server Components&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#nextjs-v15-rc&quot;&gt;35:39&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://nextjs.org/blog/next-15-rc&quot;&gt;Next 15 RC&lt;/a&gt; (&lt;a href=&quot;https://twitter.com/nextjs/status/1793670209443680382&quot;&gt;tweet&lt;/a&gt;)
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Unrelated: &lt;a href=&quot;https://www.reuters.com/technology/vercel-completes-250-mln-series-e-round-325-bln-valuation-2024-05-16/&quot;&gt;Vercel raised $250m&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#its-not-just-you,-nextjs-is-getting-harder-to-use&quot;&gt;37:05&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.propelauth.com/post/nextjs-challenges&quot;&gt;It’s not just you, Next.js is getting harder to use&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;React Native:
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#react-native-new-architecture-beta&quot;&gt;39:21&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/reactwg/react-native-new-architecture/discussions/189&quot;&gt;“New Architecture” is now in beta&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#expo-is-now-the-recommended-framework&quot;&gt;40:25&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactnative.dev/docs/environment-setup&quot;&gt;“useFrameworks”&lt;/a&gt; - Meta announcing that you should use Expo by default.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#react-native-skia-on-webgpu&quot;&gt;41:17&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.youtube.com/live/s0wn7qpBoB8?si=HDsihzf803fTLlIc&amp;amp;t=2802&quot;&gt;React Native Skia&lt;/a&gt; updates&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#react-native-ide&quot;&gt;43:39&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://ide.swmansion.com/&quot;&gt;React Native IDE&lt;/a&gt;:&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#react-native-on-tvs&quot;&gt;45:03&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://conf.react.dev/talks/14&quot;&gt;Amazon doing a keynote talk on using React Native for TV&lt;/a&gt; and other devices.&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#lightning-round&quot;&gt;48:04&lt;/a&gt;]&lt;/code&gt; ⚡️ Lightning round ⚡️
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#speculation-rules-api-in-chrome&quot;&gt;48:07&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://developer.chrome.com/blog/speculation-rules-improvements&quot;&gt;Speculation Rules API&lt;/a&gt; in Chrome&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#josh-comeaus-post-on-usedeferredvalue&quot;&gt;48:33&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.joshwcomeau.com/react/use-deferred-value/&quot;&gt;Snappy UI Optimization with useDeferredValue&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#bluesky-engineering-culture&quot;&gt;49:24&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://newsletter.pragmaticengineer.com/p/bluesky-engineering-culture&quot;&gt;BlueSky Engineering Culture&lt;/a&gt;, from The Pragmatic Engineer&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#why-patching-globals-is-harmful&quot;&gt;50:16&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://kettanaito.com/blog/why-patching-globals-is-harmful&quot;&gt;Why Patching Globals is Harmful&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#new-webkit-features-in-safari-175&quot;&gt;50:54&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://webkit.org/blog/15383/webkit-features-in-safari-17-5/&quot;&gt;Webkit features in Safari 17.5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#why-react-query&quot;&gt;53:56&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://ui.dev/why-react-query&quot;&gt;Why React Query?&lt;/a&gt; (and upcoming React Query course)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-05#we-can-have-a-different-web&quot;&gt;54:45&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.citationneeded.news/we-can-have-a-different-web/&quot;&gt;We can have a different web&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://cpojer.net/posts/athena-crisis-open-source&quot;&gt;Athena Crisis is now open source&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.leeholmes.com/security-risks-of-postman/&quot;&gt;Security Risks of Postman&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.angular.dev/angular-v18-is-now-available-e79d5ac0affe&quot;&gt;Angular v18 is now available!&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Hello everyone. Thank you for joining us for May&#39;s This Month in React, where we recap and digest recent developments in the ever evolving React and web ecosystem. We&#39;re coming to you live from Reactiflux, the place for professional React developers. We have so much news this month because there was ReactConf and so many of the things that we had been discussing over the last three or four months actually like dropped and landed. [00:23]&lt;/p&gt;
&lt;p&gt;And are available and there are eight hours of talks discussing all of the things that we have been like punditing and talking heads about direct from the source. So I am excited about that. We&#39;re going to dig into it. [00:34]&lt;/p&gt;
&lt;p&gt;But first, I&#39;m Carl. I&#39;m a staff product developer and freelance community manager here at Reactiflux, where I run community programs like these and build tools to help keep the community running. [00:44]&lt;/p&gt;
&lt;p&gt;Before I hand it off to Mark I&#39;m gonna hand it off first to our new guest host for the month where it&#39;s a bit of a trial. [00:50]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; I think he&#39;s gonna do fine! [00:51]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Mark, thank you for introducing me to our new guest host! Do you want to introduce yourself? [00:56]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Nice to be here with you all. So my name is Mo. I head the mobile team at Theodo and I&#39;ve been sort of an active part of the React and React Native ecosystem for a few years now. And I help organize some meetup groups like the React Native London meetup and have here and there dabbled in some open source contributions within the ecosystem with libraries like Expo and Tamagui. [01:16]&lt;/p&gt;
&lt;p&gt;Very happy to be here with you all and looking forward to chatting all things React Native. [01:20]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Awesome. Thanks for joining us. [01:21]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; And I&#39;m Mark Erikson, my day job is working at Replay. io, where we&#39;re building a time traveling debugger for JavaScript. And outside of Replay, I do Redux stuff. [01:30]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Some quick hits before we get into the main news. [01:33]&lt;/p&gt;
&lt;h2 id=&quot;layoffs-news&quot;&gt;Layoffs news&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Quick layoffs overview from layoffs. fyi. This month, over May, there were 9, 600 laid off. from 36 companies, which is down quite a bit actually from April. last month in April, there were 22, 000 laid off from 57 companies. So that&#39;s improving a little bit. So far, this year has been substantially better than last year, but that&#39;s not saying very much because last year was like, the worst year in the last 20 years. So improving steadily is still not great. [02:02]&lt;/p&gt;
&lt;h2 id=&quot;new-releases&quot;&gt;New Releases&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Some new releases. It looks like there&#39;s been a couple of new releases in sort of the fallout of React 18. [02:07]&lt;/p&gt;
&lt;h2 id=&quot;docusaurus-33&quot;&gt;Docusaurus 3.3&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; 3 coming out, there&#39;s a Docusaurus just doing a minor release on 3. 3. Nothing too new there, it&#39;s basically just like fixing some new warnings that popped up. [02:17]&lt;/p&gt;
&lt;h2 id=&quot;mantine-790&quot;&gt;Mantine 7.9.0&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Mantine has also put out a 7. 9. 0 release. Mantine seems pretty cool, I haven&#39;t played with it too much myself, I don&#39;t play with very many UI toolkits, but this is high on my list of ones to look at. [02:30]&lt;/p&gt;
&lt;h2 id=&quot;astro-48&quot;&gt;Astro 4.8&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; There&#39;s also Astro 4. 8, which just came out. They&#39;re coming out with a couple of new things that look pretty interesting. You know, also like classic performance improvements and bug fixes. They have an experimental Astro Actions, which, you know, okay. We have one more thing in the ecosystem called Actions, which is unfortunate, they pitch it as, &quot;actions make it easy to define and call backend functions with full type safety from your client code.&quot; And full type safety on a backend request is wonderful. Happy to see that. That&#39;s pretty great. [03:00]&lt;/p&gt;
&lt;p&gt;They also have an experimental request rewriting feature. Request rewriting is pretty important on a large production application. It&#39;s where you receive a request on one URL and handle it internally as if it was a different URL. So you can do stuff like aliases or rewrites or silent redirects and things like that. [03:18]&lt;/p&gt;
&lt;h2 id=&quot;redwood-75&quot;&gt;Redwood 7.5&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; There&#39;s also Redwood 7. 5. I recently spoke with the Redwood folks at ReactConf and it got, it actually got me a lot more excited about the project. [03:26]&lt;/p&gt;
&lt;h2 id=&quot;upcoming-conferences&quot;&gt;Upcoming conferences&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; All right, switching into some upcoming conferences. Me and Mo are going to bounce off each other here a little bit. [03:32]&lt;/p&gt;
&lt;h2 id=&quot;render-atlanta&quot;&gt;Render Atlanta&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; In two weeks, I am sad that I will not be able to make it to this one, but Render Atlanta is happening June 12th through 14th in Atlanta, Georgia. [03:41]&lt;/p&gt;
&lt;p&gt;Looks like a really great conference. I have heard nothing but phenomenal things from past years, and it looks like a great crew is heading out there this year. So yeah, definitely check it out if you are looking for a conference this month. [03:52]&lt;/p&gt;
&lt;p&gt;Yeah, Mo? [03:53]&lt;/p&gt;
&lt;h2 id=&quot;future-frontend&quot;&gt;Future Frontend&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; And just around the same time, so June 13th to 14th, Future Frontend is happening in Helsinki. [03:58]&lt;/p&gt;
&lt;p&gt;So that&#39;s up north in Finland. And I can personally attest to how good this conference is. It&#39;s one of those conferences that has a real community feel to it. You know, 100, 150, 200 people coming. And everyone is super passionate about building front end apps, not just in the React world, but across boundaries. And that means you get some really cool wacky ideas coming up. [04:15]&lt;/p&gt;
&lt;p&gt;Last year, someone demoed a talking hamster that was built in JavaScript, which was one of the most wacky and coolest conference talks I&#39;ve ever seen in my life, and I really enjoyed it. So would definitely give it a shot if you&#39;re kind of in Europe and around at that time. [04:27]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; And I, I believe one of the organizers is, uh, Juho Vepsäläinen. He has been active in Reactiflux from very early on, he used to have a channel himself for his project, SurviveJS. [04:37]&lt;/p&gt;
&lt;p&gt;So I, he&#39;s been on my radar for my entire career. He seems like a wonderful person. I&#39;ve never met him in person though. So I&#39;m sad that I also won&#39;t be able to fly out to, you know, I can&#39;t make the Georgia, so Finland is a bit of a tough sell. [04:49]&lt;/p&gt;
&lt;h2 id=&quot;react-norway&quot;&gt;React Norway&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; But that week is a heavy conference month because React Norway is also happening June 14th in Larvik, Norway. I don&#39;t know anything about the organizers there. So, can&#39;t comment. [05:01]&lt;/p&gt;
&lt;h2 id=&quot;react-summit&quot;&gt;React Summit&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; There&#39;s also React Summit, June 14th and 18th in Amsterdam in the Netherlands with a remote option as well. React Summit definitely, uh, I&#39;ve spoken with the organizers in the past and they seem quite great. I have not attended it myself though. [05:15]&lt;/p&gt;
&lt;h2 id=&quot;react-nexus&quot;&gt;React Nexus&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; At the very beginning of July, 4th to 5th of July, in Bangalore, in India, there&#39;s React Nexus. Now, last year I had the pleasure of attending React Nexus, and it was such a great community. [05:24]&lt;/p&gt;
&lt;p&gt;I gave a talk then and really just an amazing level of energy there. I think it was about four or five, 600 developers all there. And I really felt like there was something unique about it. There was a lot of passion and a lot of drive there and people were just genuinely interested in learning. So really would recommend it if you&#39;re kind of near the South, South Asia area to definitely give React Nexus a try. [05:43]&lt;/p&gt;
&lt;h2 id=&quot;chain-react&quot;&gt;Chain React&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Around a couple of weeks after that, there&#39;s Chain React. So that&#39;s July 17th to 19th. That&#39;s in Portland, Oregon. Now, I haven&#39;t had the opportunity to visit Chain React, but I&#39;m very close with some of the organizers of it, the folks from Infinite Red. I&#39;ve met them here and there at different conferences, most recently last week, actually, and they are a lovely crew, are a lot of fun, genuinely so much energy and fun, and I&#39;ve heard nothing but great things about Chain React. So if you&#39;re US based and can make it out to Portland, definitely would recommend going to Chain React. [06:12]&lt;/p&gt;
&lt;h2 id=&quot;the-geek-conf&quot;&gt;The Geek Conf&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; And then a week after that on July 25th, there is the Geek Conf. I happen to know these organizers because they&#39;re a key part of the React Native community, the folks from GeekyAnts, and they are hosting a conference in Berlin. So it&#39;s the first year that they&#39;re doing this and I&#39;ll be doing a talk there. So a shameless plug that you should definitely come around and we should hang out. [06:31]&lt;/p&gt;
&lt;p&gt;But the Geek Conf is really kind of intersecting web and React Native, which I think is the direction that the ecosystem is going towards. They have some really great lineup of speakers coming around. Folks like Tejas Kumar and Bruno Polino and many others, not including myself there, which I don&#39;t consider myself to be a great speaker. So you should come for those folks, and maybe we can hang out in the process as well. [06:50]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Let&#39;s jump into the main content then. [06:53]&lt;/p&gt;
&lt;h2 id=&quot;react-conf-recap&quot;&gt;React Conf Recap&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Obviously the main subject this month is going to be React Conf. They put up a post on the blog with a React Conf 2024 recap, which is phenomenal. [07:03]&lt;/p&gt;
&lt;p&gt;Something I appreciate, they link to the section in the live stream where each of the talks happened. So appreciate that. I feel like so many conferences take weeks to get their conference recordings up. So just leaving the live stream up and linking to the talks. What a solution, it&#39;s so good. Something else I found impressive. The livestream recording already has 165, 000 watches. Nope, sorry, since I watched it last night, it&#39;s now up to 167,000, which is wild. [07:29]&lt;/p&gt;
&lt;p&gt;They open with a recorded bit from the CTO of Meta and then go to Seth Webster, manager of the React team. And he just shouted out on Twitter after the fact, because he was getting some questions about his voice, he apparently had COVID and has had some enduring health effects as a result of complications from that. So I just thought it was really like powerful of him to take center stage, introducing the concept, knowing that that&#39;s his experience right now. So, I just wanted to shout that out. He put up a really good, a little explanation of it after the fact. And, I just thought it was really powerful. Wanted to give that a little bit of a signal boost. [08:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Nice to touch on the fact that there are real people with real human concerns involved in building the tools that we actually use. [08:12]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yes, the human aspect of React. But yeah. Let&#39;s also dig into some of the technical aspect of React as well. Mark, you want to lead us in here? [08:21]&lt;/p&gt;
&lt;h2 id=&quot;react-19-rc&quot;&gt;React 19 RC&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Happily. Pointing to a couple of the big announcements from the conference. The first one was that React 19 itself has actually gone straight all the way from beta to release candidate. [08:31]&lt;/p&gt;
&lt;p&gt;I wasn&#39;t sure that they would even get to this step by the conference, but clearly they feel pretty good about the overall stability of, you know, what they&#39;ve been trying to work on. I&#39;m not going to try to go through all the various features and everything. If you&#39;ve been listening to the podcast for the last few months, you&#39;ve heard us discuss most of them at some point. [08:49]&lt;/p&gt;
&lt;p&gt;And the blog post itself does actually touch on all the major things that are in there. Things like, you know, hooks for dealing with for the new HTML streaming capabilities for things like assets. A lot of different stuff in there and whether these are going to have direct relevance for your own application will always vary, but there&#39;s been a lot of time and effort put into all these different pieces and how they tie together, even strictly on the client side, beyond things like server components as well. [09:21]&lt;/p&gt;
&lt;p&gt;Definitely worth taking a look at the RC blog posts, a great summary of what all is there in React 19. Related to that specifically, of course, there were talks at the conference that then went deeper into some of these aspects. Lydia Howley and Sam Selkoff both had talks that kind of gave overviews of the pieces there, especially some of the server component stuff. Worth watching those if you get a chance. [09:44]&lt;/p&gt;
&lt;h2 id=&quot;server-components-on-expo&quot;&gt;Server Components on Expo&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Along with that, there was also a talk from the Expo team and Evan Bacon talking about how server components might actually fit into the React Native side of things. Mo, you have any thoughts on that one? [09:55]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Yeah, so, this is something that the Expo team&#39;s been kind of silently working in the background for a little while, there was an interesting tweet that Evan had at one point. I think it was in a tweet exchange where he was like, if you look through my Git commits and my sort of hobby repos, you&#39;ll see the direction that Expo&#39;s going, because it&#39;s a very direct sign into my psyche. And you can see that he started working on this several months ago, and it&#39;s finally come to fruition. [10:15]&lt;/p&gt;
&lt;p&gt;But they&#39;ve kind of been trying to work out what server components mean in a React Native ecosystem, which was, it was a big question mark, I think, for everyone in the community, because traditionally mobile apps are client side, and what does it mean to have the server rendering native layer components and elements? [10:31]&lt;/p&gt;
&lt;p&gt;I think they delivered on a phenomenal demo. There&#39;s still a long way to go before it reaches production and something that we can use, but really the core is that as long as there&#39;s sort of native layer supports for the right components, you can stream any JS that you want across the wire that&#39;s sort of serialized in the RSC way. [10:48]&lt;/p&gt;
&lt;p&gt;And then that can render native layer components on the device, which is quite cool. And what that means is you can basically stream JS that can orchestrate certain native behaviors, like maybe showing a native share card or showing a contact card on someone&#39;s phone. Those are sort of native elements, but they can still be orchestrated and sent across the wire with JS. [11:05]&lt;/p&gt;
&lt;p&gt;I&#39;d really recommend going through and watching the demo that they had, because the majority of the talk is actually the demo, and you&#39;ll get a real good sense of what that means and what it would look like in practice. And interestingly, in the aftermath of it, it fueled a massive debate across the entire React Native ecosystem on the place where debates always get fueled, which is Twitter or X these days. It was a question of, because you can just basically send any JavaScript across the wire that will change how the app behaves, what does that really mean for Apple&#39;s terms of service? [11:32]&lt;/p&gt;
&lt;p&gt;And there was a bunch of people who were like, this absolutely violates Apple&#39;s terms of service. Your app will get rejected. Why is Expo doing this to the community? Why are they putting them down a rabbit hole? [11:40]&lt;/p&gt;
&lt;p&gt;And then other people saying, no, absolutely not. You can basically replace the entire JavaScript bundle today in React Native. So why should this change it? So interesting debates came out of it, but nonetheless, there&#39;s some exciting stuff going on. And I think we&#39;re just at the very tip of the iceberg so far. [11:55]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, a couple months ago, I had presumed that server components were just not going to be a thing on React Native, and was very surprised that they had full plans to integrate and make them work, pretty much the same as how it does on web. [12:09]&lt;/p&gt;
&lt;p&gt;So yeah, definitely worth checking out the demo to see how they get that going. [12:12]&lt;/p&gt;
&lt;h2 id=&quot;react-for-two-computers&quot;&gt;React for Two Computers&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; On top of that, afterwards, there was a talk by Dan Abramov, where he went over the paradigm of React for two computers, kind of sticking with the server component mode and model. And it was a really primitive explanation. I really love explanations like this, where someone kind of breaks things down into the very, very basic primitives. [12:30]&lt;/p&gt;
&lt;p&gt;Like you&#39;ve got a web server. Here&#39;s how you can render HTML on the web and send it across to the client. Okay, what happens if we start to extract certain parts of this, separate them out and see how you can kind of construct React server components from scratch. I think Dan did a post on, it was something on GitHub that he posted, which kind of walked through the thinking for this talk, but really articulating it in a talk, put it into a nice story. [12:51]&lt;/p&gt;
&lt;p&gt;It was quite fascinating. And I think it was a really good explanation for anyone who wants to really understand server components. I don&#39;t know if you had any thoughts on it, Mark, yourself, but I quite enjoyed that. [13:00]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; A couple bits. He actually did put up a post earlier this year on his blog called The Two Reacts, which I think directly is, the exact same line of thought that led into this talk. [13:10]&lt;/p&gt;
&lt;p&gt;If you&#39;ve watched Dan over the last year and a half, he&#39;s been throwing a lot of ideas against the wall to see what sticks in terms of teaching people server components and the mental model that, and like, we&#39;re trying to figure out what mental model makes sense to both explain it and make use of it properly. [13:29]&lt;/p&gt;
&lt;p&gt;The thought process here of, you know, it&#39;s expanding React to the server, but also it&#39;s still one React tree just split across two computers is something worth trying to wrap your mind around. [13:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, I was just thinking of whether I wanted to share this under the React compiler notes, and I think I&#39;ll get deeper into it. [13:47]&lt;/p&gt;
&lt;p&gt;But, I do think that this is a continuation of a pretty stable vision that the core team has had for React. From the outset, server rendering was something that was, you know, ostensibly possible to do with React. And there were many years and people were just kind of like wild westing it and doing it themselves and, you know, render to string and, Oh, cool. Now we can render a, you know, like a streamable HTML. [14:12]&lt;/p&gt;
&lt;p&gt;This is not new, it&#39;s just a new attempt at solving the same problem in a way that does it better than previously. So it&#39;s just a, you know, it&#39;s one more incremental step forward. [14:23]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yeah, I actually had a chance to talk with Ricky Hanlon while I was there in Vegas, actually, ironically, like five feet from where Carl&#39;s sitting right now, and he was talking a bit about, we didn&#39;t exactly know what the end state looked like, but we had a lot of intuitions about what it would feel like when we got there, and There, there was like partially a master plan, but also partially not. [14:48]&lt;/p&gt;
&lt;p&gt;It was just, we think these are the big problems we need to solve along the way. And that&#39;s how we ended up in things like hooks and whatnot. Eventually those have led to the point where now the grand vision is kind of coming together. [15:02]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; And I guess just to go in from the React Native perspective as well, me and Evan were having a chat about this at App.Js and a few other people as well were kind of echoing the same sentiment, which is it&#39;s been the same in the React Native ecosystem. [15:14]&lt;/p&gt;
&lt;p&gt;Larger scale organizations have been using server driven UI, where you kind of describe your layout in the form of a JSON object and ship that through an API endpoint or from your CMS directly to define how your page is layouted. [15:27]&lt;/p&gt;
&lt;p&gt;And server components on React Native as well are just kind of a continuation of that same paradigm of starting to move some of the layouting and some of the business logic of your front end app over to the server to kind of optimize it and also allow for more flexibility and better performance in many cases. [15:43]&lt;/p&gt;
&lt;p&gt;Like you say, it&#39;s just a natural continuation, whether you&#39;re on web or on mobile. [15:46]&lt;/p&gt;
&lt;h2 id=&quot;qas-with-react-and-react-native-core-team&quot;&gt;Q&amp;amp;As with React and React Native Core team&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; So, wrapping up a couple of the talk links here, there were also Q&amp;amp; As with both the React core team and React native core teams. I admittedly did not have a chance to watch these, but there&#39;s, I&#39;m going to assume that there is material worth watching in both those sets of discussions. [16:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Sadly, I missed it as well. There was just too many interesting people to have great conversations with. I did hear that, I saw like a kind of snarky, sarcastic tweet from someone on the, I can&#39;t remember who now, someone on the React Native team, saying something to the effect of, like, we dropped so many bombs in this React Native Q&amp;amp; A and you&#39;re talking about this? Just as sort of a meta commentary on the Twitter discourse. It sounds like the core team thought that they got very deep in the weeds talking about some of the, talking about the technical details. [16:33]&lt;/p&gt;
&lt;h2 id=&quot;react-compiler&quot;&gt;React Compiler&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; All right, moving along to another fairly sizable announcement from the conference and something I&#39;ve been very eagerly waiting for it at the point that I almost stood up and did actually cheer when it happened. [16:43]&lt;/p&gt;
&lt;p&gt;The long awaited React compiler is now actually both open source and usable. Finally! The React team had been promising that it&#39;s real, trust us, it works. And they&#39;d said at a couple talks last year that, you know, we&#39;re trialing it in production in a couple real Facebook sites. [17:03]&lt;/p&gt;
&lt;p&gt;It is now open source. You can now actually use it. And they&#39;ve dropped a lot of information about how it actually works as well. So it&#39;s now actually officially listed in the docs. And there&#39;s instructions for setting up and using it. It&#39;s worth noting that in its current form, the way to use it is as a Babel plugin, which means that ironically we&#39;ve been doing all this work to switch our build tooling over to Rust, and suddenly we might actually need to re add Babel, just to get the compiler to work. [17:31]&lt;/p&gt;
&lt;p&gt;Having said that, the compiler itself is like 90 percent it s own code, and it&#39;s really just using the Babel plugin layer as a way to manage the parsing of the code. But they&#39;ve even played around with an eventual rewrite of some of the compiler logic in Rust. Um, there will likely be other alternative ways to load it into your build system down the road. [17:55]&lt;/p&gt;
&lt;p&gt;So, it&#39;s not like it&#39;s Strictly built out of Babel. One really neat piece is that they actually have a live playground. If you ever went to the Babel website, Babel has a playground that shows you, if you write some JavaScript code and have certain compilation settings activated, here&#39;s what the output looks like. [18:14]&lt;/p&gt;
&lt;p&gt;They&#39;ve got a playground for the compiler as well. And I think this is really valuable on multiple levels. One, is that it literally shows you what the output will look like, so you can get a sense of the transpiled code without having to do an actual build step. It also actually has a set of vertical sidebars which show you what the actual compiler internals are outputting at each step of the transformation process. [18:43]&lt;/p&gt;
&lt;p&gt;The compiler itself is awesome. A real, no kidding, deep compiler, like, with all the, you know, real world compiler optimizations. And so getting a sense of both what kinds of passes they&#39;re doing and what the results look like, I think is really cool. There were a couple of really good talks at the conference about it. [19:01]&lt;/p&gt;
&lt;p&gt;Lauren Tan did a kind of a usage walkthrough, you know, let&#39;s add it to a project. Let&#39;s use it. The React DevTools will now show you if certain components have been optimized. She even had written her own little proof of concept VS Code plugin that would show in your editor if certain components were being optimized. That&#39;s not actually available yet that I know of. They may end up releasing like an official version of that VS Code plugin at some point. [19:29]&lt;/p&gt;
&lt;p&gt;Meanwhile, Sathya and Mofei, also on the compiler team, did more of a deep dive into how it works. And Mofei in particular did a live coding demo where she showed like, let&#39;s actually write a little Babel plugin that makes use of some of the compiler internal, and see how the output of it changes as they add each piece of the compiler logic to it. [19:50]&lt;/p&gt;
&lt;p&gt;One more good explainer, Jack Harrington had a chance to do, I think, both a video and a blog post where he walked through using the compiler and talked about some of the usage changes and the mental model aspects. I think one of the big pieces for people to understand is that this does several different things. [20:10]&lt;/p&gt;
&lt;p&gt;One is it adds like the dependency array aspects to useEffect, useMemo that we&#39;ve always kind of wanted so we don&#39;t have to do it ourselves. [20:18]&lt;/p&gt;
&lt;p&gt;Another is that it overall optimizes the rendering performance of components. But on top of that, it kind of flips the mental model of React rendering on its head. [20:29]&lt;/p&gt;
&lt;p&gt;One of the big things you&#39;ve always needed to know is that React renders recursively by default, and now the compiler flips it, so that finally, only components whose data actually changed will re render. So this is a big deal. [20:42]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, I also saw on Twitter, just sort of an open question that I thought was a good one to ask. [20:48]&lt;/p&gt;
&lt;p&gt;Jamie Kyle asked if library authors were going to be expected to ship components and hooks pre compiled. And Sathya responded that like, yep, they&#39;re just like all of the other transpiling, compiling in the ecosystem. You know, if you&#39;re authoring in TypeScript or Flow or, I can&#39;t think of any other compiled things off the top of my head, then yeah, so you published the compiled artifacts to npm, so I thought that was worth calling out for anyone here who might maintain a library. [21:17]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; It&#39;s worth noting that the compiler output does expect to use a new hook that is, strictly speaking, only available in React 19. Having said that, there is a very simple polyfill. [21:31]&lt;/p&gt;
&lt;p&gt;It&#39;s really just a useMemo that allocates an array. That polyfill ought to make the compiler&#39;s output work if your app is still on React 17 or 18. So, in theory, you could drop this into an existing React 17 or 18 application and still get the same performance benefits. Which is nice because, you know, basically nobody&#39;s on React 19 yet. [21:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; I guess in terms of another small detail as well, to keep in mind if you&#39;re trying to add this in, is the React compiler, as far as I&#39;m aware, expects for you to list it as the first Babel plugin in your config, and the idea with there is they want to have the state of your code base before any other plugins mess around with it and transform it. [22:12]&lt;/p&gt;
&lt;p&gt;So, it&#39;s, that&#39;s just a little gotcha in case you are trying to integrate it. Just now into your app, hearing about this. [22:18]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; And again, with Carl, with what you said earlier, it&#39;s, this is a vision that the React team has had for a while. You know, they, they&#39;d said early on that they designed the hooks APIs, you know, specifically the dependency arrays under the assumption that someday a future magical compiler could do that for you. [22:36]&lt;/p&gt;
&lt;p&gt;They honestly weren&#39;t sure if, and when they would ever get around to it. And it was pointed out that they didn&#39;t have compiler expertise on the team. At the time that they were making that assumption, but that was a thing that they assumed would eventually happen. You know, they played around with a proof of concept compiler called prepack years ago. [22:54]&lt;/p&gt;
&lt;p&gt;That attempt didn&#39;t work out. And even this current compiler took a couple of different attempts to really figure out what they, what it was supposed to do and how they were going to do it. But the thought process of we could use a compiler has been around for a while. A couple other quick notes to wrap this up. [23:12]&lt;/p&gt;
&lt;p&gt;Lauren Tan did a talk all the way back in 2016 that has kind of a couple indirect precursors to the thought process of the compiler and using it. They apparently used it in the official React Conf app. And the BlueSky Twitter alternative is already using it in production, partly because Dan works on BlueSky now. [23:32]&lt;/p&gt;
&lt;p&gt;And also the React core team added it to BlueSky to help prove that it would work in a separate real world application. [23:39]&lt;/p&gt;
&lt;h2 id=&quot;remix-is-merging-back-into-react-router&quot;&gt;Remix is merging (back?) into React Router&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; I&#39;ll toss out one other announcement that came out of the conference. So Ryan Florence did a talk where he announced that Remix and React Router are merging, sort of, conceptually. [23:51]&lt;/p&gt;
&lt;p&gt;The way he put it is that Remix itself, at this point, is basically just the latest version of React Router plus a Vite plugin that adds the actual build steps. And so, rather than continuing to put more things into the Remix packages specifically, they&#39;re just gonna move a couple more things over into the React Router packages, label that React Router v7, and it has an optional Vite plugin if you want to do server usage. [24:21]&lt;/p&gt;
&lt;p&gt;Um, this of course was met with much confusion and complaining on Twitter. Personally, it makes sense to me. And it&#39;s worth watching Ryan&#39;s talk to get a sense of why they&#39;re going this way. [24:32]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, and this was surprising. I won&#39;t say that it wasn&#39;t surprising. I just thought that, like, Remix, I mean, they&#39;re a venture backed business. They got acquired by Shopify. I am surprised to see them say that Remix is just not going to be a thing anymore. For that, for those branding reasons, branding and funding and,[24:49]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; The caveat there is Ryan said in both the talk and the later blog post that they put up, like, we have more plans for Remix as both a brand and a set of tools that we want to circle back to in a few months. [25:05]&lt;/p&gt;
&lt;p&gt;Like, we have some idea of something new we want to do with it, but for now the focus is like, let&#39;s just roll all this stuff into the next version of React Router and then you can pick and choose whether it&#39;s just doing client side stuff or server side stuff too. [25:19]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; And I guess on the Shopify piece, Carl, I&#39;d love to get your thoughts, but I feel like Shopify kind of achieved what they were trying to achieve with Remix, which was ultimately they took it and made it the backbone of Hydrogen, which was their own sort of, I guess, framework, so to speak. [25:33]&lt;/p&gt;
&lt;p&gt;And it&#39;s great if you&#39;ve ever used it to make a Shopify app. I don&#39;t know if that, maybe they&#39;re looking to get more out of it or not, but I feel like it probably achieved at least some of the purpose of why they, they, backed it as a framework and invested in it. [25:44]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; That&#39;s true. Yeah. And I guess, actually, I don&#39;t know this, but I think it was an acqui-hire, they started working at Shopify? Yeah. So that, that certainly makes sense, Shopify got their value out of business transaction for sure. But, so I guess, as surprising as it was to me for them to announce that they&#39;re now moving back to React Router as their primary brand for the work they&#39;re doing right now, they also have a long history of doing things like this. [26:09]&lt;/p&gt;
&lt;p&gt;The React Router folks put out React Router and then they&#39;ve done at least one, I think, departure that sort of builds on because they had done Reach router for a while because they had some new concepts that they wanted to explore. And I think that is a phenomenally responsible way to approach public experimentation in an open source setting. [26:30]&lt;/p&gt;
&lt;p&gt;They have a large enough audience that if they announce a new project, people will give it a shot. And I think it is so smart, in terms of, like, branding and messaging and, managing expectations, I think they are tremendously smart and thoughtful about how they use brands, because, you know, you can do, like, a major version, you can do a beta or an RC, or, you know, do, like, an experimental phase in a project, but I think it is really great and honestly kind of them to the community to say like no This is different enough that we are giving it a new brand and we&#39;re gonna experiment and then now twice now They&#39;ve said &quot;cool, we learned a bunch of stuff and we&#39;re just gonna bring it back, now it&#39;s just React Router again.&quot; [27:12]&lt;/p&gt;
&lt;p&gt;So because React Router specifically React Router is such a like foundational part of the Ecosystem. Like, you know, the React team has never blessed a routing tool to use with React. So it&#39;s, they&#39;ve always just been the de facto one to use. And I think it is really marvelous that they have taken that position with such seriousness and done this kind of thoughtful experimentation with it. [27:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; I can vouch that naming and branding and getting people to migrate is a really hard problem. [27:45]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I want to call that out, I think it&#39;s really clever and smart and, just having been in the ecosystem since 2015 and watching a lot of thrashing and watching a lot of arguing on Twitter about like this and that and the other, I think they&#39;ve been really consistently great about, once all the dust settles, at the time it was kind of confusing, but so I guess I want to be the voice that&#39;s like,&quot; it&#39;s going to be okay.&quot; [28:08]&lt;/p&gt;
&lt;h2 id=&quot;effect-js&quot;&gt;Effect JS&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Okay, moving on to the next subject, I guess. This was a subject that I almost brought in on the last episode and held off because it seemed a little bit too out there. But I dug into it a little bit over the last month. [28:19]&lt;/p&gt;
&lt;p&gt;Effect, they have released 3. 0 and they are now calling it production ready. It, it had crossed my radar in April with some people asking folks like Kent C. Dodds and other prominent educators, what they thought about it. So, and the consensus I saw then was like, looks neat, but it&#39;s real big. That&#39;s a lot to learn. I&#39;m not, I&#39;m not dipping my toes in yet. [28:41]&lt;/p&gt;
&lt;p&gt;And basically what I understand it to be is a, it&#39;s almost a standard library for TypeScript, but it&#39;s also. Like a functional programming kind of paradigm, like it introduces new concepts for all the way down to console. log. So there&#39;s a fetch replacement. There&#39;s a console. log replacement. There&#39;s a promise replacement. It&#39;s an enormous surface area for the API. So in a very real way, it&#39;s like learning a new language, which is why I held off on this, because it&#39;s a Big swing. [29:15]&lt;/p&gt;
&lt;p&gt;It is an enormous swing. One of the reasons I decided to bring it in is that I learned while digging into it that Johannes Schickling is one of the people backing this, one of the creators of the project. And he&#39;s been, I can&#39;t remember what his first project was. I&#39;ve been following him for, it feels like forever. He was the founder of Prisma, which was a very influential ORM, schema declaration model. [29:40]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; He&#39;s done some GraphQL stuff, and I actually had a chance to meet him in person back in December, and one of the ideas he&#39;s been playing around with is like a local first application where every single bit of the code from fetch data to literal client side state is held in an in memory SQLite database. [29:59]&lt;/p&gt;
&lt;p&gt;So, like, rather than a bunch of used state hooks, he&#39;s got, like, reactive hooks that tie into SQLite running as WASM in the browser, and literally every bit of data in that example. is coming straight out of that SQLite database. Which sounds odd, but when you see it in practice, it&#39;s like, oh, I can see the intent behind why he&#39;s playing with this idea. [30:22]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; I don&#39;t know if you folks recall Project Lightspeed, that Meta did a few years ago, I think it was like 2019, 2020. With the messenger app that they did, it was a very similar approach, which was everything on the client side is backed by SQLite database, the data fetching, the layouting, the local state. So I don&#39;t think it&#39;s an, it&#39;s that odd of a paradigm. [30:40]&lt;/p&gt;
&lt;p&gt;It sounds like a, it could be a good scalable way to handle things. So interesting to hear that somebody else is like digging into that vision, Mark. [30:47]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; So with the effect thing, like I echo what you&#39;re saying, Carl, is like, just trying to describe what the project is. And a couple bullet points is hard. If I could attempt to restate what you were saying a minute ago, it&#39;s multiple different pieces. [31:01]&lt;/p&gt;
&lt;p&gt;One is that there&#39;s some similarity to the Redux Saga package, where instead of using Async await syntax, and actually kicking off things like async requests right now, I think your code uses generators and generally returns descriptions of like what kind of side effectful behavior you want the code to execute. [31:26]&lt;/p&gt;
&lt;p&gt;But nothing actually happens until you return those descriptions to some kind of runner that actually goes off and does the work. Another aspect is that instead of relying on throwing errors just from any piece of the code, you actually end up specifying at the type level that this function could return a number and could throw a, like, could not parse integer error, or something like that. [31:54]&lt;/p&gt;
&lt;p&gt;And so you, like, it&#39;s a very, like I said, functional programming way of modeling code. Returned values versus possible thrown errors, and they have an entire JavaScript standard library built up because as we all know, one of the weaknesses of the JS ecosystem is we don&#39;t have much of a standard library built into the language itself. [32:17]&lt;/p&gt;
&lt;p&gt;And there&#39;s a whole bunch of primitives around async concurrency. So things like retries and, you know, iteration, backoffs, and that sort of thing. So, like, that, as usual, I&#39;ve not played with it, I&#39;ve only tried to skim over the docs, and, yeah, like, my own reaction is like, Wow, that&#39;s a lot, I can&#39;t even wrap my head around this, but I think that&#39;s the best description I can come up with, and I think I see where they&#39;re trying to go with this. [32:45]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I did dig around a little bit more than trying to read the documentation. I was directed to, a wonderful 10 minute introduction about it. That was what really sold me, and I&#39;m like, yep, okay, we&#39;re gonna talk about this. So I definitely recommend checking that out. Um, from Ethan Niser, yeah, just, it&#39;s a great 10 minute introduction. [33:02]&lt;/p&gt;
&lt;p&gt;And going back to Johannes Schickling, he gave a, an hour long talk titled Production Grade TypeScript at, they put on a conference, they put on a conference already, Effect Days 2024. It was also great. It was much deeper in the weeds. At one point he said, like, &quot;I&#39;m sure that a lot of people watching this talk on YouTube are going to be angry I&#39;m not explaining what effect is.&quot; And I was like, dang it, that&#39;s me. I wanted to know what effect is (laughter). But it was a great talk besides that, uh, it just didn&#39;t quite answer the question I was hoping for. [33:32]&lt;/p&gt;
&lt;p&gt;If he&#39;s got bona fides in, like, querying, schema, GraphQL, as well as local first, like, to me, those both extensively deal with the hardest parts of asynchronous behavior, with, like, retries and backoffs, like you were mentioning. So that is A lot of very deep experience with some very hard problems. [33:53]&lt;/p&gt;
&lt;p&gt;And I do love local first. I think it is an absolutely wonderful paradigm and it is very challenging right now. So if we end up getting a relatively widely used and supported standard library that makes things like exponential backoff and retries and responding to different kinds of errors in different ways. Then. All of the myriad things that make asynchronous behavior difficult, then that sounds pretty cool. [34:19]&lt;/p&gt;
&lt;p&gt;I&#39;m pretty excited about it. So, I don&#39;t know, that&#39;s, that&#39;s all I will say on effect. [34:23]&lt;/p&gt;
&lt;h2 id=&quot;forensics-of-react-server-components&quot;&gt;Forensics of React Server Components&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; All right, moving along. We&#39;ve discussed and linked to a lot of articles over the last few months that attempt to dig in and explain various aspects of React server components. [34:34]&lt;/p&gt;
&lt;p&gt;What are they? Why would you care about them? How do you use them? How would you even go about building your own server components based framework? [34:42]&lt;/p&gt;
&lt;p&gt;And we want to point to one article along those lines this month, the forensics of React server components. This one does a really good job of laying out a lot of the different pieces and how they fit together. [34:54]&lt;/p&gt;
&lt;p&gt;It talks about, you know, client side rendering and kind of illustrates some of the data fetching and rendering workflow, server side rendering, and how data gets fetched on the server and rendered and loaded into the client. Hydration and servers and some of the issues with that, and then goes and digs into server components and kind of walks through a lot of what the data flow and mental model of where data and where server components fit into the life cycle, how the data fetching behaves, the interactions between server components and client components, and even shows some examples of the serialized output that server components return. So, it&#39;s a pretty good one stop shop for kind of wrapping your head around some of the actual usage and mental model of server components. [35:39]&lt;/p&gt;
&lt;h2 id=&quot;nextjs-v15-rc&quot;&gt;Next.js v15 RC&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Okay, uh, Next15 has an RC coming out, or that is now out. [35:44]&lt;/p&gt;
&lt;p&gt;Not entirely related, but I did see that Vercel has now raised 250 million dollars. So they are capitalized for a good minute longer. They&#39;re not going to go out of business anytime soon. [35:54]&lt;/p&gt;
&lt;p&gt;But yeah, Next 15 supports React 19 and the compiler, they have changed their caching behavior pretty extensively, which I had understood to be one of the bigger pain points of using the app router. They have an experimental API called Next After, which solves a problem where you can schedule work to be processed after the response from the server has finished streaming. It solves the problem of needing to figure out, needing to guess when the response has come in. I think that&#39;s pretty neat. [36:22]&lt;/p&gt;
&lt;p&gt;They also have a neat feature, they call it partial pre rendering, it is neat looking to me. They say, you can wrap any dynamic UI in a suspense boundary, when a new request comes in, Next will immediately serve a static HTML shell, then render and stream in the dynamic parts with the same HTTP request. That sounds a lot like out of order streaming that I had heard some stuff about in the past. [36:43]&lt;/p&gt;
&lt;p&gt;I mean, that&#39;s always been the dream of server side rendering is you make a request, you immediately respond with something, so it&#39;s not just a blank screen and then fill in the rest of the bits. So it seems like a clear improvement to me to be able to do that in a single HTTP request without having to open a new connection and do all the TCP handshaking. So that, that should be a pretty good performance improvement. [37:05]&lt;/p&gt;
&lt;h2 id=&quot;its-not-just-you-nextjs-is-getting-harder-to-use&quot;&gt;It&#39;s not just you, Next.js is getting harder to use&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I just wanted to call out an article that I saw entitled, It&#39;s Not Just You, Next. js is Getting Harder to Use. It just kind of calls out the increasing complexity of the framework. It&#39;s a little pessimistic, it&#39;s a little down note, but I think it&#39;s reasonably fair. [37:20]&lt;/p&gt;
&lt;p&gt;Just to call out a couple of sections that seemed worth it to me. You need to understand a lot about the internals to do seemingly basic tasks. There are many ways to shoot yourself in the foot that are opt out instead of opt in. This is just a funny bit talking about like, you know, you go to a GitHub issue and you see an explanation of why that thing that you want to do isn&#39;t possible and go like, &quot;oh, that does make sense.&quot; But they say, you probably read this and left with five more things to Google before realizing that you probably have to restructure your code, which is Brutally familiar. [37:49]&lt;/p&gt;
&lt;p&gt;So, and on the app router, if you started a Next project, Next will default you into it, which implies that it&#39;s production ready. It implies that if you&#39;re starting something new that you&#39;re going to ship to production, you should use the app router. [38:02]&lt;/p&gt;
&lt;p&gt;But this article calls out, &quot;the official React docs don&#39;t share that same sentiment. They currently recommend the Pages router and describes the app router as a bleeding edge React framework.&quot; So, it seemed like a really good, really fair. Non complementary discussion of Next. [38:17]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; I&#39;ve seen a number of folks complain that the app router works great for the layouty stuff, but some of the integrations have been both buggy and somewhat hard to use. [38:28]&lt;/p&gt;
&lt;p&gt;One comment I saw was the effect that, ironically enough, the app router Works better for static pages and the pages router works better for applications in terms of data fetching. So the names almost seem a little bit backwards, ironically. [38:43]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; I don&#39;t know about you folks, but when the App router came out and you know, I&#39;ve gotten more and more used to it as time passes, but I just found that the pages router, even just things like being explicit with, you know, whether you&#39;re doing get server side props or you&#39;re doing get static props, just found that I love the fact that it&#39;s explicit, so at least you as the developer have to explicitly define how you want sort of that page to be rendered, rather than sort of the automated, magical nature of the app router. [39:08]&lt;/p&gt;
&lt;p&gt;I do miss that sometimes, but there&#39;s also a lot of benefits to having the app router, so I guess it&#39;s, as with all things, there&#39;s trade offs with it. [39:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; All right, Mo, you have a lot more expertise on React Native than either the two of us. Want to hit some of those highlights? [39:21]&lt;/p&gt;
&lt;h2 id=&quot;react-native-new-architecture-beta&quot;&gt;React Native New Architecture beta&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Let&#39;s jump into it. So let&#39;s start off with Meta news. Firstly, we&#39;ve been hearing about the new architecture for years now, if you&#39;ve been in the ecosystem, uh, but they have officially put it into beta, which is a big deal if you&#39;ve been here for a hot minute and the word on the street unofficially is that we might finally see it going into production or going into default and out of beta sometime this year. We&#39;ll see if that happens, but it&#39;d be very exciting. [39:46]&lt;/p&gt;
&lt;p&gt;The good news with all of this is there&#39;s more and more, uh, Third party libraries or open source libraries that are coming with new architecture support. And I think that&#39;s the real bottleneck right now is one having a good interop layer, which the folks shipped last year from the meta team. [40:00]&lt;/p&gt;
&lt;p&gt;So that helps kind of ensure some level of backwards compatibility, whether it&#39;s with the layouting engine or with the rendering engine, but I think it&#39;s a really good step that they&#39;re going into beta and soon more and more libraries are going to support new architecture. [40:12]&lt;/p&gt;
&lt;p&gt;There was this massive Google Sheet that just had all of the libraries that currently support new architecture that are commonly used in, in, in the community and some of the ones that don&#39;t yet. So it&#39;s, it&#39;s going in that direction. I think everyone&#39;s trying to push and get, get it finally over the line. [40:25]&lt;/p&gt;
&lt;h2 id=&quot;expo-is-now-the-recommended-framework&quot;&gt;Expo is now the recommended framework&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Uh, in other news, Meta, both in React Conf and also at AppJS did kind of similar talks about how you should use a framework. So if you&#39;ve been in the React space with Next, you will be familiar with this. Very much, but the idea here is that they&#39;ve officially came out and endorsed that you should use Expo by default. [40:43]&lt;/p&gt;
&lt;p&gt;And this isn&#39;t anything new. If you had been frequenting the React Native docs for the last couple years, they give a nod to Expo here and there, they use Expo Snacks for the coding examples, and they kind of make points to say you should go and check out Expo if you&#39;re starting out a new app. [40:59]&lt;/p&gt;
&lt;p&gt;Um, but now they&#39;ve explicitly said, you know, you should use a framework for the same reasons that you see in the React ecosystem. Routing, um, tooling, and having the right ecosystem in place, which I think is a great step because it really, using something like Expo really saves developers a lot of, uh, hassle and a lot of difficulty that you oftentimes face if you&#39;re just on a bare React Native project. [41:17]&lt;/p&gt;
&lt;h2 id=&quot;react-native-skia-on-webgpu&quot;&gt;React Native Skia on WebGPU&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Now, going into community news, these things are fresh off of the press, predominantly out of App. js that happened last week. So, the first thing that I think was incredibly exciting was that we got some updates on React Native Skia. React Native Skia has been a 2D rendering sort of canvas that you can use in React Native to draw graphics, nice animated graphics, sometimes interactible graphics if you want to integrate it with things like Reanimated or GestureHandler. [41:43]&lt;/p&gt;
&lt;p&gt;The announcement for this was in some ways the most amazing and also the most sort of cheeky announcement possible because it was sort of Apple esque intros with sort of rainbow colors going to form a hello and really just showing that they&#39;re very much great graphists at heart that are working behind this. And Skia is backed by Shopify as well. So it&#39;s got massive backing. It&#39;s a great project. So you should definitely check it out. [42:05]&lt;/p&gt;
&lt;p&gt;Previously Skia was mainly used for 2D graphics. So it gave you a canvas. You could draw things on it. And people had I&#39;ve been using it to kind of extend the boundaries to create what they call 2. 5D, which is 2D graphics that kind of resemble 3D, and through the illusions of looking at it, they kind of look like they&#39;re 3D, but they&#39;re still just rendered on a 2D graphic, uh, and this has a few limitations, it runs on the CPU, it&#39;s not really truly 3D. If you want to do anything like interactivity with it, you&#39;re quite limited by sieve there in terms of your performance. [42:35]&lt;/p&gt;
&lt;p&gt;And hence, the talk that they had at Appjs was called Hello GPU. So first they started off saying, ah, there&#39;s video support now, so you can do a whole bunch of shaders on videos, which was quite cool, but really the key thing that was exciting was that they actually brought WebGPU into the React Native world. [42:50]&lt;/p&gt;
&lt;p&gt;So you can use WebGPU to obviously target web, uh, with React Native Skia, if you&#39;re using React Native on the web, but you can also use it for iOS and for Android and having those sort of cross platform 3D visualizations and rendering, I think is going to be really cool for the community and not something that we&#39;ve actually been able to do very effectively on the GPU layer. [43:09]&lt;/p&gt;
&lt;p&gt;And they&#39;ve integrated all the way down into the native layer APIs, so, Metal on iOS as an example. Especially with something like React Native running on Vision OS, where you really want to have these 3D objects that you kind of put in your vicinity in the spatial navigation paradigm. [43:24]&lt;/p&gt;
&lt;p&gt;It will be so cool to be able to actually use that as well for VR and not just on Vision OS, but also maybe on some of the Quest runtimes and so on and so forth. So I think it&#39;s, it&#39;s a really cool step and it stops us from having to drop into the native layer as we&#39;ve often had to do with this type of thing. [43:39]&lt;/p&gt;
&lt;h2 id=&quot;react-native-ide&quot;&gt;React Native IDE&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Next up on the announcements from AppJS, we saw the React Native IDE. So this has been kind of teased by the folks at Software Mansion for a long time. We&#39;ve had a lot of sort of disparate tools in the React Native ecosystem. You know, when you&#39;re usually developing with React Native, you have to have your terminal running your Metro bundler and then maybe have Some Chrome DevTools running connected to the React Native DevTools to kind of, uh, your network requests coming in and analyze your source code. [44:04]&lt;/p&gt;
&lt;p&gt;And then if you want to dig in and look at what elements are being rendered, where it&#39;s all really just sort of a bunch of different parts to the dev experience. And it&#39;s not been amazing. There&#39;s obviously been a lot of improvement. And if you come from the native world, sometimes those things can be a lot more integrated with Android Studio and Xcode. [44:20]&lt;/p&gt;
&lt;p&gt;And so the lovely folks at Software Mansion have developed an IDE and it does some really cool stuff. I won&#39;t go into too much details. It does everything you would expect from an IDE. And I think it brings first class DevEx into the React Native world. It&#39;s going into beta or went into beta last week. [44:34]&lt;/p&gt;
&lt;p&gt;And the coolest thing out of all of the demo was debuggers across the native boundaries, so when you put in a debugger, it not only could handle debugging on the JS code that you write, but you could also place debuggers inside of your node modules on the iOS Swift code, or maybe your Android code that you have written in Kotlin, which I think is really cool, because one of the challenges is you&#39;re kind of fiddling between Xcode and Android Studio and also Visual Studio Code, And this brings it all into one place, which is really quite exciting. [45:03]&lt;/p&gt;
&lt;h2 id=&quot;react-native-on-tvs&quot;&gt;React Native on TVs&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; And then the last thing that happened around React Conf, and they nodded at it again at AppJS, was around Amazon doing a keynote talk about using React Native beyond web and mobile. And so Amazon has started becoming a big proponent of React Native in general, but also React Native on TV specifically. [45:20]&lt;/p&gt;
&lt;p&gt;And they have actually been using React Native for years now. They kind of hit it very cleverly where you couldn&#39;t really see it on first glance in the app binaries, but they came out with a big bang announcement last year saying we have actually been using React Native for a very long time, and it&#39;s been most of our apps. Huh. Gotcha. [45:35]&lt;/p&gt;
&lt;p&gt;And so it was quite a nice announcement in that, well, there&#39;s more people using React Native and that&#39;s always a good show of faith in the technology for the community. But it was quite funny that they hid it for so long. [45:45]&lt;/p&gt;
&lt;p&gt;Amazon obviously does a lot with Firesticks and TV devices, and their OS is based off of Android. So you can build TV apps for it with React Native. And I think they&#39;re very keen on people using React Native just because of its cross platform nature. They talked about many different things, challenges of performance and spatial navigation on TV. One thing, if anyone is interested in React Native for TV, a bit of a shameless plug here, so I apologize to you both, Carl and Mark. [46:12]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Shameless plugs! Gasp! [46:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Who does those?? [46:16]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Questionable on my, on my character there, I&#39;m so sorry, folks. But, as part of like some of the community stuff that, I&#39;ve been doing with some of the folks from Amazon. We actually started an RNTV.dev blog, and it&#39;s kind of meant to be a centralized resource for everything about React Native on TV, because that doesn&#39;t exist. We thought, why not make it so that we can help people onboard into it more and more. [46:36]&lt;/p&gt;
&lt;p&gt;The other last thing that they kind of dangled was they said, we want to support open source projects, especially ones on React Native for TV. So if you&#39;re interested and you&#39;ve got a project that&#39;s extensively used on React Native for TV, Sign up for this form and we&#39;re gonna be, start starting to sponsor more and more projects on the React and React native ecosystem. [46:53]&lt;/p&gt;
&lt;p&gt;So if you&#39;re a community maintainer, wink wink, you might wanna check that out and see if there&#39;s something that you can, uh, get some support from them for. [47:01]&lt;/p&gt;
&lt;p&gt;And that is all of the React native stuff. Sorry folks for going into that rabbit hole. [47:05]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; No, thank you. That&#39;s, we have a dearth of React native expertise on our end, so I&#39;m very glad you can speak to it. [47:11]&lt;/p&gt;
&lt;p&gt;It&#39;s cool to hear more about the React Native TV stuff. Cause a couple of months ago, Oh God, probably a year ago now. I spoke to Kaleb McKelvey, I want to say it is, about React Native on TV. [47:24]&lt;/p&gt;
&lt;p&gt;In that setting. And it was a fun, interesting talk. It&#39;s an interesting input paradigm. You know, a remote control is very different from a keyboard or a touchscreen. [47:33]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Yeah, it&#39;s really quite tough, Carl. Like, you know, we&#39;re used to touch displays or, you know, cursors on the web or the pointers or whatever it is. And then you&#39;re really suddenly limited to up, right, left, down, and a select key. And you&#39;re like, Oh, wow, how do I, how do I, what happens when I press down and I&#39;m at the end of a carousel? Like, it&#39;s just so much, like, undefined behavior that isn&#39;t standardized. So, it&#39;s definitely a cool engineering challenge to delve into if you want something new. [48:01]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; For sure. It&#39;s a funny, stateful mode of input. [48:04]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Yeah 100%. [48:04]&lt;/p&gt;
&lt;h2 id=&quot;️-lightning-round-️&quot;&gt;⚡️ Lightning round ⚡️&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Okay, cool. On to the lightning round. [48:07]&lt;/p&gt;
&lt;h2 id=&quot;speculation-rules-api-in-chrome&quot;&gt;Speculation Rules API in Chrome&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I&#39;ll take the lead with some new Speculation Rules API in Chrome. This was a new term to me, Speculation Rules, but so this is apparently finer grained control over how Chrome will prefetch pages. [48:22]&lt;/p&gt;
&lt;p&gt;So this lets you more clearly signal to the Chrome browser whether and how it should try to prefetch something as a user, like hovers or begins to click, things like that. [48:33]&lt;/p&gt;
&lt;h2 id=&quot;josh-comeaus-post-on-usedeferredvalue&quot;&gt;Josh Comeau&#39;s post on useDeferredValue&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Josh Comeau put out a, yet another one of his incredible blog posts. I mean, basically every blog post or article that Josh Comeau ever writes is amazing. [48:42]&lt;/p&gt;
&lt;p&gt;And this one was on snappy UI optimization with the relatively new React use deferred value hook. Now this came out in React 18, so it&#39;s actually been out for a couple of years, but frankly, almost nobody knows how to use this, including myself. And he pointed out that it&#39;s almost like a built in debounce for re rendering with a lower priority state update. [49:06]&lt;/p&gt;
&lt;p&gt;And so he gave some examples of a feature on his own blog or site that really benefited from moving some expensive calculations and rendering. In debouncing them via used, used deferred value and it really improved the smooth smoothness and snappiness of the ui. [49:24]&lt;/p&gt;
&lt;h2 id=&quot;bluesky-engineering-culture&quot;&gt;BlueSky engineering culture&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Cool. I saw a pretty solid looking article from the pragmatic engineer about BlueSky engineering culture. I am all about BlueSky. I would love it if they are successful. And I always love a deep dive into engineering culture and, uh, you know, a white paper, as it were, of how an engineering team operates. So I thought it was pretty neat. For instance, they have two to three person teams with a directly responsible individual and lots of long form writing. [49:53]&lt;/p&gt;
&lt;p&gt;So it&#39;s like little things like that, I think are really cool to, you know, it&#39;s the, in our careers, we get so little, opportunity to experience different types of workplace cultures. So I think articles like these are super valuable for understanding whether there is something better for you out there. [50:11]&lt;/p&gt;
&lt;p&gt;So yeah, go check it out. Also, Dan Abramov works there, so you can learn about how Dan Abramov works. [50:16]&lt;/p&gt;
&lt;h2 id=&quot;why-patching-globals-is-harmful&quot;&gt;Why Patching Globals is Harmful&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Let&#39;s see, Artem Zakharchenko, uh, his handle is kettanito, he&#39;s the creator of the mux service worker tool. Put up a post called, Why patching globals is harmful. And, you know, sort of in response to, you know, some of the, the React and Next teams a couple other teams as well, suggesting that, like, we should patch globals automatically in various situations. [50:38]&lt;/p&gt;
&lt;p&gt;And his whole sales pitch is that, especially today, like MockServiceWorker just uses standardized JavaScript interfaces for doing this behavior, and we&#39;ve collectively learned that patching globals is a really bad thing. So, you know, some useful food for thought there. [50:54]&lt;/p&gt;
&lt;h2 id=&quot;new-webkit-features-in-safari-175&quot;&gt;New Webkit features in Safari 17.5&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; There was a great post from New WebKit Features in Safari 17. 5. [50:59]&lt;/p&gt;
&lt;p&gt;This caught my eye just because in so many cases, Safari is the last browser to implement something. So seeing oh, Safari implemented something, just caught my attention as like, Maybe we can use this now. It looks like Firefox is still a bit of a laggard on some of these features, but, there&#39;s a light dark function, light dark as a CSS function, which is a bit of a simplified developer experience for doing dark mode. [51:25]&lt;/p&gt;
&lt;p&gt;So it previously there had been a media query for, I believe it was prefers dark mode. That doesn&#39;t sound right, but there was a media query where you could apply different styles if the user had a setting for preferring dark mode. This is now a function that does effectively the same thing. So, This is a solid improvement because with the media query, you pretty much have to like copy an entire style block. [51:50]&lt;/p&gt;
&lt;p&gt;Whereas this you can just do inline, like if somebody wants a dark mode, you get this color. If somebody wants a light mode, you get this color. Just boom, nice little either or that you can do right in line. So I thought that was great. [52:01]&lt;/p&gt;
&lt;p&gt;This is, I cannot believe that we are only just now getting this in 2024, but we now have text wrap balanced, where you can tell CSS that you want, for instance, a title of a document to stay balanced instead of like, this goes deep into design and typography. It&#39;s a classic problem of designers saying like, well, hey, on certain screen sizes, we have a dangling word here. Can we just fix that? And the answer for so long has been, &quot;no, that&#39;s really hard.&quot; So now we have a CSS rule that lets us give better control over how text wraps. So that&#39;s wonderful. [52:38]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; And I think there was a React library that was dedicated to this exact thing for the longest time. So it&#39;s cool. [52:44]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; That&#39;s why — cuz it&#39;s so hard. You needed JavaScript. You needed to like measure the characters and like know what font you&#39;re using. [52:52]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; This is, this is a place I will legitimately happily use the platform. [52:56]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Right? It&#39;s such a core part of designing a web page, like how does the text wrap? It&#39;s just so outrageous to me that it&#39;s 2024 and we are just now getting some mode of control of it that doesn&#39;t require JavaScript. And it didn&#39;t even work well in the past because you like, measuring fonts was not easy on its own, so that was weird. [53:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; I&#39;m going to rabbit hole again. You should have seen the, uh, Next. js implementation of that, because how do you consolidate the server rendering of the balanced text from the, it was, it had a whole, I went into the cores of that library, uh, massive rabbit hole. It was so funny to see how much work had to go into just getting that working on Next and on React client side. [53:33]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Part of me wants to go look and the rest of me doesn&#39;t want to. [53:36]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; I will send you the link. Yeah,[53:37]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; we&#39;ll put it in the show notes too. Haha. Cool. [53:40]&lt;/p&gt;
&lt;p&gt;And they also, there&#39;s also an app starting style rule for things like entry transitions, which is great because we now have a lot more options for entry transitions because stuff like popovers and modals are now entering the platform as well. [53:53]&lt;/p&gt;
&lt;p&gt;Cool. Love it. Here for it. That&#39;s all I got. [53:56]&lt;/p&gt;
&lt;h2 id=&quot;why-react-query&quot;&gt;Why React Query&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; The folks from the UI. dev educational material site have put up a post that talks about why React query. I always love historical posts or posts that explain like, here&#39;s an abstraction, why does this extraction even exist? Like what work is it doing for us in the first place? [54:15]&lt;/p&gt;
&lt;p&gt;And so they kind of walk through like, okay, if you were to actually just fetch data inside a component, here&#39;s all the work you have to do it correctly. And, oh look, React Query actually does all that work for you. Same thing for RTK Query and Apollo and SWR, in principle. They put up this in support of their new upcoming React Query course, which I believe has been written by the current maintainer of React Query, Dominic Dorfmeister. Knowing that and knowing the folks behind UI. dev, highly endorsed, even though I haven&#39;t actually looked at it. [54:45]&lt;/p&gt;
&lt;h2 id=&quot;we-can-have-a-different-web&quot;&gt;We can have a different web&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I saw a wonderful post from Molly White, who I am most familiar with her writing on looking at Web3 through a skeptical lens. [54:54]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Web3 is going great. [54:56]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yes, right. Her blog, Web3 is going great. She is a wonderful writer. She just gives great incisive commentary on Web3. She has put out this post titled, we can have a different web, it caught my eye. Because Web 3 took that moniker as trying to, kind of trying to ape the, like, Web 2. [55:13]&lt;/p&gt;
&lt;ol start=&quot;0&quot;&gt;
&lt;li&gt;They&#39;re like, well, Web 2. 0 is dead. We are now Web 3. And what a shame that only refers to kind of scammy cryptocurrency projects. I guess now I&#39;d love to see like a Web 4. I know Block, briefly, Tried to do web five as a branding thing. [55:27]&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Let&#39;s do the Winamp thing. It&#39;s like version two, version three, version five. [55:32]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, right. If we could have Chrome just shout at you, it really whips the llama&#39;s ass, that would be great. [55:38]&lt;/p&gt;
&lt;p&gt;But yeah, so, okay. This is, Molly White put out this great post. We can have a different web. Just talking about the local Maxima that we&#39;ve found ourselves in. as users of the internet, you know, sort of bemoaning how if you search something on Google, you used to be able to find it. [55:54]&lt;/p&gt;
&lt;p&gt;I think one of the points she makes that is important and nice is that all of those things that people loved about like the good old days of the internet, they&#39;re still there. It&#39;s just a little bit harder to find them. So sort of her claim is like, we can still have that. We just, you know, there&#39;s, needs to be a little bit more. [56:09]&lt;/p&gt;
&lt;p&gt;I just definitely recommend checking it out. It tickled my brain a little bit because obviously I&#39;ve been thinking a lot about community and communities of developers. And so we can have a different web, what is just a very exciting subject to contemplate for me. So definitely recommend checking that out. [56:23]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; It just briefly also reminded me of the work that the folks at ARC are doing with the browser company with the new browser that they&#39;ve released, ARC, that&#39;s based on Chromium. But, you know, I think they&#39;re also trying to kind of re envision what it means to search for something on the web where. And integrating some level of generative AI to pull everything and kind of give you a summary and signpost you to the right links so it&#39;s less overwhelming than searching on Google these days. [56:46]&lt;/p&gt;
&lt;p&gt;It&#39;s definitely an interesting take. I think other people are also struggling with that same problem and trying to tackle it. Or we could go for a fully decentralized internet on everyone&#39;s phones. A certain TV show might have tried to spin that idea. [56:58]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; A Black Mirror reference? [56:59]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; No, I was, I was referring to Silicon Valley with Pied Piper. [57:02]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Ah. No, Pied Piper. Okay. Yep. I also thought Black Mirror. So that says something. [57:08]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; So Christoph Nakazawa, who some folks might know as one of the long, I guess, previous maintainers of Jest while he was working at Facebook, has gone off and created a 2D strategy game sold on Steam called Athena Crisis. [57:23]&lt;/p&gt;
&lt;p&gt;I think it has some influences from, like, Advance Wars and that sort of genre. He built the entire game using React and CSS. And even though the game itself is, like, genuinely being sold on Steam, he&#39;s gone and open sourced the vast majority of the codebase. I had a chance to hear him talk about it a little bit while I was at React Conf, and he&#39;s even done things like putting up bounties for people to, like, improve the AI, or add new features to the map editor. [57:52]&lt;/p&gt;
&lt;p&gt;Someone added, like, a tile mirroring feature so you can, you know, create maps that have, like, equal challenges for all the players. And so, his explicit goal was that, like, look, you know, maybe there&#39;s people out there who want to get into some kind of game related programming. And while this isn&#39;t like a 60 frames per second shooter style of game, there&#39;s still aspects of building a game that people might be interested in learning about, and they might be coming from the React community. [58:19]&lt;/p&gt;
&lt;p&gt;And so by open sourcing this code base, folks can actually, you know, dig inside and learn and play around with it. So, you know, like kudos to him for taking that approach. [58:29]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I also want to shout out that if you played Advance Wars back in the day, this will scratch an itch for you, I think. I&#39;ve played it a fair amount. [58:37]&lt;/p&gt;
&lt;p&gt;It&#39;s pretty good. I enjoy it. It&#39;s a good game. Having it also be fully open source and come with that ethos is just lovely. I love it. [58:44]&lt;/p&gt;
&lt;p&gt;Cool. I&#39;m going to share this. Lee Holmes put out a blog post. Actually, this is not new, but it just crossed my radar. I don&#39;t remember where. I think it was in one of the newsletters that I read. [58:54]&lt;/p&gt;
&lt;p&gt;But it was titled, Security Risks of Postman. This is not new. This is, I think, even, maybe even reasonably well known. But like, Postman thinks data. They have a cloud service. It is meant to make it easier for you to, you know, keep your different development computers synchronized with each other. But, also You&#39;re probably using Postman to, you know, make requests to a development environment. [59:15]&lt;/p&gt;
&lt;p&gt;And it might include things like authorization tokens, API keys, like all kinds of really sensitive information that You probably don&#39;t want other people to get access to. So that&#39;s just generally the topic of this blog post of like, Postman is a security threat. And yeah, can&#39;t argue with that. That&#39;s you, you should not be putting your API keys into something that feeds them into a third party. [59:38]&lt;/p&gt;
&lt;p&gt;So yeah, definitely something to consider. I have always been confused about Postman. Their development path. I loved it for a long time and then they got really complicated with request collections and cloud features and whatever. So this didn&#39;t seem like something that needed to be a venture backed business, which is what it is, I believe. [59:58]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; And last item out of our lightning round, while it&#39;s not React related, Angular 18 is out. And of course, not being an Angular dev, I only have the vaguest clue of what&#39;s going on over there, but looking at the changelist, they&#39;re in the process of dropping something that they used called zone. [01:00:15]&lt;/p&gt;
&lt;p&gt;js, which monkey patched, like, every possible source of asynchronicity in the browser. In order to detect when data mutations happened so that the UI could then do the diffing and know if it needed to re render. They&#39;ve also, I believe, been integrating things like signals and trying to move away from RxJS a little bit. [01:00:36]&lt;/p&gt;
&lt;p&gt;So, you know, there&#39;s various aspects that are there for interop between RxJS and signals. But they&#39;re kind of shifting some of that mindset and data flow approach. [01:00:46]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, man. Speaking of, funny to also talk about how patching globals is harmful and wow, I did not realize that Angular was patching globals quite that extensively. That is not great. [01:00:56]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Angular 1 had some kind of a loop that would just keep checking the controller values to see if they&#39;d been mutated and Angular 2 plus, so going on like the last seven or eight years. Has all relied on this tool called Zone. js to, like, monkey patch every source of asynchronicity in the browser. [01:01:15]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, that&#39;s a little bit wild. [01:01:17]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Alright, I think we&#39;re out of things to talk about for now. [01:01:20]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carl Vitullo:&lt;/strong&gt; 22 minutes over our planned time. Lot to get to this month. [01:01:23]&lt;/p&gt;
&lt;p&gt;Alright. Thank you so much everyone for joining us. We&#39;ll be back on the last Wednesday of the month here in the live stage in Reactiflux or back in your podcast feed just as soon as we can after that. [01:01:33]&lt;/p&gt;
&lt;p&gt;We gather sources from This Week in React, Bytes.Dev, React Status, Next JS, Weekly React Digest, the React JS subreddit, here in Reactiflux from the #tech-reads-and-news channel, and direct from those publishing articles, usually on Twitter or BlueSky. I&#39;m not on threads, but maybe people post there. [01:01:51]&lt;/p&gt;
&lt;p&gt;If you see anything newsworthy, definitely let us know. You can do so in the #tech-reads-and-news channel here in Reactiflux, or you could send us an email to &lt;a href=&quot;mailto:hello@reactiflux.com&quot;&gt;hello@reactiflux.com&lt;/a&gt; with T M I R in the subject line. It&#39;s an acronym for the show. I read literally every email that comes in, even ones marked as spam. So if you send me something to that address, I will read it. I may not reply, but I will read it for sure. [01:02:13]&lt;/p&gt;
&lt;p&gt;If this is a show that you get value from and want to support, the best way you can do so is by submitting a review, wherever you listen, and definitely tell your friends and coworkers about it. My thesis for the show is that there are a large number of people who are overwhelmed by trying to consume the fire hose. And so I&#39;m trying to consume the fire hose for you and your coworkers. Yeah. [01:02:33]&lt;/p&gt;
&lt;p&gt;Thank you so much. Catch us next month. [01:02:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mark Erikson:&lt;/strong&gt; Bye. [01:02:35]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mo Khazali:&lt;/strong&gt; Bye everyone.&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2024-05</link><guid isPermaLink="false">reactiflux-tmir-2024-05</guid><pubDate>Wed, 29 May 2024 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>This Month in React, April 2024: So many new releases, React 19 featureset</title><description>&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://open.spotify.com/show/4g3Le83YfsMeI8Fq3cpPeH&quot;&gt;Spotify&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://podcasts.apple.com/us/podcast/reactiflux-events/id1661733526&quot;&gt;Apple Podcasts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://anchor.fm/s/a1f8a59c/podcast/rss&quot;&gt;RSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://podcasters.spotify.com/pod/show/reactiflux&quot;&gt;or anywhere you prefer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;iframe src=&quot;https://podcasters.spotify.com/pod/show/reactiflux/embed/episodes/TMiR-2024-04-So-many-new-releases--React-19-featureset-e2jbc64&quot; height=&quot;102px&quot; width=&quot;400px&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;Quick hits
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-04#upcoming-conferences&quot;&gt;00:46&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;Upcoming conferences&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://conf.react.dev/&quot;&gt;React Conf 2024&lt;/a&gt; May 15 - 16, 2024. In-person in Henderson, NV, USA&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://appjs.co/&quot;&gt;App.js Conf 2024&lt;/a&gt; May 22 - 24, 2024. In-person in Kraków, Poland&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.localfirstconf.com/&quot;&gt;Local First Conf 2024&lt;/a&gt; May 30, 2024. In person in Berlin, Germany. Followup hackathon on the 31st&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://renderatl.com/&quot;&gt;Render ATL&lt;/a&gt; June 12-14, 2024. Atlanta, GA, USA&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://futurefrontend.com/&quot;&gt;Future Frontend&lt;/a&gt; June 13-14, 2024. Helsinki, Finland&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://reactnorway.com/&quot;&gt;React Norway&lt;/a&gt; June 14, 2024. Larvik, Norway&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://reactsummit.com/&quot;&gt;React Summit&lt;/a&gt; June 14 + 18, 2024. Amsterdam, Netherlands (+remote)&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;New releases
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-04#react-183-19&quot;&gt;02:32&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/facebook/react/pull/28843&quot;&gt;React 18.3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://react.dev/blog/2024/04/25/react-19&quot;&gt;React 19 beta&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-04#nodejs-v22&quot;&gt;03:15&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://openjsf.org/blog/nodejs-22-available&quot;&gt;Node.js v22&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-04#expo-sdk-51-beta&quot;&gt;04:02&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://expo.dev/changelog/2024/04-24-sdk-51-beta&quot;&gt;Expo SDK 51 beta&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://reactnative.dev/blog/2024/04/22/release-0.74&quot;&gt;React Native 0.74.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/facebook/react/pull/28840&quot;&gt;React DevTools 5.1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://nextjs.org/blog/next-14-2&quot;&gt;Next v14.2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Bun v1.1 (discussion later)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pnpm/pnpm/releases/tag/v9.0.0&quot;&gt;Pnpm v9&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://biomejs.dev/blog/biome-v1-7/&quot;&gt;Biome 1.7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://supabase.com/ga-week&quot;&gt;Supabase goes GA&lt;/a&gt; after 4 years in beta&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docusaurus.io/blog/releases/3.2&quot;&gt;Docusaurus 3.2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/gulpjs/announcing-gulp-v5-c67d077dbdb7&quot;&gt;Gulp v5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/atlassian/pragmatic-drag-and-drop&quot;&gt;Pragmatic Drag and Drop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/redwoodjs/redwood/releases/tag/v7.3.0&quot;&gt;RedwoodJS 7.3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/shakacode/react_on_rails&quot;&gt;React on Rails v14&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;main-content&quot;&gt;Main Content&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-04#new-react-release-details&quot;&gt;12:43&lt;/a&gt;]&lt;/code&gt; New React development
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://react.dev/blog/2024/04/25/react-19&quot;&gt;React Blog - React 19 Beta&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://react.dev/blog/2024/04/25/react-19-upgrade-guide&quot;&gt;React Blog - React 19 Beta Upgrade Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/facebook/react/blob/4508873393058e86bed308b56e49ec883ece59d1/CHANGELOG.md&quot;&gt;React 18.3 changelog&lt;/a&gt; : dev-only warnings for string refs, &lt;code&gt;findDOMNode&lt;/code&gt; , default props, legacy context, &lt;code&gt;test-utils&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;Internal changes:
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/facebook/react/pull/28789&quot;&gt;Rename SECRET INTERNALS to __CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/facebook/react/pull/28768&quot;&gt;Fast JSX: Don&#39;t clone props object&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/facebook/react/pull/28733&quot;&gt;Remove defaultProps support (except for classes)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/facebook/react/pull/28881&quot;&gt;Ship optimized-but-unminified prod bundles and drop sourcemaps&lt;/a&gt; (&lt;a href=&quot;https://unpkg.com/browse/react-dom@19.0.0-beta-4508873393-20240430/cjs/&quot;&gt;current package contents&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/facebook/react/pull/28896&quot;&gt;Don’t patch &lt;code&gt;fetch&lt;/code&gt; anymore&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Future: &lt;a href=&quot;https://twitter.com/acdlite/status/1785691330988986587&quot;&gt;patching Date object?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-04#react-native-0740&quot;&gt;33:29&lt;/a&gt;]&lt;/code&gt; React Native &lt;a href=&quot;https://reactnative.dev/blog/2024/04/22/release-0.74&quot;&gt;0.74.0 release&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://reactnavigation.org/blog/2024/03/25/introducing-static-api/&quot;&gt;React Native Navigation v7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/mrousavy/react-native-vision-camera&quot;&gt;VisionCamera v4.0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-04#kotaken-rscs-with-just-bun&quot;&gt;38:17&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://kotekan.dev/blog/introducing-kotekan&quot;&gt;Kotekan&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-04#bun-11&quot;&gt;39:02&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bun.sh/blog/bun-v1.1&quot;&gt;Bun v1.1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-04#jsr-by-deno&quot;&gt;39:37&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://deno.com/blog/jsr_open_beta&quot;&gt;JSR&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://dbushell.com/2024/02/16/jsr-first-impression/&quot;&gt;First Impressions&lt;/a&gt;, &lt;a href=&quot;https://dbushell.com/2024/03/04/jsr-second-look/&quot;&gt;Second Look&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://mariusvatasoiu.com/first-things-i-learned-about-jsr&quot;&gt;First Things I Learned about JSR&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;⚡️ Lightning round ⚡️
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;⚡️ [&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-04#-why-i-like-react-even-in-2024-&quot;&gt;45:09&lt;/a&gt;] &lt;a href=&quot;https://ejosh.co/de/2024/03/why-i-like-react-even-in-2024/&quot;&gt;Why I like React (Even in 2024)&lt;/a&gt; ⚡️️&lt;/li&gt;
&lt;li&gt;⚡️ [&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-04#-netlify-updates-their-nextjs-runtime-&quot;&gt;45:46&lt;/a&gt;] Netlify: &lt;a href=&quot;https://www.netlify.com/blog/introducing-the-new-next-js-runtime/&quot;&gt;Introducing the new Next.js Runtime&lt;/a&gt; ⚡️️&lt;/li&gt;
&lt;li&gt;⚡️ [&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-04#-design-principles-behind-the-nextjs-app-router-&quot;&gt;47:18&lt;/a&gt;] &lt;a href=&quot;https://twitter.com/feedthejim/status/1785243633328758978&quot;&gt;Design Principles behind the Next.js App Router&lt;/a&gt; ⚡️️&lt;/li&gt;
&lt;li&gt;⚡️ [&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-04#-nodejs-website-redesign-&quot;&gt;48:04&lt;/a&gt;] &lt;a href=&quot;https://nodejs.org/en/blog/announcements/diving-into-the-nodejs-website-redesign&quot;&gt;Diving into the Node.js Website Redesign&lt;/a&gt; ⚡️️&lt;/li&gt;
&lt;li&gt;⚡️ [&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-04#-dives-into-react-features-&quot;&gt;48:44&lt;/a&gt;] &lt;a href=&quot;https://jser.dev/2024-03-20-how-does-useoptimisticwork-internally-in-react/&quot;&gt;How does &lt;code&gt;useOptimistic&lt;/code&gt; work internally?&lt;/a&gt; (and many other code dives) ⚡️️&lt;/li&gt;
&lt;li&gt;⚡️ [&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-04#-honeypot-releases-nodejs-documentary-&quot;&gt;49:27&lt;/a&gt;] &lt;a href=&quot;https://www.youtube.com/watch?v=LB8KwiiUGy0&quot;&gt;Node.js: The Documentary&lt;/a&gt; ⚡️️&lt;/li&gt;
&lt;li&gt;⚡️ [&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-04#-flow-ships-react-features-&quot;&gt;49:56&lt;/a&gt;] &lt;a href=&quot;https://medium.com/flow-type/announcing-component-syntax-b6c5285660d0&quot;&gt;New Flow Language Features for React&lt;/a&gt; ⚡️️&lt;/li&gt;
&lt;li&gt;⚡️ [&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-04#-vercel-updates-pricing-&quot;&gt;50:26&lt;/a&gt;] &lt;a href=&quot;https://vercel.com/blog/improved-infrastructure-pricing&quot;&gt;Vercel cuts prices a lil&lt;/a&gt; ⚡️️&lt;/li&gt;
&lt;li&gt;⚡️ [&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-04#-redwoodjs-compares-data-fetch-methods-&quot;&gt;51:28&lt;/a&gt;] &lt;a href=&quot;https://redwoodjs.com/blog/techniques-for-fetching-data&quot;&gt;Redwood Blog: Techniques for Fetching Data: Comparing Next, Remix, and Redwood&lt;/a&gt; ⚡️️&lt;/li&gt;
&lt;li&gt;⚡️ [&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-04#-kuto-reverse-js-bundler-&quot;&gt;52:02&lt;/a&gt;] &lt;a href=&quot;https://samthor.au/2024/kuto/&quot;&gt;Kuto, “reverse JS bundler”&lt;/a&gt; ⚡️️&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;[00:00] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Thanks people for joining for April&#39;s This Month in React, where we recap and digest recent developments in the ever evolving React and web ecosystem.&lt;/p&gt;
&lt;p&gt;[00:09] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; And boy, is it evolving right now.&lt;/p&gt;
&lt;p&gt;[00:11] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Boy, is it evolving. Oh my God. There&#39;s so many releases. It&#39;s so much to get through.&lt;/p&gt;
&lt;p&gt;[00:16] So I guess let&#39;s try and run through it quick. Coming to you live from Reactiflux, the place for professional React developers.&lt;/p&gt;
&lt;p&gt;[00:24] I&#39;m Carl, a staff product developer and freelance community manager here at Reactiflux, running community events like these.&lt;/p&gt;
&lt;p&gt;[00:31] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; And I&#39;m Mark Erikson, my day job, I&#39;m a senior front end engineer at Replay where we&#39;re building a time traveling debugger for JavaScript with some amazing test analysis features coming your way in the near future.&lt;/p&gt;
&lt;p&gt;[00:42] And outside of that, I do Redux stuff.&lt;/p&gt;
&lt;p&gt;[00:45] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; So much Redux stuff.&lt;/p&gt;
&lt;h2 id=&quot;upcoming-conferences&quot;&gt;Upcoming Conferences&lt;/h2&gt;
&lt;p&gt;[00:46] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; There&#39;s so many conferences coming up in the next, like, two months.&lt;/p&gt;
&lt;p&gt;[00:49] We&#39;ve got this month, why I&#39;m in Vegas. So if you&#39;re coming to React Conf, hit me up. If you&#39;re local and not attending the conference, come on down and we can do a watch party. Otherwise, I&#39;m probably going to try and organize a couple of pre conf Things, post conf, after parties, ReactConf, May 15th and 16th in Henderson, Nevada.&lt;/p&gt;
&lt;p&gt;[01:09] AppJSConf is May 22nd through 24th in Krakow, Poland. The local first conf, I love local first stuff.&lt;/p&gt;
&lt;p&gt;[01:18] I think it&#39;s just a really powerful way to develop applications that is Kind of complicated. So I love seeing a conference dedicated to it. That&#39;s going to be May 30th in Berlin, Germany with a follow up hackathon on the 31st.&lt;/p&gt;
&lt;p&gt;[01:31] There&#39;s Render Atlanta in June 12th through 14th in Atlanta, Georgia.&lt;/p&gt;
&lt;p&gt;[01:36] Future Frontend, June 13th and 14th in Helsinki, Finland.&lt;/p&gt;
&lt;p&gt;[01:40] React Norway, June 14th in Larvik, Norway.&lt;/p&gt;
&lt;p&gt;[01:45] And React Summit, June 14th and 18th it looks like in Amsterdam with a remote option there.&lt;/p&gt;
&lt;p&gt;[01:51] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; I&#39;m still crossing my fingers that I might at least be able to attend ReactConf here in a couple weeks and then I will be speaking at React Summit in Amsterdam as well.&lt;/p&gt;
&lt;p&gt;[02:01] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Awesome. Very cool. I can&#39;t believe how many are crammed into the middle of June. It&#39;s, it&#39;s a lot of good looking conferences. I know FutureFrontend&lt;/p&gt;
&lt;p&gt;[02:09] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Is he the one who has been involved in like writing a webpack book years ago?&lt;/p&gt;
&lt;p&gt;[02:14] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I think so. He was involved in Reactiflux pretty actively a number of years ago.&lt;/p&gt;
&lt;p&gt;[02:18] I just wanted to give him a shout out because he&#39;s been deep in the React community for a very long time and seems like a cool dude.&lt;/p&gt;
&lt;h2 id=&quot;new-releases&quot;&gt;New releases&lt;/h2&gt;
&lt;p&gt;[02:25] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; We&#39;re going to move on to a bunch of new releases. This has been a crazy dense month for new releases.&lt;/p&gt;
&lt;h2 id=&quot;react-183--19&quot;&gt;React 18.3 + 19&lt;/h2&gt;
&lt;p&gt;[02:32] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; The big ones, obviously two new React versions have been announced at least. There&#39;s React 18. 3. Which I think it&#39;s just sort of a pro forma release, getting ready for React 19. No behavior changes, just some extra warnings, a bit of improvements to developer experience to facilitate upgrading to React 19.&lt;/p&gt;
&lt;p&gt;[02:54] React 19 beta. Ooh, new major. Definitely excited to see all of the stuff going on there. I don&#39;t know. We&#39;ve talked a lot about all of the development going on into React 19 with stuff like Form Actions, useActionState, RSC is obviously going to be big. Lots of form helpers and stuff.&lt;/p&gt;
&lt;p&gt;[03:12] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; We&#39;ll cover that in detail in a few minutes.&lt;/p&gt;
&lt;p&gt;[03:14] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; For sure.&lt;/p&gt;
&lt;h2 id=&quot;nodejs-v22&quot;&gt;Node.js v22&lt;/h2&gt;
&lt;p&gt;[03:15] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, new Node. js major version.&lt;/p&gt;
&lt;p&gt;[03:18] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; And I&#39;m not sure where the versioning ties in, but I know I saw an announcement that some version of Node, probably this one, now has support for importing ESM files via Require, which is gigantic. I don&#39;t know what it was they had to do to finally make that work, and why they couldn&#39;t have done that like eight years ago, but hey, better late than never.&lt;/p&gt;
&lt;p&gt;[03:42] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Better late than never. Yeah, that, oh man, the ESM versus CommonJS has been such a troubling split in the web ecosystem. So seeing Node finally supporting native ESM import through Require, hopefully will lessen a lot of that pain. Definitely very excited to see that.&lt;/p&gt;
&lt;h2 id=&quot;expo-sdk-51-beta&quot;&gt;Expo SDK 51 beta&lt;/h2&gt;
&lt;p&gt;[04:02] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Okay. Blasting through. We&#39;ve got Expo SDK 51 is out in beta.&lt;/p&gt;
&lt;p&gt;[04:06] That looks interesting. They are including the new React Native release, which we&#39;re going to talk about later too. And just lots of other improvements to like cameras and SQLite APIs, iOS privacy manifest, definitely looks like a pretty big one.&lt;/p&gt;
&lt;h2 id=&quot;react-native-0740&quot;&gt;React Native 0.74.0&lt;/h2&gt;
&lt;p&gt;[04:21] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; React Native 0. 74, definitely pretty big release. We&#39;re going to talk about it.&lt;/p&gt;
&lt;p&gt;[04:26] A lot more in depth later. Uh, they&#39;ve got a new version of the yoga layout engine and using yarn three in the default community CLI. But yeah, more details later on.&lt;/p&gt;
&lt;h2 id=&quot;react-devtools-51&quot;&gt;React DevTools 5.1&lt;/h2&gt;
&lt;p&gt;[04:36] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; New DevTools version as well. For React, the React DevTools put out version 5. 1. There&#39;s a bunch of changes there, but you know, I don&#39;t know. It&#39;s the DevTools.&lt;/p&gt;
&lt;p&gt;[04:47] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Mostly related to support for the new features like use action state.&lt;/p&gt;
&lt;p&gt;[04:52] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Right, love some better DX there. The DevTools have always been pretty powerful and excited to see what the new experiences there look like.&lt;/p&gt;
&lt;h2 id=&quot;next-142&quot;&gt;Next 14.2&lt;/h2&gt;
&lt;p&gt;[05:02] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Next, 14. 2. Gonna chat more on that later, of course.&lt;/p&gt;
&lt;h2 id=&quot;bun-v11&quot;&gt;Bun v1.1&lt;/h2&gt;
&lt;p&gt;[05:07] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Same with Bun, version 1.1. New Bun minor. Again, gonna get deeper into it later on.&lt;/p&gt;
&lt;h2 id=&quot;pnpm-v9&quot;&gt;pnpm v9&lt;/h2&gt;
&lt;p&gt;[05:12] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; PMPM put out a new version 9, so a major version of a pretty significant package manager. I didn&#39;t quite realize that the P in PMPM stands for performant. The whole idea is there is that it just is MPM, but faster and better. I&#39;ve heard from a number of people that it&#39;s their package manager of choice.&lt;/p&gt;
&lt;p&gt;[05:33] I&#39;ve never substantially used it. I had used Yarn for a long time, but then I never upgraded from version 2. As I understand, the big improvement for PMPM is that it does sort of what Yarn 3 does similarly with not installing duplicate versions of packages when you have them already installed on disk somewhere.&lt;/p&gt;
&lt;p&gt;[05:52] So, That seems really cool. They&#39;re also adding like CorePack compatibility, which I understand to be a node standard for better supporting different types of different package managers. So, cool to see them supporting that standard. Always good to see behavior become more standardized, as well as improvements to the lockfile.&lt;/p&gt;
&lt;h2 id=&quot;biome-17&quot;&gt;Biome 1.7&lt;/h2&gt;
&lt;p&gt;[06:12] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; We got Biome 1. 7. I have a soft spot in my heart for Biome. I was an early supporter of Rome and it was very sad to see that, I don&#39;t know, kind of go into vaporware mode. So I was excited to see that many of the maintainers of Rome forked the project and came out with Biome. They&#39;re advertising single command migration from ESLint as well as Prettier.&lt;/p&gt;
&lt;p&gt;[06:34] So I guess two commands, one for ESLint, one for Prettier. And looks like a bunch of smaller developer experience improvements for using it. Like, you know, checking staged files with a command flag. And good default linter configuration. Love the project getting a sort of a bundling. Well, how to disambiguate the term bundling.&lt;/p&gt;
&lt;p&gt;[06:55] It sort of bundles up a bunch of behaviors from other tools like linting and. Formatting and all those sorts of things. So I like that. I think it&#39;s a very interesting project. Definitely check that out.&lt;/p&gt;
&lt;h2 id=&quot;supabase-leaves-beta&quot;&gt;Supabase leaves beta&lt;/h2&gt;
&lt;p&gt;[07:06] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Okay. Supabase, which is a, I guess, Postgres as a service. I always have conceptualized it as an open source Firebase competitor.&lt;/p&gt;
&lt;p&gt;[07:14] I guess Supabase, yeah, Firebase. I didn&#39;t realize that they&#39;re still, they had been still in beta, but earlier this month they went general availability, so definitely check out the launch event. Week that they did. I have heard it as, you know, sort of an open source darling. I&#39;ve seen it all over, you know, Twitter, used by many people who do lots of side projects and smaller greenfield work.&lt;/p&gt;
&lt;p&gt;[07:35] So if you&#39;re considering something like Firebase, if you&#39;re considering a back end as a service, definitely check out Superbase because it is generally available. No longer in beta.&lt;/p&gt;
&lt;h2 id=&quot;docusaurus-32&quot;&gt;Docusaurus 3.2&lt;/h2&gt;
&lt;p&gt;[07:45] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Docusaurus put out version 3. 2, looks like it&#39;s mostly performance improvements, a better table of contents from partials, which I guess is, you know, if you stitch together a bunch of documents into a single page, they now have better support for generating a table of contents.&lt;/p&gt;
&lt;p&gt;[08:02] And this is a silly thing that I have always had on my mind, but one of the things they advertised was An accurate last mod time in the sitemap. I have found that tricky. I think that makes a reasonably big difference in SEO. You know, you&#39;re signaling to Google or whatever search engine that your content is fresh, is up to date.&lt;/p&gt;
&lt;p&gt;[08:21] And in the past, I have generally found sitemap generation tools they just seem to not care about that, like they just put together a list of all the URLs. So just seeing that taken seriously by Sebastien, by Docusaurus, I like it. They also mentioned in their release post that they have overtaken Gatsby in NPM downloads, which seems like a pretty significant milestone.&lt;/p&gt;
&lt;p&gt;[08:43] Changing of the guard a little bit.&lt;/p&gt;
&lt;p&gt;[08:45] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; That is interesting because we use DocuSource for the Redux documentation sites, and it&#39;s not like it&#39;s getting downloaded continuously in our case, we only do docs updates kind of intermittently. And so for it to actually be getting downloaded frequently suggests there&#39;s a lot of people using it for like a non library documentation site kind of use case.&lt;/p&gt;
&lt;p&gt;[09:06] You know, more of that static like website beyond just Docs.&lt;/p&gt;
&lt;h2 id=&quot;gulp-v5&quot;&gt;Gulp v5&lt;/h2&gt;
&lt;p&gt;[09:11] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; This is a bit of a throwback, but Gulp, the now at this point quite long in the tooth build tool, script runner, just released version 5. Man, I haven&#39;t thought about Gulp in a number of years, so seeing it cross my path again was just like, oh, Gulp. Nice.&lt;/p&gt;
&lt;p&gt;[09:26] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; I&#39;m genuinely surprised it&#39;s being actively maintained, much less putting out major versions. I mean.&lt;/p&gt;
&lt;p&gt;[09:32] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; A little bit!&lt;/p&gt;
&lt;p&gt;[09:33] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Admittedly, my own experience is biased. I&#39;ve been in the React ecosystem where we, you know, webpack, blah, blah, blah, but very surprised to see that it&#39;s getting actively developed.&lt;/p&gt;
&lt;p&gt;[09:42] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Would generally agree.&lt;/p&gt;
&lt;p&gt;[09:43] They say in the release post, this release contains four years worth 60 projects. The team closed over 200 issues and pull requests. Cool. It&#39;s neat to see. Doing a major version seems like maybe a big ask for a project that is, I think, most likely to be used in a maintenance mode capacity. So, major version there seems like a little bit of a hard sell. Nice to see an old name resurface.&lt;/p&gt;
&lt;h2 id=&quot;pragmatic-drag-and-drop&quot;&gt;Pragmatic Drag and Drop&lt;/h2&gt;
&lt;p&gt;[10:07] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I&#39;m going to shout this out because it&#39;s related to a project that we had the maintainer on as a guest a number of months ago, but Pragmatic Drag and Drop from Atlassian. Drag and drop is brought. I&#39;ve always found it to be kind of challenging to implement.&lt;/p&gt;
&lt;p&gt;[10:23] I remember when I spoke with the, the, the maintainer, Alex Reardon a couple of months ago, he had a lot of really interesting things to say about serving the different use cases in drag and drop. And I think he has been involved in maintaining like three different drag and drop open source libraries. So he&#39;s been just very deep in it for a very long time. And it sounded like he really pulled a lot of learning from those different types of uses into this project, made it more like pluggable and, only pull in what you need to get the behaviors you want and things like that.&lt;/p&gt;
&lt;p&gt;[10:54] So definitely check that out. If you&#39;re considering some drag and drop stuff.&lt;/p&gt;
&lt;h2 id=&quot;redwood-v73&quot;&gt;Redwood v7.3&lt;/h2&gt;
&lt;p&gt;[10:58] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Redwood JS released version 7. 3. It&#39;s the app framework for startups. I&#39;m familiar with the name, but I&#39;ve never really worked on it too much.&lt;/p&gt;
&lt;p&gt;[11:08] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Their big sales pitch was that they did single file component setups where you export a GraphQL vary as a variable.&lt;/p&gt;
&lt;p&gt;[11:17] Like, conceptually, think of like a view single file thing, where both the component and other pieces were in a single file. By convention, you export a named variable with a GraphQL query, and all the rest of the pieces just hook together from there. However, they had announced about a year ago that they were going to, quote, go all in on server components.&lt;/p&gt;
&lt;p&gt;[11:36] I&#39;ve seen a lot of chatter from their developers who have been actively working on trying to figure out the mysteries of making server components work for anyone not named Vercel. And so, like I said, I haven&#39;t even looked at the release notes here, but from what I&#39;ve seen, they&#39;re getting pretty close on having that working.&lt;/p&gt;
&lt;p&gt;[11:53] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, that&#39;s right. I think I mostly remembered the name from hearing you talk about them as people who are investing pretty seriously in server components. So yeah, new version there. Looks maybe like it has a little bit of overlap with Superbase. Just a little bit closer to the front end half of the stack.&lt;/p&gt;
&lt;p&gt;[12:11] But full stack JavaScript application framework, batteries included, backend, React, all that stuff. Definitely interesting.&lt;/p&gt;
&lt;h2 id=&quot;react-on-rails-v14&quot;&gt;React on Rails v14&lt;/h2&gt;
&lt;p&gt;[12:17] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; And our last new release that we&#39;re going to shoot through, React on Rails version 14. This is not something that I&#39;ve ever made significant use of. I think one of the companies I worked at was using it because they were deeply invested into Rails.&lt;/p&gt;
&lt;p&gt;[12:32] But yeah, I mean, you know, if you&#39;re using Rails, if you are trying to use React with your Rails app, this seems, as far as I understand, this is the way to do so. So I thought it was worth shouting out a new major version.&lt;/p&gt;
&lt;h2 id=&quot;new-react-release-details&quot;&gt;New React release details!&lt;/h2&gt;
&lt;p&gt;[12:43] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; All right, let&#39;s roll into a couple of the bigger items from this week. And by far the biggest one is, hallelujah, after two years, we finally have new actual releases of React itself.&lt;/p&gt;
&lt;p&gt;[12:57] Literally, there was a guy who had put up a website that was like, what was the time breakdown between consecutive React releases? And, you know, some of these 16 or 17 releases had been like a few months apart, and it had been two years between 18. 2 coming out and today. So, the biggest news is that React 19 is finally in beta, and the React team has an extensive blog post that covers what&#39;s actually included.&lt;/p&gt;
&lt;p&gt;[13:25] And if you&#39;ve been paying attention to, you know, the discussions of the canaries and what&#39;s been available in Next. js, most of this stuff should not be a surprise. But it&#39;s worth briefly summarizing what&#39;s there.&lt;/p&gt;
&lt;p&gt;[13:36] There&#39;s what they&#39;re calling actions, which admittedly as the Redux maintainer is a little bit frustrating for me because the word action now has like 15 different overloads. There&#39;s what Redux means by it, what MobX means by it, what server components now means by it, but oh, well, whatever.&lt;/p&gt;
&lt;p&gt;[13:51] There&#39;s a lot of stuff that has to do with forms and async behavior. So if I have a form and I want to send some data to the server and I want to track pending state related to that form submission, React 19 now has multiple new features around being able to provide a callback As the action prop on the form tag itself, there are hooks for tracking form status and trying to handle transitions related to that.&lt;/p&gt;
&lt;p&gt;[14:22] As, I unfortunately keep having to say, like, I&#39;ve read about this stuff, I sort of have the picture in my head of what these things roughly do. I certainly have not had time to play with them, and honestly the kind of apps that I work on today don&#39;t even necessarily benefit from this myself. But it is very interesting to see the React team investing in, like, this, this kind of overlaps with a couple of things.&lt;/p&gt;
&lt;p&gt;[14:45] One is server components in general, because, you know, Dan&#39;s pitch is that server components extend React&#39;s one way data flow model to the server. So a server component fetches some data, passes it as props to a child component, which then renders, but if you want to go back to the server component and make it actually do something to force a re render and fetch new data, you have to have some way to reach back to the server.&lt;/p&gt;
&lt;p&gt;[15:12] And so my understanding is that server actions are the equivalent of a callback from the parent, except now it&#39;s crossing the network boundary And going back all the way to the server. So there&#39;s that aspect. There&#39;s a hook for optimistic updates and a whole bunch more pieces. It&#39;s also interesting because basically all of React&#39;s lifetime, we had certain conventions.&lt;/p&gt;
&lt;p&gt;[15:33] React was a primarily single page client side app tool, although you could always use it for what we now refer to as the islands architecture, little bits of React inside of an existing page. And you&#39;re supposed to use controlled inputs. You were supposed to have a state field for, you know, your first name, your last name, field, et cetera.&lt;/p&gt;
&lt;p&gt;[15:56] And you were supposed to keep that data in state and control the input because that matched reacts concept of the UI is always based on your state. And, that still exists, and React still has a ton of logic to make controlled inputs work, but it looks like with React 19, and the new emphasis on forms and actions, that conceptually the React team is now sort of going back to the, well, okay, fine, let&#39;s use the platform and have uncontrolled inputs as a default, and grab values from the form, using a form data object. Which is also basically what the Remix team has been telling us for the last two or three years.&lt;/p&gt;
&lt;p&gt;[16:40] I, I know that the new React docs now actually have an API reference page for the HTML form tag. Like, there isn&#39;t like a usage guide page that says here&#39;s how you&#39;re supposed to use forms in React, but I believe there is an API ref page that talks about what you can do with the form tag in React. Clearly forms and data inputs are a big emphasis as part of React 19 as a whole.&lt;/p&gt;
&lt;p&gt;[17:08] Another big piece is the new use hook, which I guess this means it&#39;s finally stable? Maybe? This is the replacement for the long known but always technically internal trigger suspense by throwing a promise.&lt;/p&gt;
&lt;p&gt;[17:24] So, instead, now you call the use hook, you pass in a promise, the promise needs to be cached so that you&#39;re passing in the same promise reference across renders of the component, but that is what will trigger the suspense boundary in some parent component and make this component wait until the promise is resolved for the data.&lt;/p&gt;
&lt;p&gt;[17:44] There&#39;s a lot of stuff around the actual. RSC functionality, and there&#39;s improvements with things like, with React 19, we now actually get ref as a prop, which means that forward ref can actually go away, finally. And this required a number of changes to React&#39;s JSX transform that actually had a lot of internal tweaks that had to be made, like we don&#39;t really think about compilation or behavior step of going from JSX tags to React element objects.&lt;/p&gt;
&lt;p&gt;[18:18] React originally had the CreateElement API, eventually that got replaced with a somewhat more sophisticated compiler based JSX transform, which still did roughly the same job. And for React 19, they&#39;ve done a number of changes to the internals of that to make things like passing through ref directly possible.&lt;/p&gt;
&lt;p&gt;[18:36] On that note, there was also a PR to change some of the internals where they used to always have to clone. Whatever props object was getting passed into element creation. And that&#39;s a hot path because every render is calling this element creation logic thousands of times. And I&#39;d seen some issues filed that complained, like this is a noticeable part of React&#39;s performance overhead.&lt;/p&gt;
&lt;p&gt;[19:01] So, they&#39;ve done some optimization work there, and that means that React 19 should have lower overhead in the overall rendering process because it&#39;s having to do, less object copying as part of the actual rendering step.&lt;/p&gt;
&lt;p&gt;[19:16] A couple other things, you can no longer apply default props to function components. You&#39;re now supposed to just use ES6 destructuring defaults. Apparently that still exists for classes, because you can&#39;t destructure anything there. There&#39;s also been a couple interesting changes on the build tooling side. So, one that I have a personal vested interest in.&lt;/p&gt;
&lt;p&gt;[19:37] Early last year, I had done a lot of work to modify React&#39;s build pipeline to generate source maps, because React had never shipped with source maps. That meant that any time there was an error message in production, you got a totally unreadable stack trace. And, if you were in the hopefully rare situation of needing to debug and step out of React, like outside of a function component and into the React bundle, well, React&#39;s source code is hard enough to read.&lt;/p&gt;
&lt;p&gt;[20:09] In its original form, once it&#39;s been bundled and minified, it&#39;s literally completely unreadable. And for companies like Replay that care about source maps and debugging, that was a problem for us. So I&#39;d done the work last year to add source maps to React&#39;s build pipeline. So, in an interesting twist, a week or two ago, Andrew Clark removed my changes from the build pipeline BECAUSE React is no longer going to ship pre minified bundles.&lt;/p&gt;
&lt;p&gt;[20:38] Now, to understand some of this, React has always used a very advanced minifier called the Google Closure Compiler. It&#39;s like Terser, but much, much more powerful. And it is like the best tool for optimizing and minifying JavaScript bundles, and they wanted to shrink it as much as possible and like really do a good job of inlining functions to make things fast.&lt;/p&gt;
&lt;p&gt;[21:01] So when I did the source map work last year, I was capturing a copy of the source code right before it went through closure. But, that didn&#39;t have some of the other optimizations that Closure does besides the final minification step. So, what they&#39;ve done is they&#39;ve dropped shipping source maps and they&#39;ve stopped pre minifying the bundle, but they are still doing the optimization and inlining step with Closure. So, in the future, as a, or actually as of the latest beta, what&#39;s in the bundle is no longer react dom. production. min. js, which is what it&#39;s always been, but rather a react dom. production. js that&#39;s still like 500k, un minified, but it&#39;s got all the source code optimizations applied.&lt;/p&gt;
&lt;p&gt;[21:52] So, your application build step will now do the final minification process out of that. One other interesting side effect here is that if you look at this, strictly speaking, actually ReactDOM. production is now like a six kilobyte file. And this is unexpected. And in fact, if you look at BundlePhobia for ReactDOM 19 beta, it thinks that ReactDOM is now only six, like, like three and a half K minified.&lt;/p&gt;
&lt;p&gt;[22:19] Which is clearly not the case, and it&#39;s because the Reconciler logic is now in a separate file, React dom client . If you think about writing web apps now, ever since React 18, when we switched over to the new CreateRoot method, that comes from the react-dom/client entry point. So, they&#39;ve re architected the bundles so that the bulk of the code is in that slash client file, and because of that bundle phobia, it doesn&#39;t actually trace through and connect the dots to see that both these files end up getting used in a real app.&lt;/p&gt;
&lt;p&gt;[22:55] Finally, a couple other bits that are stirring up some controversy. So a couple of years ago, the React team announced that they were patching the fetch method in order to allow caching in case, you know, multiple components are trying to make similar requests on the server side.&lt;/p&gt;
&lt;p&gt;[23:09] And many people got pretty justifiably angry about this because we learned back in the mid tens, patching global objects in JavaScript is a really bad idea. So the React team has finally given up on that and they&#39;ve reverted those changes for the final release. And they&#39;ve said. If you want to make sure you&#39;re deduplicating requests, wrap your request logic in the cache method.&lt;/p&gt;
&lt;p&gt;[23:32] Which makes it really ironic that Andrew Clark just tweeted today that they might actually end up patching the date object down the road in order to prevent hydration mismatches. I don&#39;t know. I understand why he says that. I am not sure this is a good idea. I don&#39;t have a better solution. So, we&#39;ll see how this one pans out.&lt;/p&gt;
&lt;p&gt;[23:53] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, I am empathetic to that. And he does talk about, as long as it&#39;s standards compliant, nobody has cared about patching internals, people haven&#39;t complained about polyfills, and dates are such a pain in the butt when you&#39;re doing hydration. Just, you know, it&#39;s so easy to have them accidentally rely on current time, which then causes a hydration warning and is just super annoying.&lt;/p&gt;
&lt;p&gt;[24:14] So I can understand the motivation for doing it, but yeah, agree, it&#39;s, you know, patching stuff is scary, it&#39;s risky.&lt;/p&gt;
&lt;p&gt;[24:19] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; So we&#39;ve got a beta out, and I actually was not even expecting a beta this soon. I did not expect that we would see a beta for another couple weeks, and it would actually be announced at React Conf.&lt;/p&gt;
&lt;p&gt;[24:31] I do not expect a React 19 final at React Conf. I could be surprised, but the fact that it&#39;s only been in beta for a couple weeks, Plus, I&#39;m still seeing lots and lots of PRs flying through in the React repo. I, I would not expect React 19 final for at least another three or four months, but I have no specific info on that either way.&lt;/p&gt;
&lt;p&gt;[24:54] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, I also want to call out a couple of other less conceptual changes, they seem a little bit more like pragmatic, use the platform kind of adjustments. React 19 adds support for document metadata directly in rendered React output. Previously, this is the sort of thing that you would use a tool like React Helmet to render.&lt;/p&gt;
&lt;p&gt;[25:14] You know, if you&#39;re putting document metadata, title, link, meta tags, stuff that normally lives in the head. Part of your HTML. Now React is adding support for rendering that pretty much anywhere. And then React will do the work to figure out that it needs to go in the head, and putting it there at all. That&#39;s pretty interesting. I have been routinely let down by React Helmet, which it just has a lot of bugs.&lt;/p&gt;
&lt;p&gt;[25:39] It was one of the first open source React libraries that I ever remember coming across like way back in 2013 14. And it was written by the NFL, which always struck me as like, what? The NFL? So it Great name, like the NFL putting out something that renders to the head and calling it helmet is just like, oh my God, that is the perfect name.&lt;/p&gt;
&lt;p&gt;[26:01] So I love that. But then I just, oh man, I ran into so many weird bugs and edge cases every single time I tried to use it, which often I ended up compromising on behaviors because it just didn&#39;t work and there was no viable alternative. So excited to see. First party support for that without having to use a janky out of date library from eight years ago.&lt;/p&gt;
&lt;p&gt;[26:21] So that&#39;s nice. Kind of related to that, so, you know, keeping the theme of dumping stuff in your rendered output, they&#39;re also adding better support for style sheets in rendered output. They call this out in the release page saying, Style sheets require careful positioning of the DOM due to style precedence rules.&lt;/p&gt;
&lt;p&gt;[26:38] And I guess this is going to be a little bit related to the patching platform things. They&#39;ve got a precedence prop on these link tags. So you know, so not only can you now render link tags in your output instead of having to figure out how to put them in your head, then you can just put them in your rendered output anywhere, signal what level of precedence they should have, and React will do the work to figure out.&lt;/p&gt;
&lt;p&gt;[27:04] Where it should live. Interesting. Seems to unlock a lot of new ways of using CSS in your React projects. It strikes me that it may inspire a new wave of, like, maybe not CSS in JS libraries, but may inspire new ways of Making use of CSS from your React components, of scoping your styles to your logic.&lt;/p&gt;
&lt;p&gt;[27:29] Definitely find that interesting. And another slightly related feature is the port for async script tags they talk about. Previously it was considered kind of, actually I don&#39;t know that I ever saw enough discussion of this to say considered an anti pattern. Just didn&#39;t feel right to render a script tag from your React component like you&#39;re already in JavaScript.&lt;/p&gt;
&lt;p&gt;[27:48] Why would you then load more JavaScript from your rendered output of your component? It feels weird, but they&#39;re calling out support for async scripts normal. They say normal scripts and deferred scripts, load and document order, which makes rendering these kind of scripts deepen your component tree challenging, you know, that&#39;s kinda the problem I was articulating there in React 19.&lt;/p&gt;
&lt;p&gt;[28:05] We&#39;ve included better support for async scripts by allowing you to render them anywhere in your component tree without having to manage relocating and duplicating script instances. So, that&#39;s, again, a little bit interesting. I can imagine, I have run into situations where using React is maybe not the best tool for a specific type of UI.&lt;/p&gt;
&lt;p&gt;[28:25] You know, like, things like A complex map, or a highly complex and interactive data visualization, or there&#39;s a lot of things that you might want to render to like a canvas, or to WebGL, or in an iframe, or things like that, where React either can&#39;t do it because of security limitations, or because, you know, you can&#39;t render A component in WebGL or Canvas.&lt;/p&gt;
&lt;p&gt;[28:50] So there are circumstances where I&#39;ve either bailed out of using React and just said like, Nope, everything inside this component renders once, and then some other script takes over for it. So in circumstances like that, I could see this being a significant experience improvement. And again, building on that, they&#39;re also adding support for preloading resources.&lt;/p&gt;
&lt;p&gt;[29:09] So the React DOM package now exports a couple of new, I guess I&#39;ll call them helper functions, listing them here. PrefetchDNS, Preconnect, Preload, and Preinit, which are similar to like the link or meta tags. You give it a URL and. Sort of a configuration object, and it signals to React that you will want these assets, but not right now.&lt;/p&gt;
&lt;p&gt;[29:30] It&#39;s not like rendering out a style tag or a script tag, but it&#39;s saying, here&#39;s a resource. I want you to resolve the DNS, or connect to the resource, but don&#39;t start loading it yet, or start loading it, but don&#39;t start parsing it yet. So it looks like a lot finer grain control over external resources.&lt;/p&gt;
&lt;p&gt;[29:49] So combined with greater level of control over how resources get loaded, and then clearer, simpler semantics around taking those resources and rendering them from a component, It does seem like it unlocks a lot of really powerful behaviors. I think it&#39;s going to introduce some churn into the ecosystem, but I can at least see, I have run into a lot of problems where I can see this set of tools being a pretty big unlock.&lt;/p&gt;
&lt;p&gt;[30:17] So excited to see it.&lt;/p&gt;
&lt;p&gt;[30:18] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; And then one more item that&#39;s all the way down at the very bottom of the beta release notes is support for custom elements aka web components finally work properly inside of React. I&#39;ve never used web components. I&#39;ve tried to read the threads that have had hundreds of comments and complaints.&lt;/p&gt;
&lt;p&gt;[30:40] I have a vague partial sense of what the problem space is. In general, like with React, we pass props and we pass real JavaScript values, objects and numbers and whatever. But with web components, there&#39;s the issue that, you know, like there, there&#39;s something about the attributes versus properties distinction.&lt;/p&gt;
&lt;p&gt;[30:59] Like HTML is you&#39;re defining attributes that are strings. DOM objects have properties that can be mutated and these are not always the same thing. So like you, you can&#39;t just always directly pass real objects into a custom element, the same way we would pass a prop from a parent to a child in React.&lt;/p&gt;
&lt;p&gt;[31:21] And there&#39;s been like a whole bunch of other interop issues trying to render web components inside of a React component and pass data and handle events between these. And so the web components community has complained for years that, well, every other UI framework manages to make this cooperate. Why can&#39;t React do it?&lt;/p&gt;
&lt;p&gt;[31:43] it&#39;s a reasonably fair complaint, but there&#39;d been an issue filed all the way back in like 2016, 2017 saying, so React, are you finally going to make this just work? And it took another four or five years before an engineer from Meta actually sat down and implemented it. Now, apparently part of the problem.&lt;/p&gt;
&lt;p&gt;[32:02] It was unclear what the exact behavior semantics should be. I guess there is no single specification for how Web Components define, like, what kind of event props they take. And a lot of questions about the exact mechanisms for passing Props from a React component to a web component. So like the React team&#39;s like, well, okay, there&#39;s like a half dozen ways we could do this, and these are kind of mutually exclusive.&lt;/p&gt;
&lt;p&gt;[32:27] We&#39;re not the experts here. How would the web component community like us to build this? And everybody had very different opinions. So that was part of the reason why this took multiple years to happen. But, eventually, there was some adequate kind of consensus reached, and so a meta engineer actually went in and did a ton of work, a couple massive PRs to implement the support, and it got merged, like, two years ago, but it was always in, you know, under a feature flag, just in the experimental branches.&lt;/p&gt;
&lt;p&gt;[32:56] So, React 19 now finally ships with, quote, proper support for web components, and all three people who care cheered.&lt;/p&gt;
&lt;p&gt;[33:06] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Well, one of them is in the chat here, definitely interesting, I don&#39;t know. Like you said, I&#39;ve been loosely paying attention to it for years at this point, and generally loosely paying attention to web components for even longer than that, and Cool.&lt;/p&gt;
&lt;p&gt;[33:18] I don&#39;t know. Good to see. I will continue to loosely pay attention to see what kind of effects it has on the ecosystem, but I&#39;m a little bit skeptical it&#39;s gonna make big waves.&lt;/p&gt;
&lt;h2 id=&quot;react-native-0740-1&quot;&gt;React Native 0.74.0&lt;/h2&gt;
&lt;p&gt;[33:29] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Cool. Okay, React Native. They have officially released their 0. 74 version, which is gonna be I actually talked to someone when I was at React Miami about some of the work they&#39;ve been doing.&lt;/p&gt;
&lt;p&gt;[33:40] So the, the One of the things included in this is Yoga 3. 0. Yoga is the Flexbox layout engine re implementation that powers React Native. It&#39;s, it&#39;s one of the core technologies that facilitated React Native approximating web layout. And I had, I had spoken with someone at React Native who said that it took them a long time to sort of spin back up on development, you know, some internal priorities and, people moving, they lost some expertise on that. So they had to reinvest, re relearn how to develop it.&lt;/p&gt;
&lt;p&gt;[34:15] So cool to see that in here. It looks like it fixes a couple of layout bugs that were, you know, non standard. They were different from the semantics on web. It was something about. Like, you know, row reverse columns with like start and end edge was not behaving correctly previously, and now it is. So you may find some weird margins.&lt;/p&gt;
&lt;p&gt;[34:34] They&#39;re also removing a tool called Flipper by default. You can still add it back in. Inspecting React Native layouts, network requests. Uh, it sounds like it has a lot of overlap with the React Dev tools in, browsers. Uh, it was deprecated in 0. 73. Thank you, Cedric and chat. And is now being removed by default.&lt;/p&gt;
&lt;p&gt;[34:52] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; I&#39;m very curious what the debugging story is. As usual, I have not worked on React Native. I don&#39;t know what the debugging process is overall.&lt;/p&gt;
&lt;p&gt;[35:00] But if they&#39;re removing Flipper, I&#39;m curious what the intended workflow is for debugging tools. And I see someone says Chrome DevTools.&lt;/p&gt;
&lt;p&gt;[35:07] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah. I think when I was using React Native, this is now close to three years out of date. I believe I was already using the Chrome DevTools at that point. So it sounds like this shouldn&#39;t be too impactful on too many people.&lt;/p&gt;
&lt;p&gt;[35:19] Yeah. Community CLI for React Native, I guess, to make an analogy, sort of the create React app for React Native is now. Using Yarn 3 for new projects by default. So that&#39;s a reasonably opinionated change. I know that Yarn 3 has very different semantics from Yarn 2.&lt;/p&gt;
&lt;p&gt;[35:38] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; My, I would assume that they&#39;re going with Yarn&#39;s node modules behavior by default rather than the attempt to do the plug and play, don&#39;t extract everything on disk approach that Yarn 2 tried and failed to get out there.&lt;/p&gt;
&lt;p&gt;[35:52] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Can confirm using node-linker/node-modules.&lt;/p&gt;
&lt;p&gt;[35:55] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; I actually got to meet the primary maintainer of Yarn, Emil Nusson in Paris.&lt;/p&gt;
&lt;p&gt;[36:00] We talked a bit about, you know, where Yarn stands. Like Yarn 4 is out, but apparently kind of, Came out a little past, you know, whatever preparation deadline the React Native team had for trying to figure out things on their end. I don&#39;t think there were too many big changes between Yarn 3 and Yarn 4, but it is interesting.&lt;/p&gt;
&lt;p&gt;[36:18] You know, we mentioned earlier that, you know, PNPM has gotten a lot of popularity. And so, like, a segment of the ecosystem is going to be pretty, you know, pretty much set on Yarn 3 for the foreseeable future.&lt;/p&gt;
&lt;p&gt;[36:30] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Whoa, I consider myself a Yarn user, and I didn&#39;t even know they had a version 4. 0. Looks like it was released in October of last year. Interesting. Cool.&lt;/p&gt;
&lt;p&gt;[36:38] React Native Navigation version 7 is out, which looks like some of the major improvements there are around the configuration of it. Previously, talked about how previously there were of difficulties with Types, and basically you needed to keep your types manually synced with your route configuration.&lt;/p&gt;
&lt;p&gt;[36:57] So it looks like they&#39;ve made some general architecture improvements, such to where TypeScript types can now be inferred from the root navigator with a static param list type, and it&#39;ll be available anywhere UseNavigation hook. So that&#39;s cool. Needs a, like, one line script. Global namespace adjustment in TypeScript in order to enable.&lt;/p&gt;
&lt;p&gt;[37:16] But that seems like a really big improvement. Type support in your navigation is definitely a lot more safe. So that&#39;s really good. And last React Native thing I&#39;ll do is just a small shout out. There&#39;s a Vision Camera package that just released a 4. 0. Looks like it supports a lot of Powerful camera stuff, you know, like QR codes and like some other visual recognition stuff.&lt;/p&gt;
&lt;p&gt;[37:41] looks like a really cool project and definitely some big React Native relevance.&lt;/p&gt;
&lt;p&gt;[37:46] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; On the note of React Native, I was at a React Connection and React Native Connection conference in Paris last week.&lt;/p&gt;
&lt;p&gt;[37:53] And I&#39;ve always been a web dev, but it was interesting to me just sitting through the React Native talks and half of the material was familiar, half of it was like a completely different ecosystem that I&#39;d never heard of. It was very interesting to see how there&#39;s just this entire different branch of the React ecosystem that I basically didn&#39;t almost even know existed in terms of mindset and what they&#39;re dealing with.&lt;/p&gt;
&lt;h2 id=&quot;kotaken-rscs-with-just-bun&quot;&gt;Kotaken, RSCs with just Bun&lt;/h2&gt;
&lt;p&gt;[38:17] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; So, rolling through a few items very quickly. A new experimental server component framework that I had never even heard of until I saw it pasted in the links like an hour ago called Kotaken. And the interesting sales pitch here is what would a React framework look like if Bun we re the only tool in the tool chain.&lt;/p&gt;
&lt;p&gt;[38:37] This sounds very interesting in a lot of ways. Certainly the tool setup makes it sound like it&#39;s a lot simpler. It sounds like it has some interesting variations in how they&#39;re trying to use server components. I assume based on the description that it&#39;s brand new and highly experimental, but you know, another example of playing with the baseline ideas of server components and seeing how a different framework makes different choices around it.&lt;/p&gt;
&lt;h2 id=&quot;bun-11&quot;&gt;Bun 1.1&lt;/h2&gt;
&lt;p&gt;[39:02] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; On that note, Bun 1. 1 is out and it actually has Windows support. And as the, you know, the 1 percent of web developers who is actually a Windows user, cool. Yay. I&#39;m excited by this. I actually played with Bun briefly on a very small work project a couple of weeks ago.&lt;/p&gt;
&lt;p&gt;[39:19] I was trying to prototype some SQL changes and Bun has SQLite support built in. So rather than try and mess with Postgres adapters or whatever, I just used that and it ran, it worked. I don&#39;t have further experience to report on, but I&#39;m very excited to see BUN support getting fleshed out.&lt;/p&gt;
&lt;h2 id=&quot;jsr-by-deno&quot;&gt;JSR, by Deno&lt;/h2&gt;
&lt;p&gt;[39:37] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I wanted to talk about JSR, the JavaScript registry being put out by the Deno team. New registry is pretty interesting to me. We&#39;ve seen a lot of experimentation in package managers, but ultimately all of them still hit NPM.&lt;/p&gt;
&lt;p&gt;[39:52] And the Deno team was talking a little bit about how that&#39;s a bit of a shame. We&#39;ve had so much experimentation happening, but so little of it happening At that level, where a lot of behaviors are ultimately driven from. A couple of notable changes that they&#39;ve done, this is ESM only, which is definitely going to be a pretty big level up for React. The ecosystem as a whole, I think, just, you know, ESM versus CommonJS has been such a pain for so long. I think a clean break in a new package registry might be a bit of a kick in the pants, as it were, just to kind of force the issue and say like, nope, clean break, new stuff.&lt;/p&gt;
&lt;p&gt;[40:33] They do say that JSR is backwards compatible with NPM, so that should facilitate migration at least. Obviously moving to a whole new package registry is a bit of a tough sell. Maybe not as tough as something like switching from Angular to React. As it were, but I think it&#39;s, I think it&#39;s up there. You know, if you are trying to use a new registry, but like, oops, there&#39;s no express, like that&#39;s just pretty hard.&lt;/p&gt;
&lt;p&gt;[40:58] A lot of the assumptions that you have about what open source code is going to be available. It may not be available. So I think that&#39;s going to be a little bit tough. They also said some interesting stuff like TypeScript has emerged as not only a way to write JavaScript with compile time type checking, but as a test bed for the latest JavaScript language features coming out of TC39.&lt;/p&gt;
&lt;p&gt;[41:17] That rang really true to me. So seeing a team push the boundaries of something as, you know, maybe a little bit esoteric and like less thought of as a package registry is, I don&#39;t know, I appreciate that they are also following the cutting edge Broadly across the rest of the ecosystem as well. They talk about Node is no longer the only relevant JavaScript runtime outside the browser.&lt;/p&gt;
&lt;p&gt;[41:40] Some other really cool stuff. I think something I saw was package provenance through a tool called SIGstore, this is sort of like, Supply chain attacks, if you&#39;re familiar with that, where how do you know that the code you believe you&#39;re installing on NPM is actually what you expect?&lt;/p&gt;
&lt;p&gt;[41:58] So provenance is dealing with that sort of end to end guarantee that something is what it claims to be. There have been a couple of notable Vulnerabilities, actually not even vulnerabilities, just straight up attacks where an open source project solicits a new maintainer, has malicious intent and publishes some kind of script, some kind of backdoor.&lt;/p&gt;
&lt;p&gt;[42:19] You know, whether that is trying to attack the end application that is consuming the library, or I think more frequently they have been attacking developer machines to then try to gain access to other parts of the system. I know there was a notable example a couple of months ago. Maybe years at this point ago, where somebody installed a crypto miner into a install script.&lt;/p&gt;
&lt;p&gt;[42:42] So people&#39;s developer laptops started mining crypto for them. So all that to say, package provenance as a core part of the package registry, I think is a really important area to explore. And contrasting something like package provenance Verifying contents with the, I would say, kind of failed attempt NPM did of doing like NPM audit.&lt;/p&gt;
&lt;p&gt;[43:05] You know, that was so unsuccessful that like Dan Abramov put out a post talking about how it was broken by design, like just the fundamental assumptions it made about security and how you address security issues being so wrong as to be harmful.&lt;/p&gt;
&lt;p&gt;[43:18] I have a reasonably high degree of confidence in the Deno team generally. You know, it&#39;s a project started by Ryan Dahl, who created Node in the first place. So having him come back and say, I got some things wrong. I&#39;m going to try again in a new context with Deno. And then now expanding that into, I think that The Node ecosystem got some things wrong with how packages work.&lt;/p&gt;
&lt;p&gt;[43:40] I&#39;m going to try that again. I think that&#39;s very exciting. I am not going to immediately jump on it and start using it for everything, but I am going to be paying pretty close attention because I think this is a serious attempt at a very complex and large problem space. Let me just run through a couple of guarantees, expectations that the JSR team has put out.&lt;/p&gt;
&lt;p&gt;[44:02] As for what a package manager should do, they say it should embrace ESM as the web standard for JavaScript modules, should be designed for TypeScript from first principles, should be simple, fast, provide excellent developer experience, should be free and open source and work anywhere that JavaScript does, and should build on the success of NPM, not fork it.&lt;/p&gt;
&lt;p&gt;[44:20] Seems pretty good. There&#39;s a couple other really good posts that I&#39;m just going to dump in chat here. Those will be in the show notes as well. Some other things that I think are important, every module must be scoped, which I think is a positive change. It&#39;s always a little bit funny, you know, on NPM modules that don&#39;t have a scope feel somehow more official in some way.&lt;/p&gt;
&lt;p&gt;[44:39] It&#39;s so just requiring that all packages are scoped kind of eliminates that funny little. Bifurcation in the ecosystem. Like, is it scoped or is it not scoped? It also has a concept of multiple scopes per account. I saw a mention of four scopes per account as a limit. So being able to manage different scopes without having to set up like a dummy account, which I believe is how that has to work on NPM.&lt;/p&gt;
&lt;p&gt;[45:02] It&#39;s been a while since I&#39;ve had to deal with that myself, but that seems like a really good idea. Interesting, useful, evolution of the ecosystem.&lt;/p&gt;
&lt;h2 id=&quot;️-why-i-like-react-even-in-2024-️&quot;&gt;⚡️ Why I like React (Even in 2024) ⚡️&lt;/h2&gt;
&lt;p&gt;[45:09] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; And then hitting a couple of the lightning items really fast. We&#39;ve commented how there&#39;s been a whole series of articles and tweets and complaints about, you know, being, people being frustrated with. React as a technology, based on the slow pace of development, or, you know, poor communication from the React team, or, you know, React just doesn&#39;t feel as modern as other frameworks that are adopting things like signals, etc.&lt;/p&gt;
&lt;p&gt;[45:36] And so, I thought this post on why I like React in 2024 was well written, and just a decent alternative train of thought to some of the negative chatter.&lt;/p&gt;
&lt;h2 id=&quot;️-netlify-updates-their-nextjs-runtime-️&quot;&gt;⚡️ Netlify updates their Next.js runtime ⚡️&lt;/h2&gt;
&lt;p&gt;[45:46] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Netlify put out a blog post introducing a new Next. js runtime, which I was pretty surprised about.&lt;/p&gt;
&lt;p&gt;[45:52] I think of Netlify as a static site host. When I think Netlify, I generally think Buildstep. Static assets, essentially static HTML and JavaScript served by a CDN. So seeing them talk about a runtime for a framework that I consider to require a server, it&#39;s pretty interesting to me. That seems like a pretty large evolution in their product offering in a pretty interesting way.&lt;/p&gt;
&lt;p&gt;[46:18] And. You know, Vercel&#39;s level of influence on React and it&#39;s coupling to the cloud runtime environment has been a little controversial to say the least. So seeing some more competition there is definitely pretty interesting. I guess relevant to that, I also saw somebody wrote a blog post discussing how Cloudflare is the best alternative to React.&lt;/p&gt;
&lt;p&gt;[46:40] Vercel, which I&#39;ll share as well while we&#39;re talking Vercel competitors. Definitely interesting. I guess this is not a new thing from Netlify. They say this is Next. js runtime version 5, so definitely pretty cool. Supports the app router, fine grain caching, on demand and time based revalidation. Oh, maybe a big one.&lt;/p&gt;
&lt;p&gt;[46:59] This is a problem that I&#39;ve run into on Netlify using Next. They now support the Next image component. By default, so being able to optimize your images automatically through the next image package is definitely a pretty big, like, performance and user experience win. So that seems pretty good.&lt;/p&gt;
&lt;h2 id=&quot;️-design-principles-behind-the-nextjs-app-router-️&quot;&gt;⚡️ Design Principles behind the Next.js App Router ⚡️&lt;/h2&gt;
&lt;p&gt;[47:18] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; There was also a really good tweet from one of the Vercel devs, I think just like a day or two ago, talking about design principles behind the Next. js app router. And frankly, it was an extended length tweet that really was a miniature blog post, and it talked about some of the ideas that it&#39;s really about layouts. and being able to identify which pieces of the page need data and which can be pre cached. And the fact that they actually don&#39;t expose things like the request object directly so that they can better detect which pieces could be cached versus which pieces have to be fully re rendered on the server side.So, whether or not you like the approach, it&#39;s clear that they&#39;ve put a lot of actual thought into it. .&lt;/p&gt;
&lt;h2 id=&quot;️-nodejs-website-redesign-️&quot;&gt;⚡️ Node.js website redesign ⚡️&lt;/h2&gt;
&lt;p&gt;[48:04] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I saw a blog post from Node. js about their website redesign. I thought this was a fun, technical write up to white paper, relevant to a lot of, relevant to our jobs. You know, like we do lots of website redesigns. I thought it was pretty cool. Just to see, you know, they talk about a failed attempt at restarting it with a nodejs.&lt;/p&gt;
&lt;p&gt;[48:25] dev domain. In retrospect, this might have unintentionally doomed the project from the start. Yeah, it seemed like a really good breakdown of the technical challenges and organizational struggles of Doing a major website overhaul. So yeah, definitely check that out. They talk about reassembling the airplane while in flight. Always a fun metaphor.&lt;/p&gt;
&lt;h2 id=&quot;️-dives-into-react-features-️&quot;&gt;⚡️ Dives into React features ⚡️&lt;/h2&gt;
&lt;p&gt;[48:44] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; There&#39;s a website I&#39;ve run across that has been doing a whole series of dives into the actual React codebase and picking out specific features like the new Use Optimistic hook. And talking about how they actually are implemented in React.&lt;/p&gt;
&lt;p&gt;[48:59] And one of React&#39;s strong points has been that it is a black box and you don&#39;t need to know how it works internally to be able to use it. You need to understand the mental model of the data flow. But you don&#39;t have to dig into the code and worry about the actual implementation details. But, I frequently see people asking, how does such and such a feature in React work?&lt;/p&gt;
&lt;p&gt;[49:20] And so I appreciate that the person behind this site has been doing dives into the codebase to try to explain things.&lt;/p&gt;
&lt;h2 id=&quot;️-honeypot-releases-nodejs-documentary-️&quot;&gt;⚡️ Honeypot releases Node.js documentary ⚡️&lt;/h2&gt;
&lt;p&gt;[49:27] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; The people behind the React. js documentary, Honeypot. io, which I believe is a recruiting platform, put out a documentary on the origins of Node. js. I haven&#39;t been able to give it a watch yet, but their React. js documentary was. Very good. Got to watch that at, on the big screen at React Miami last year, and I got a chance to speak with the filmmaker who put it together, who did all the recording, and found her very impressive. She&#39;s very skilled. So definitely check that out.&lt;/p&gt;
&lt;h2 id=&quot;️-flow-ships-react-features-️&quot;&gt;⚡️ Flow ships React features ⚡️&lt;/h2&gt;
&lt;p&gt;[49:56] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; The flow type system, which was a competitor to TypeScript and then in a sense, basically died outside of Facebook like three or four years ago, because the flow team didn&#39;t ship often and they didn&#39;t really, frankly, care about the community, has still been working on things and they recently announced some new language level features for React components. I think we might&#39;ve touched this briefly last time, but they&#39;ve added some actual syntax for defining components and prop types in React, which is interesting&lt;/p&gt;
&lt;h2 id=&quot;️-vercel-updates-pricing-️&quot;&gt;⚡️ Vercel updates pricing ⚡️&lt;/h2&gt;
&lt;p&gt;[50:26] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Another small update, Vercel is cutting prices a little bit, or they are updating their Infrastructure pricing, which they expect to reduce costs for most users. So, cool. Looks like it&#39;s not a major alteration. It&#39;s not going to be like an order of magnitude fix, but it&#39;s include some like finer granularity on bandwidth costs.&lt;/p&gt;
&lt;p&gt;[50:48] So instead of per hundred gigabytes of bandwidth, it&#39;s per gigabyte. Well, which should help a lot. I saw it discussed, you know, if you use 105 gigabytes of bandwidth, now you&#39;ll be billed for 105, not 200. So a couple of little things like that. I saw some chatter about a limited number of people who had costs shoot up quite a bit, but that seems to be relatively rare.&lt;/p&gt;
&lt;p&gt;[51:11] if you have a very particular performance characteristic on how you&#39;re using the Vercel platform, it may not be a big cost savings, but it just, you know, as I was reading these, as they&#39;re breaking down the price changes, it looks generally like I would expect it to reduce costs.&lt;/p&gt;
&lt;h2 id=&quot;️-redwoodjs-compares-data-fetch-methods-️&quot;&gt;⚡️ RedwoodJS compares data fetch methods ⚡️&lt;/h2&gt;
&lt;p&gt;[51:28] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; And then finally, the last one I&#39;ll mention is the Redwood JS, which we mentioned earlier, you know, had originally been focused on using GraphQL to define data fetching needs for React components.&lt;/p&gt;
&lt;p&gt;[51:40] And over the last year, they&#39;ve been doing work to adopt server components. And they just put up, they put up a blog post that. Showed some comparisons in data fetching between the next AppRouter, the next PageRouter, Remix, and Redwood. there are some variations in how the tools work and some of the trade offs. I always appreciate posts that actually try to cross compare things.&lt;/p&gt;
&lt;h2 id=&quot;️-kuto-reverse-js-bundler-️&quot;&gt;⚡️ Kuto, reverse JS bundler ⚡️&lt;/h2&gt;
&lt;p&gt;[52:02] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I saw a neat project called Kuto. They called it a reverse JavaScript bundler. And it&#39;s around reusing your code as you&#39;re shipping updates to your application. This is something I&#39;ve thought about a number of times at different companies I&#39;ve worked at, but never made any significant headway on actually addressing.&lt;/p&gt;
&lt;p&gt;[52:22] You do a production build, you produce your new set of bundles, you upload those to the, to your production server. And you know, like most of that code didn&#39;t actually change. Like presumably just made, A bunch of small alterations. Like, I can&#39;t imagine that any new production release affects more than like, what, like one to five percent of your overall code?&lt;/p&gt;
&lt;p&gt;[52:43] Maybe even less when you start including dependencies and, you know, vendored code. So it looks like this is trying to sort of do a diff, kind of ship a diff on production releases, which is super cool. Like, if you can Do a new production release and know that much of the code that didn&#39;t change is still going to remain cached by your existing users, then that seems super cool.&lt;/p&gt;
&lt;p&gt;[53:06] They say, you know, just really quick, like first line of the page, for a real world site with three megabytes of JavaScript, updating the React dependency resulted in a 71 percent smaller download and a 28 percent faster startup time on an old phone. So I don&#39;t know exactly what the process of using this tool looks like, but.&lt;/p&gt;
&lt;p&gt;[53:24] Seems like a pretty compelling performance improvement. Reverse JS bundler, new category of infrastructure maybe.&lt;/p&gt;
&lt;p&gt;[53:31] That&#39;s everything I got, thank you everyone for joining us. We&#39;ll be back at the end of this month because we&#39;re recording late. We record on the last Wednesday of every month here in the live stage of Reactiflux, and we&#39;ll try to get back in your pod feed as soon as we can after that.&lt;/p&gt;
&lt;p&gt;[53:45] We gather sources from This Week in React by Sebastian Lorber, from Bytes. dev, Reactstatus, React JS Weekly, react Digest, the React JS subreddit here in Reactiflux, and direct from people publishing articles. If you see anything newsworthy, definitely let us know in the #tech-reads-and-news channel in Reactiflux, or you can email me directly at &lt;a href=&quot;mailto:hello@reactiflux.com&quot;&gt;hello@reactiflux.com&lt;/a&gt;. Send that with TMIR in the subject line just to help me find it. It&#39;s an acronym for the show.&lt;/p&gt;
&lt;p&gt;[54:13] I read literally every email that comes in, usually even the ones that are marked as spam, so if you send me an email, it&#39;ll go in my brain.&lt;/p&gt;
&lt;p&gt;[54:20] If this is a show that you get value from and want to support, best way to do so, share it, send it to your co workers, say, hey, this seems like a really useful way to stay on top of everything.&lt;/p&gt;
&lt;p&gt;[54:29] And if you could leave us a review on Spotify or whatever platform that you listen on, that would be super helpful as well. I&#39;m also seeking sponsors for this. I&#39;m trying to professionalize. I&#39;ve got a new logo. Looks all nice and fancy. If you are interested in getting your product or company in front of a group of professional React engineers, definitely reach out.&lt;/p&gt;
&lt;p&gt;[54:50] Thanks so much. Talk to you next month.&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2024-04</link><guid isPermaLink="false">reactiflux-tmir-2024-04</guid><pubDate>Mon, 29 Apr 2024 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>This Month in React, March 2024: React canary is 19, New ShadCN bits, Astro looks like Wordpress. Wiz??</title><description>&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://open.spotify.com/show/4g3Le83YfsMeI8Fq3cpPeH&quot;&gt;Spotify&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://podcasts.apple.com/us/podcast/reactiflux-events/id1661733526&quot;&gt;Apple Podcasts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://anchor.fm/s/a1f8a59c/podcast/rss&quot;&gt;RSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://podcasters.spotify.com/pod/show/reactiflux&quot;&gt;or anywhere you prefer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;iframe src=&quot;https://podcasters.spotify.com/pod/show/reactiflux/embed/episodes/TMiR-2024-03-React-canary-is-19--New-ShadCN-bits--Astro-looks-like-Wordpress--Wiz-e2hsspd&quot; height=&quot;102px&quot; width=&quot;400px&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;Quick Hits
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-03#layoffs-seems-better&quot;&gt;00:39&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://layoffs.fyi/&quot;&gt;Layoffs.fyi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-03#new-releases&quot;&gt;01:20&lt;/a&gt;]&lt;/code&gt; New releases
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/facebook/react-native/releases&quot;&gt;React Native 0.74.0?&lt;/a&gt; Soon&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://reactnative.dev/docs/the-new-architecture/landing-page&quot;&gt;New Architecture docs page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-5-4/&quot;&gt;TS 5.4&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/sebmarkbage/status/1765828741500981475&quot;&gt;“This is how most dependency injection in React apps should be done”&lt;/a&gt; says Sebastian Markbåge&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/remix-run/remix/blob/main/CHANGELOG.md#v280&quot;&gt;Remix 2.8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://mantine.dev/changelog/7-7-0/&quot;&gt;Mantine v7.7.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://rsbuild.dev/community/releases/v0-5&quot;&gt;Rsbuild 0.5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://gleam.run/news/gleam-version-1/&quot;&gt;Gleam version 1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-03#shadcn-march-2024-update&quot;&gt;05:58&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://ui.shadcn.com/docs/changelog&quot;&gt;ShadCN March 2024 update&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-03#astro-45-astrodb&quot;&gt;06:55&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://astro.build/blog/astro-450/&quot;&gt;Astro 4.5&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://astro.build/blog/astro-db/&quot;&gt;Astro DB&lt;/a&gt;, &lt;a href=&quot;https://astro.build/blog/astro-db-deep-dive/&quot;&gt;Astro DB Deep Dive&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-03#upcoming-conferences&quot;&gt;09:58&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react.dev/community/conferences&quot;&gt;Upcoming conferences&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.epicweb.dev/conf&quot;&gt;Epic Web Conf 2024&lt;/a&gt; April 10 - 11; Park City, UT, USA&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;a href=&quot;https://reactmiami.com/&quot;&gt;React Miami 2024&lt;/a&gt; April 19 - 20; Miami, FL, USA
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;$50 off a ticket: &lt;code&gt;reactiflux4ever&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://reactconnection.io/&quot;&gt;React Connection 2024&lt;/a&gt; April 22; Paris, France&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://reactnativeconnection.io/&quot;&gt;React Native Connection 2024&lt;/a&gt; April 23; Paris, France&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.postman.com/&quot;&gt;Post/Con 2024&lt;/a&gt; April 30 - May 1; SF, CA, USA&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://conf.react.dev/&quot;&gt;React Conf 2024&lt;/a&gt; May 15 - 16; Henderson, NV, USA&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://appjs.co/&quot;&gt;App.js Conf 2024&lt;/a&gt; May 22 - 24; Kraków, Poland&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.localfirstconf.com/&quot;&gt;Local First Conf 2024&lt;/a&gt; May 30; Berlin, Germany&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-03#react-19-and-react-compiler&quot;&gt;10:58&lt;/a&gt;]&lt;/code&gt; React 19 and React Compiler
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/facebook/react/pull/28647&quot;&gt;Feature flags PR - “Canary now represents React 19”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/en_JS/status/1760433969118769654&quot;&gt;React 19 won’t include Compiler&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;a href=&quot;https://developerway.com/posts/react-compiler-soon&quot;&gt;React Compiler &amp;amp; React 19 - forget about memoization soon?&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.recompiled.dev/blog/ssa/&quot;&gt;“Compiler Theory and Reactivity”&lt;/a&gt; and &lt;a href=&quot;https://www.recompiled.dev/blog/type-system/&quot;&gt;“Type System”&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;a href=&quot;https://twitter.com/0xca0a/status/1766032105807483261&quot;&gt;Its-fine&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/facebook/react/pull/28524#issuecomment-1992607052&quot;&gt;sebmck and drcmda GitHub exchange&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-03#react-strict-dom-why-is-it-so-great?&quot;&gt;20:02&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://szymonrybczak.dev/blog/react-strict-dom&quot;&gt;&quot;react-strict-dom&quot;, why it&#39;s so great?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-03#server-components-updates&quot;&gt;23:42&lt;/a&gt;]&lt;/code&gt; RSCs
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://ondrejvelisek.github.io/conceptual-model-of-react-and-rsc/&quot;&gt;Conceptual Model of React and RSC&lt;/a&gt; Ondrej Velisek&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.builder.io/blog/why-react-server-components&quot;&gt;Why React Server Components Are Breaking Builds to Win Tomorrow&lt;/a&gt; Vishwas Gopinath&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://waku.gg/blog/introducing-pages-router&quot;&gt;Waku has released a “pages router”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Lee Robinson’s &lt;a href=&quot;https://twitter.com/leeerob/status/1772651496544317804&quot;&gt;List of projects experimenting with RSCs&lt;/a&gt; , including Redwood (&lt;a href=&quot;https://redwoodjs.com/blog/rsc-now-in-redwoodjs&quot;&gt;which just released an RSC beta&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://documenso.com/blog/removing-server-actions&quot;&gt;Embracing the Future and Moving Back Again: From Server Actions to tRPC&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-03#apple-walks-back-on-pwas-neat-safari-features&quot;&gt;29:06&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://webkit.org/blog/15063/webkit-features-in-safari-17-4/&quot;&gt;Webkit features in Safari 17.4&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-03#mental-health-in-open-source&quot;&gt;33:05&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://antfu.me/posts/mental-health-oss&quot;&gt;Mental Health in Open Source&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-03#angular-meet-wiz&quot;&gt;37:20&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://twitter.com/sarah_edo/status/1770478763253379488?t=zbCMEoxUsXuLGYtqt3ik8w&amp;amp;s=19&quot;&gt;Angular codebase is being merged with Wiz&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://youtu.be/nIBseTi6RVk?t=1869&quot;&gt;Announced at NGConf 2024&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-03#designing-very-large-javascript-applications&quot;&gt;38:49&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.industrialempathy.com/posts/designing-very-large-javascript-applications/&quot;&gt;Designing Very Large Javascript Applications&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/cramforce/status/958696304149868545?t=ETSaJnj2aX9Dnw_yPXgWBA&amp;amp;s=19&quot;&gt;Malte Ube discussed in 2018&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;⚡Lightning round ⚡
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-03#interaction-to-next-paint-new-core-web-vital&quot;&gt;43:56&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://web.dev/blog/inp-cwv-launch&quot;&gt;Interaction to Next Paint (INP) is a Core Web Vital&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.sentry.io/what-is-inp/&quot;&gt;What is INP and why you should care&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-03#rspack-charts-a-path-to-10&quot;&gt;44:56&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/web-infra-dev/rsbuild/discussions/1678&quot;&gt;Rsbuild 1.0 release plan&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-03#remix-might-merge-react-router-in&quot;&gt;45:42&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://twitter.com/ryanflorence/status/1767560366027129211&quot;&gt;React Router and Remix to be merged?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-03#declarative-shadow-dom-in-all-major-browsers&quot;&gt;46:08&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.mayank.co/blog/declarative-shadow-dom-guide&quot;&gt;Declarative Shadow DOM available in all major browsers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-03#react-native-community-map&quot;&gt;47:05&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/kelset/react-native-community-map&quot;&gt;React Native community map&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-03#nodejs-2023-year-in-review&quot;&gt;47:34&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://blog.rafaelgss.dev/nodejs-2023-year-in-review&quot;&gt;Node.js 2023 Year in An Article&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-03#tailwind-preview-of-40&quot;&gt;48:57&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://tailwindcss.com/blog/tailwindcss-v4-alpha&quot;&gt;Open-sourcing our progress on Tailwind CSS v4.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-03#vercel-adds-remix+vite-support&quot;&gt;49:26&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://vercel.com/changelog/support-for-remix-with-vite&quot;&gt;Vercel adds support for Remix+Vite&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-03#navigating-the-future-of-frontend&quot;&gt;50:05&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://frontendmastery.com/posts/navigating-the-future-of-frontend/&quot;&gt;Navigating the future of frontend&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;[00:00] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Thanks for joining us for March&#39;s This Month in React! Coming to you live from Reactiflux, the Discord for React professionals. I&#39;m Carl. I&#39;m a staff product developer and freelance community manager here at Reactiflux.&lt;/p&gt;
&lt;p&gt;[00:13] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Hi, I&#39;m Mark Erikson. My day job, I work at Replay. io, where we&#39;re building a time traveling debugger for JavaScript, and outside of that, I do Redux stuff.&lt;/p&gt;
&lt;p&gt;[00:22] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; We got a lot of good stuff to discuss and digest here. Lot more details coming out for React 19. We got TypeScript 5. 4, and lots of interesting stuff kind of at the margins. Not really core tools or libraries within React necessarily, but a lot of things all over the place.&lt;/p&gt;
&lt;h2 id=&quot;layoffs-seems-better&quot;&gt;Layoffs (seems better!)&lt;/h2&gt;
&lt;p&gt;[00:39] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I&#39;m going to start off with some layoffs news. At time of recording, you know, it&#39;s the 27th, so we&#39;ll have to see if anything else happens, but layoffs.fyi is showing 33 companies with layoffs, which is the fewest layoffs by count in that way in close to two years, since April 2022. So nice to see that number go down.&lt;/p&gt;
&lt;p&gt;[00:58] This month has about 7, 200 laid off so far, which is on the lower end, it&#39;s not the lowest of the last year, but it&#39;s towards the lower end of the average range. Last March, so one year ago, there were 122 layoffs with about 38, 000 affected. So, 33 layoffs with about 7, 000 affected is a large decline, so that&#39;s nice. That&#39;s pretty good.&lt;/p&gt;
&lt;h2 id=&quot;new-releases&quot;&gt;New releases&lt;/h2&gt;
&lt;p&gt;[01:20] On to some new releases. We have a pretty big list this month.&lt;/p&gt;
&lt;p&gt;[01:23] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; We&#39;ve got some news from React Native. They are going to be putting out a 0. 74 release soon. They&#39;ve had a really cool post up , or I guess like a docs page, talking about their new architecture. Not a ton of super concrete items coming out in there. But they did talk a lot about the general new architecture, re architecting how React Native works. We&#39;re going to talk a little bit about some of that, too, later on, talking about React Strict DOM, that package that they released last month.&lt;/p&gt;
&lt;p&gt;[01:53] Moving on a bit, TypeScript 5. 4, sounds like it&#39;s not a huge release, but One thing that I thought was super notable, worth taking note of, they are recommending against using the compiler options paths configuration flag in favor of package. json imports. Since you use the paths for import aliases, moving that out of a TypeScript specific configuration option and into a general module configuration option I think is absolutely phenomenal.&lt;/p&gt;
&lt;p&gt;[02:23] Getting that standardized I think is going to simplify a lot of things.&lt;/p&gt;
&lt;p&gt;[02:26] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; It&#39;s particularly interesting because I&#39;ve seen other tools actually start to use TypeScript&#39;s own paths option as the source of truth. So, I guess, you know, switching over to a package. json setup is making it more tool agnostic, in a way, but the question as always is, how long will it take for other tools to also support that kind of configuration?&lt;/p&gt;
&lt;p&gt;[02:47] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I am just excited to see something go out from, I don&#39;t know, kind of move from TypeScript into standards, but yeah, generally seems like a quieter release.&lt;/p&gt;
&lt;p&gt;[02:56] NoInfer is one of the biggest things they called out and sounds like it&#39;s mostly useful in library contexts. Mark, you did point out something coming up in 5. 5 that looks really interesting though, you want to introduce that?&lt;/p&gt;
&lt;p&gt;[03:10] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; TypeScript has the idea of, I&#39;m always a little hazy on the terminology, typeguards or predicates, which are functions that take some object and you assert at the type level that if the function returns true, then the type of the value must be this thing.&lt;/p&gt;
&lt;p&gt;[03:25] And so it&#39;s a way to mix together control flow and telling TypeScript what a thing looks like at compile time. And the problem is that when you do an operation like array filtering, that has not actually done the type narrowing that you might expect. So, you might be filtering to ensure that, you know, the returned array only contains real values and removes null or undefined, but TypeScript wouldn&#39;t actually pick up on that so far.&lt;/p&gt;
&lt;p&gt;[03:51] And so you might have to do, like, an extra cast or some other check to make sure that the output array has the correct type. Well, TypeScript 5. 5, which should be out in a few months, actually now has a PR merged that uses TypeScript&#39;s existing inference in new ways inside of filter functions so that you can do normal logic when filtering and TypeScript will try to narrow down the returned array type based on the logic in the filter callback.&lt;/p&gt;
&lt;p&gt;[04:18] It&#39;s not a huge deal, but it&#39;s gonna be a nice little quality of life thing. And then I also saw a tweet mentioning that the TypeScript team is continuing to do work on the publishing process to try to shrink the install size. I think as of, like, TS 4. 9. Installing TypeScript was around 50 megs. They did a lot of work with TS 5. 0 to change their internal setup, which dropped it to like 30. And it looks like as of 5. 5, it might be down to 20 ish or so. So, you know, hey, smaller install size, always a good thing.&lt;/p&gt;
&lt;p&gt;[04:50] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Much, much later, I&#39;m going to talk a little bit about a Node. js 2023 year in review, and that has the opposite trend. It has a chart in there showing the binary size for the Linux binary for Node. js, and it is much, much larger than it used to be. So, good to see that TypeScript is going the other direction. Maybe they can cancel each other out a little bit.&lt;/p&gt;
&lt;p&gt;[05:09] I&#39;m just going to run through a bunch of other releases pretty quick.&lt;/p&gt;
&lt;p&gt;[05:12] Remix released 2. 8. Looks like it&#39;s just a bunch of minor changes, configuration stuff.&lt;/p&gt;
&lt;p&gt;[05:17] Mantine has 7. 7 out. I didn&#39;t see any changes in there that really jumped out to me. It looks like a bunch of new components, a couple new hooks. useStateHistory looks neat, undo is always a challenge.&lt;/p&gt;
&lt;p&gt;[05:29] RSBuild released a version, 0. 5, which they say it&#39;s most of a 1. 0 release that will happen approximately in Q3 of this year, but it&#39;ll be much, much later this year.&lt;/p&gt;
&lt;p&gt;[05:40] I saw a cool fringe language inspired by Elm. Gleam, released a version 1. First stable release of a new experimental language. I always need to see how people play around with different languages. It says it&#39;s inspired by languages such as Elm, OCaml, and Rust. Experimental languages. Lots of stuff going on there.&lt;/p&gt;
&lt;h2 id=&quot;shadcn-march-2024-update&quot;&gt;ShadCN March 2024 update&lt;/h2&gt;
&lt;p&gt;[05:58] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Okay, here&#39;s another big one. We&#39;ve got some ShadCN new updates. They put out a March 2024 update, which is the first time they have done one of these update posts since I think December. So definitely worth calling out. It looks like the single biggest new thing that they have is blocks, they call it.&lt;/p&gt;
&lt;p&gt;[06:15] Which looks like it&#39;s basically template pages for very common and like very low differentiation application pages like a settings UI, or two factor, an authentication page, some other things like that, so it&#39;s basically just, copy these out, use it yourself. It looks neat. It looks exactly like every instance of those pages that I&#39;ve done many times over my career.&lt;/p&gt;
&lt;p&gt;[06:36] So having a nice copy paste target for that is, seems super helpful. They also had one for an input one time password, like the classic, you know, paste in these six digits and it will appear in nice pretty blocks. Again, something I&#39;ve implemented many times and there&#39;s never any variation, but for some reason you can never use the last one you did, so nice to see that.&lt;/p&gt;
&lt;h2 id=&quot;astro-45-astrodb&quot;&gt;Astro 4.5, AstroDB&lt;/h2&gt;
&lt;p&gt;[06:55] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; One more big one here that I&#39;m just going to kind of blast through because I find it interesting. So Astro, the static site generator, I guess. I don&#39;t know if that&#39;s quite accurate, but.&lt;/p&gt;
&lt;p&gt;[07:05] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Close enough for now.&lt;/p&gt;
&lt;p&gt;[07:07] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; They released 4. 5, improved developer experience, a dev audit UI for site performance and accessibility issues, which is cool. They are announcing that they&#39;re offering a hosted database in conjunction with their site generation, the site building tool. They&#39;re calling it &quot;the database platform for content driven websites&quot; and also describe it as &quot;Astro DB is a fully managed SQL database designed exclusively for Astro.&quot; it&#39;s got Drizzle built in and uses LibSQL.&lt;/p&gt;
&lt;p&gt;[07:37] Apparently Lib SQL is a fork of SQLite, which, they posted a deep dive that goes into a lot of the sort of the history and how this whole thing unfolded. And they talk about trying to make it work spring of last year with SQLite, but they ran into constraints with the fact that SQLite relies on compiled components within it, the C native code produced performance constraints that didn&#39;t really work very well within serverless environments. So they then tried again with this fork of SQLite that does not use those same native compiled, subcomponents within it. that&#39;s super cool, I think this is neat.&lt;/p&gt;
&lt;p&gt;[08:11] It sounds like they&#39;re very much positioning themselves as a WordPress competitor. So it&#39;s, you know, content driven websites with an included database. Like, that sounds like WordPress to me. So I think that&#39;s pretty cool. Astro&#39;s been doing a lot of things, this really does seem like a substantial change to the core offering.&lt;/p&gt;
&lt;p&gt;[08:29] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; And purely from a technical perspective, it is interesting to see that there&#39;s been a number of tools and services that are being built using SQLite as more than just like a local datastore as of late.&lt;/p&gt;
&lt;p&gt;[08:40] I think Cloudflare Durable Objects, are built on SQLite. You&#39;ve got this AstroDB, I think I&#39;ve seen a couple other tools as well. A lot of tools that are basing themselves around SQLite in some way.&lt;/p&gt;
&lt;p&gt;[08:52] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, definitely. I read a really good blog post talking about why SQLite makes sense in a lot more contexts than we&#39;ve generally given it credit for.&lt;/p&gt;
&lt;p&gt;[09:01] And, yeah, it seems like people are really experimenting in real meaningful ways with different places to use it, which I think is awesome. I think it&#39;s a great project. You know, co locate your database with your executing code because it&#39;s small and fast, keep it a single binary.&lt;/p&gt;
&lt;p&gt;[09:15] Yeah, this is not quite directly related, but while we&#39;re talking about databases, I also heard about, PGLite, which is a Postgres implementation packaged as a WASM module, which, that&#39;s neat.&lt;/p&gt;
&lt;p&gt;[09:27] It&#39;s not quite SQLite, but if you need a database in your browser app, it seems like a cool new option.&lt;/p&gt;
&lt;p&gt;[09:34] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; There&#39;s probably also some kind of application for, I don&#39;t know, running end to end tests in the back end with that as like an in memory database or something like that?&lt;/p&gt;
&lt;p&gt;[09:43] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, that&#39;s actually, that blog post I mentioned about SQLite, that was one of the things that they&#39;ve said that SQLite has been relegated to just being like the test database because it&#39;s, you know, super fast and, you know, super easy to spin up. So, yeah. Definitely makes sense in those sorts of contexts.&lt;/p&gt;
&lt;h2 id=&quot;upcoming-conferences&quot;&gt;Upcoming conferences&lt;/h2&gt;
&lt;p&gt;[09:58] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Blasting through conferences.&lt;/p&gt;
&lt;p&gt;[09:59] Epic Web is coming up April 10th and 11th in Park City, Utah.&lt;/p&gt;
&lt;p&gt;[10:03] React Miami, Mark and I will both be there, is April 19th. We actually have a discount code. So if you are interested in going to React Miami, make sure to, one, get your ticket soon, cause it&#39;s in like three weeks, and get your ticket with the code REACTIFLUX4EVER with number 4.&lt;/p&gt;
&lt;p&gt;[10:21] Very much looking forward to that though. There&#39;s React Connection and React Native Connection on April 22nd and 23rd in Paris.&lt;/p&gt;
&lt;p&gt;[10:27] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; And I will be speaking there going straight from Miami.&lt;/p&gt;
&lt;p&gt;[10:30] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Haa, wonderful, yeah, 20th to 22nd, that&#39;s a quick turn for an international flight across the Atlantic.&lt;/p&gt;
&lt;p&gt;[10:36] There&#39;s PostCon April 30th and May 1st. That&#39;s from Postman. So they&#39;re doing like an API conference, they&#39;re calling it.&lt;/p&gt;
&lt;p&gt;[10:42] And then the big one, React Conf, is happening May 15th and 16th in Henderson, Nevada, just outside Las Vegas. Cool.&lt;/p&gt;
&lt;p&gt;[10:50] Alright, whew, we finally made it to the main bulk of the content. Yeah, Mark, you want to take us off with our first set of discussions?&lt;/p&gt;
&lt;h2 id=&quot;react-19-and-react-compiler&quot;&gt;React 19 and React Compiler&lt;/h2&gt;
&lt;p&gt;[10:58] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Alright, so there&#39;s a number of pieces of news around React 19 and the React compiler tool that was announced a couple months ago. So first off, I saw a PR go up just a day or so ago. React&#39;s codebase has lots of feature flags because they build React for many different use cases. There&#39;s internal Facebook builds, public open source builds, React Native builds, experimental builds, canary builds, lots of different combinations.&lt;/p&gt;
&lt;p&gt;[11:23] And so the React team is constantly adding new feature flags, altering the feature flags, changing the default value. And so this PR makes it sound as though what&#39;s in Canary right now is what&#39;s expected to go into React 19. So that sounds like a, you know, fairly meaningful step towards a potential React 19 release.&lt;/p&gt;
&lt;p&gt;[11:43] Also, if you&#39;ve just been keeping an eye on the list of pull requests in the repository, there have been a ton of internal cleanup PRs where they&#39;ve been changing over a lot of the existing tests to actually use some of the more modern React APIs, like, uh, React on client slash render, instead of the old React render, et cetera.&lt;/p&gt;
&lt;p&gt;[12:01] One thing that wasn&#39;t entirely clear from the React labs blog post in February is that React 19 and React compiler are not directly tied together. They&#39;re both things that are in progress, but React compiler is a separate project. And it probably will come out sometime after React 19 is released. So, different projects, separate schedules, but still both very much in flight.&lt;/p&gt;
&lt;p&gt;[12:29] Speaking of React Compiler, there&#39;s been a couple good posts discussing how it works and what practical effects it&#39;ll have. Nadia Makarevich has done multiple great blog posts about React rendering somewhat similar to the post that I had written a while back. And she put up a post talking about React 19 and React Compiler and, you know, some of the practical benefits like not having to write code that does a lot of your own memoization logic because the compiler will do it for you and it will help with rendering performance.&lt;/p&gt;
&lt;p&gt;[12:59] And then, Satya, who is on the actual React compiler team, and has popped in and hung around Reactiflux a decent amount, put up a couple really good posts talking about the internal implementation details of the compiler itself. The compiler is currently exposed to the world as a Babel plugin, but that&#39;s more for ease of integration with the existing build tool ecosystem.&lt;/p&gt;
&lt;p&gt;[13:24] The way I understand it is that the Babel plugin basically acts as just kind of like an outer shell and then all the real logic is like a full blown compiler from scratch that the Babel plugin kind of forwards everything to.&lt;/p&gt;
&lt;p&gt;[13:38] So, you know, perhaps at first to make use of it. You would need to have Babel set up, but with the way they&#39;ve got it designed, they would eventually be able to, you know, maybe expose it as, you know, an SWC plugin, or its own standalone tool, or something like that. Also, sort of tied to React 19, there was, I don&#39;t know, maybe controversy is a little strong, but kerfluffle? Annoyance? Frustration back and forth?&lt;/p&gt;
&lt;p&gt;[14:03] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; A joke that didn&#39;t land.&lt;/p&gt;
&lt;p&gt;[14:04] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yeah. So, a little bit of background. The React Three Fiber ecosystem is pretty large. uh, DRCMDA, however you pronounce his username, uh, I think his name&#39;s Paul Henschel, and a bunch of other folks have done some amazing work over the last few years to create a React renderer that wraps the three.js 3D WebGL library so that you can write React components that render full blown 3D scenes and control them. And while I have not played with this myself, I&#39;ve seen lots of examples and snippets and videos of some incredibly impressive demos and apps and tools that they&#39;ve built over the last few years.&lt;/p&gt;
&lt;p&gt;[14:44] Now, one issue is that React three fiber is its own separate React renderer different from React DOM. Like, they both have their own copies of React&#39;s core logic embedded in them. And React has a limitation that different renderers in the same program don&#39;t actually know about each other. And so, if you think about a typical web app, you&#39;re probably using React DOM to render the outer page, and then you might be using React Three Fiber to render, you know, like a 3D animated scene or a game or something inside of the page.&lt;/p&gt;
&lt;p&gt;[15:22] And the problem is that if you try to render a context provider, In, like, React DOM, React Three Fiber will not see it, because they are effectively totally separate worlds that just happen to be nested in each other. And so, there was a PR, there was an issue request all the way back in 2019, where some folks like the React Three Fiber people were asking, &quot; Can React add a way to try to share context?&quot;&lt;/p&gt;
&lt;p&gt;[15:48] between renderers. And that PR has been open for a long time, er, issue, and nothing&#39;s happened with it. So, the React Three Fiber folks ended up writing a very intentionally hacky package called &lt;code&gt;its-fine&lt;/code&gt;, which, you know, references that goofy little, like, dog in the fire meme. It very intentionally reaches into React&#39;s internals and accesses fields that you&#39;re not supposed to be able to grab context instances from.&lt;/p&gt;
&lt;p&gt;[16:15] And pass them across the renderer boundary so that you could have like your context provider with user data or something at the top of the whole application and both React DOM and React Three Fiber could read from it. Well, a few weeks ago, Sebastien Mårkbage from the React team put up a tweet where he linked to the dependents of the it&#39;s fine package and said, &quot; yeah, this is a list of Packages and tools that will break in React 19,&quot; which is fair.&lt;/p&gt;
&lt;p&gt;[16:41] I mean, it&#39;s a package that intentionally reaches into React&#39;s internals. You have to expect that there&#39;s going to be breakage. So that&#39;s a very legitimate observation.&lt;/p&gt;
&lt;p&gt;[16:50] But then it kind of went off the rails a little bit. Another one of the React team members, Rick Hanlon, actually posted a PR in the React repo that he labeled, &quot; it&#39;s not fine,&quot; and that PR literally just looks for the existence of the it&#39;s fine package in your project and throws an error if it&#39;s detected. Now, while he didn&#39;t explicitly say it in the initial version of the PR, it was obvious this was a joke and it was never going to be merged. But, I&#39;ll be honest, speaking personally, I found that joke to be in very bad taste.&lt;/p&gt;
&lt;p&gt;[17:23] To me, as a library maintainer, if people are writing code in a way that reaches into my own library&#39;s internals, that usually says to me that there&#39;s some use case that I haven&#39;t considered that I ought to at least think about trying to handle. and make a public API for. As an example, with React Redux, up through version 5, used the old style React context system.&lt;/p&gt;
&lt;p&gt;[17:50] And everybody knew that you could reach in and grab the Redux store by accessing &lt;code&gt;this.context.store&lt;/code&gt;, but it was never part of our public API. And so when we switched over to the new context API in version 6, Number one, all those old usages broke. And number two, we actually publicly added a useStore hook, that, you know, just grabs the store off of new context and returns it. And so it&#39;s not something we recommend using, but it&#39;s a thing people sometimes had a reason to do. And so we provided an API to do it.&lt;/p&gt;
&lt;p&gt;[18:26] So my stance as a maintainer and a community person here is that, number one, the joke PR was a bad idea. The React team has had enough issues with marketing and PR and DevRel.&lt;/p&gt;
&lt;p&gt;[18:39] Mistakes in the last few years and this really did not help the situation. And number two, you know, making the original observation that, hey, these things are going to break is fine, but maybe instead of making a joke, Pierre saying, &quot;haha, we&#39;re going to ban this package&quot;, maybe you should be trying to address the legitimate request for a way to use React that does not officially work right now.&lt;/p&gt;
&lt;p&gt;[19:02] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; It looks like this did turn into that as well. In a reply on that, you know, joke PR, Sebastien Mårkbage did come in with some like real analysis on, you know, he said, I spent some time investigation or investigating. &quot;The proper solution behaves like a portal should forward the value during a concurrent render into the child.&quot;&lt;/p&gt;
&lt;p&gt;[19:26] Yeah, it&#39;s, it basically, it sounds like what he was saying is, &quot; it&#39;s tough, it would require some adjustment to these other guarantees that we make, will take a fair amount of time to evaluate whether this is going to be actually possible. It&#39;s not our top priority because of the bit of a fringe need.&quot;&lt;/p&gt;
&lt;p&gt;[19:42] Which, all very fair. So I&#39;m glad this did come back and get some, like, real technical back and forth. it just felt like it felt a little bit like targeted and kind of mean spirited. So, you know, glad it came back and had some more meaningful discussion about the problem and what the right solution—&lt;/p&gt;
&lt;p&gt;[20:00] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; the technical feasibility aspect of it. Yeah.&lt;/p&gt;
&lt;h2 id=&quot;react-strict-dom-why-is-it-so-great&quot;&gt;React Strict DOM, Why is it so Great?&lt;/h2&gt;
&lt;p&gt;[20:02] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, most definitely.&lt;/p&gt;
&lt;p&gt;[20:04] Next one, there was a really great post called, React Strict DOM, Why is it so great? From Syzmon Rybczak? I am so sorry if I&#39;m murdering that, but, interestingly, he, he claims to be 17 and working at Callstack. So, wow, cool. This is a great post flat out. And this is a phenomenal post for a 17 year old developer. Like, wow, cool. Somebody to keep an eye on.&lt;/p&gt;
&lt;p&gt;[20:24] But, talking about, React Strict DOM, and, sort of the, Technical background of where it came from and contrasting it with React Native for web. Actually, as I was reading this, it reminded me of some of the discussion we&#39;ve had, but this is a really great long form write up of, that hits a lot of the same notes that we discussed previously, but with added benefit of pretty great technical diagrams made with Excalidraw . Yeah, definitely good to check out.&lt;/p&gt;
&lt;p&gt;[20:52] It talks about how React Native Web is It&#39;s ultimately a shim that offers compatibility with the React Native API, which the big downside of that is because of the approach it took, it is necessarily a relatively large shim, and adding A large core package to a web app, just it, it inflates the bundle significantly, more significantly than not using it, which is just the extra friction, which makes it just that much harder to get adoption.&lt;/p&gt;
&lt;p&gt;[21:23] And since React Native Web didn&#39;t really get adoption. So the React strict DOM approach sort of comes at it backwards, where it takes web APIs to render components out and, because it is taking such a different approach to a similar problem, it is able to keep the size of this shim, this compatibility layer, much, much smaller.&lt;/p&gt;
&lt;p&gt;[21:44] So it looks like the core of it is coming from these two CSS and HTML exports from the ReactStrict DOM package, and those are how React Native would then understand how to handle these UI primitives.&lt;/p&gt;
&lt;p&gt;[21:59] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yeah, another way to put it is that the React Native web package gave you what looked like React Native components, so you would write your web code as if it were targeting React Native.&lt;/p&gt;
&lt;p&gt;[22:12] With React Script Dom, it&#39;s flipped, so that you&#39;re You write React Native code as if you were targeting the web, and so you write, you know, your components return a, quote, div on both platforms, but now with React Strict DOM, what you said was a div on native actually becomes a React Native view instead.&lt;/p&gt;
&lt;p&gt;[22:33] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yes. Thank you for that. I guess I didn&#39;t realize that the React Strict DOM package is built on StyleX? Like it looks like that is very core to what is enabling this, I guess? I know you have explained StyleX to me at least once before and I just don&#39;t have a, it doesn&#39;t, it didn&#39;t stick in my brain.&lt;/p&gt;
&lt;p&gt;[22:50] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; As usual, I&#39;ve only glanced at it myself.&lt;/p&gt;
&lt;p&gt;[22:52] It is yet another CSS in JS type tool. It was developed internally at Meta, like many of the other tools that they&#39;ve put out there. As I understand it, some of the defining features are it&#39;s more of a compile time tool instead of runtime. And I believe it compiles down to more of an atomic CSS setup so that it.&lt;/p&gt;
&lt;p&gt;[23:14] Like over time, the amount of extra styles that get generated stay pretty limited because, you know, like everywhere you use like a certain margin size or something that only ultimately adds one rule to the code base.&lt;/p&gt;
&lt;p&gt;[23:28] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; It&#39;s definitely similar ish to the like compiler for the Tailwind compiler works ish, but operating on a different set of, uh, underlying primitives.&lt;/p&gt;
&lt;p&gt;[23:37] Very interesting. Didn&#39;t realize that it was so connected to React strict DOM. So that&#39;s pretty cool.&lt;/p&gt;
&lt;h2 id=&quot;server-components-updates&quot;&gt;Server Components updates&lt;/h2&gt;
&lt;p&gt;[23:42] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Moving right along, we have a few different articles and bits of information related to server components. There was A couple articles that discussed kind of like some of the philosophical or conceptual model of React and server components.&lt;/p&gt;
&lt;p&gt;[23:57] There was one article in particular that tried to go back to React&#39;s, early selling point of your UI is a function of state. And, when we say state, we normally think about state in components, or maybe state in, you know, You know, an external state library like Redux or Jotai or something. The article makes the point that there could actually be lots and lots of sources of state in your application.&lt;/p&gt;
&lt;p&gt;[24:22] You know, there&#39;s the URL, there&#39;s server files, there&#39;s the current time, operating system settings, environment variables, You know, lots of different potential sources of state. And so, you know, kind of walking back philosophically about, you know, how do these concepts tie together. And the author goes in a couple different directions.&lt;/p&gt;
&lt;p&gt;[24:40] On the one hand, extrapolating some of React&#39;s principles, you know, the React team has always been very focused on composability. And that&#39;s why we ended up with the custom hooks model that we did, because it enables arbitrary composition of hooks. On the other hand, the author also put up a follow up post saying that they think that Next actually kind of breaks some of these React fundamentals with the way that server components work and some of the way you have to actually structure your code base and your data flow.&lt;/p&gt;
&lt;p&gt;[25:10] I don&#39;t have a particularly strong opinion here, but it&#39;s always nice to see people actually kind of thinking through the concepts and the consequences involved.&lt;/p&gt;
&lt;p&gt;[25:18] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, and I really like the focus on. Discussing what state is. I feel like the, you know, the React ecosystem has been talking about state and state management for so long that, you know, there&#39;s always a game of telephone that happens in trying to communicate concepts out.&lt;/p&gt;
&lt;p&gt;[25:34] And I feel like where that has ended up over the years in the React ecosystem is people think state is a single blob of JSON. You know, that their app uses. But what this article is bringing back up is like, no, that&#39;s not the only type of state. State is something that your app needs to track in order to function correctly.&lt;/p&gt;
&lt;p&gt;[25:55] So yeah, I just wanted to call that out. I think that&#39;s a really useful clarification.&lt;/p&gt;
&lt;p&gt;[26:00] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; There was also a pretty good post over at Builder. io entitled, Why React Server Components are Breaking Builds to Win Tomorrow. I actually didn&#39;t quite catch the where in this it&#39;s talking about the breaking builds concept specifically, but it does a pretty good job of talking about the different concepts of rendering on the client, versus rendering on the server, versus streaming HTML, and how suspense and server components actually make some of these capabilities possible. So it&#39;s a pretty good kind of like technical architectural walkthrough.&lt;/p&gt;
&lt;p&gt;[26:31] Moving on a little further to the ecosystem. The Waku project from Daishikado, who&#39;s the author of Jotai and Valtio and Maintainer as Zustand, is making good progress. They&#39;ve announced that they&#39;re working on a Pages router.&lt;/p&gt;
&lt;p&gt;[26:44] And I believe they&#39;re up to version 0. 20. Not sure what the roadmap is to 1. 0, but it&#39;s definitely a nice alternative approach to what we&#39;ve seen with Next. And I believe they&#39;re pretty serious about trying to make it like a full blown, meaningful, usable framework based on server components. Similarly, Lee Robinson from Vercel actually just tweeted out a list of at least a half dozen different projects that are working on server component support in some fashion.&lt;/p&gt;
&lt;p&gt;[27:14] And so there&#39;s definitely work being done in the ecosystem. More specifically, the Redwood project. which originally went all in on GraphQL as the back end, just announced that they have finally managed to succeed in integrating server components. And I think they actually put up a post a few months ago saying that we are all in on server components as a concept.&lt;/p&gt;
&lt;p&gt;[27:36] So, server components have been out in Next for a while. We know that Remix is working on them, but there&#39;s other tools and frameworks that are trying to adopt them as well. And finally, I, one slight counterpoint, found an article just a little bit earlier where a company said, you know, we&#39;ve tried server components and we like them, and we tried the new React server actions support.&lt;/p&gt;
&lt;p&gt;[27:57] But they ran into a few technical details, or technical issues. They didn&#39;t get a lot of details. It looked like something about some bundle problems, and then they felt that there was too much magic going on at the architectural level, and so they actually dropped server actions and went back to using tRPC instead.&lt;/p&gt;
&lt;p&gt;[28:13] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Interesting. Yeah. Too much magic is a very hand wavy type of complaint that can be used for all sorts of different, uh, underlying problems. So I&#39;m curious what some more of those technical details would have been. But it&#39;s cool to see more experimentation and a wider range of experiments being done with server components generally.&lt;/p&gt;
&lt;p&gt;[28:33] When we first talked about WACU, I kind of expected it to be like just sort of an experiment, just sort of a like trial, because we&#39;d seen a couple of those. We&#39;ve seen, we had seen a couple of people just throwing together a project, doing it for learning, doing it to just explore. There&#39;s been. Pretty consistent development on Waku, so very interesting to see.&lt;/p&gt;
&lt;p&gt;[28:52] We&#39;ll have to see if it grows into a, like, serious competitor framework for, you know, okay, like, if it makes it to Remix or Next tier, then I would be very impressed. But, you know, they&#39;re definitely working on it in a much more meaningful way than I was anticipating originally.&lt;/p&gt;
&lt;h2 id=&quot;apple-walks-back-on-pwas-neat-safari-features&quot;&gt;Apple walks back on PWAs, neat Safari features&lt;/h2&gt;
&lt;p&gt;[29:06] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; A bit of a follow up to something we talked about last month of, uh, Apple&#39;s Attempted undoing of PWAs attempted.&lt;/p&gt;
&lt;p&gt;[29:15] I don&#39;t know how to frame that, but the last month. Apple announced they were going to drop support for progressive web applications for installing a web app to your home screen. They very quickly walked that back. And actually now, like I was just checking in on WebKit updates and they&#39;re adding more support for progressive web apps.&lt;/p&gt;
&lt;p&gt;[29:32] They are most specifically, they&#39;re going to be supporting the shortcuts manifest property, which allows you to add context items for the home icon. So, you know. On a Mac, if you add it to the dock, you can right click on it and it will show up a couple of options that take you to specific URLs within the app.&lt;/p&gt;
&lt;p&gt;[29:51] So, you know, it&#39;s a shortcut. It&#39;s a context item for your home screen icon that takes you to somewhere specifically within the app. Like, these are the kind of things that Like what progressive web apps have been a thing for like a decade now. Like there was never a technical reason why Apple could not support shortcuts in this.&lt;/p&gt;
&lt;p&gt;[30:08] So this feels like a shift of tack to more meaningfully support progressive web apps so that they can entrench themselves and say like, no, look, we are, we do support alternatives. We&#39;re not a monopoly while they&#39;re defending lawsuits against the iPhone and app store. So cool. You know, if that ends up bringing more meaningful support of progressive web apps. Uh, I&#39;m pretty excited. You have to see how that shakes out though.&lt;/p&gt;
&lt;p&gt;[30:32] Another small, interesting thing coming from here, not related to progressive web apps, just Safari web kit features. They added a like progressive enhancement type option for checkbox. So they added a switch attribute to the input in Safari.&lt;/p&gt;
&lt;p&gt;[30:48] So if you say input type checkbox switch. It will render as a switch. It was one of those solutions that felt really obvious in hindsight, and I have implemented so many switches in my career, and they are a pain in the butt to get to work correctly. So having a native option, like, now I want Chrome and Firefox to roll it out, like, immediately, because it is Just a great improvement.&lt;/p&gt;
&lt;p&gt;[31:08] It&#39;s a very small, but very meaningful improvement. I love to see, it&#39;s not even like innovation in form inputs. It&#39;s just like fixing a problem, fixing something that&#39;s been missing for 15 years at this point.&lt;/p&gt;
&lt;p&gt;[31:21] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Nicole, who had been heading up a lot of Chrome&#39;s work around interacting with frameworks, I know that she had spearheaded a lot of efforts to try to improve native form controls as a concept.&lt;/p&gt;
&lt;p&gt;[31:33] I also know there&#39;s a project called Open UI, which is somewhere between let&#39;s build another set of web components, but also let&#39;s kind of like prototype and experiment with what additional built in browser forms and features would look like. And what if there were a tabs or a carousel kind of control built into browsers natively?&lt;/p&gt;
&lt;p&gt;[31:56] And so they&#39;ve been doing work to try to spec those out.&lt;/p&gt;
&lt;p&gt;[31:59] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Oh, very cool. In some ways, I feel like in trying to be agnostic and provide maximum flexibility to developers, I feel like we used to have, like, the operating systems, before everything moved into being web based, operating systems provided, like, a very limited toolkit of, like, here are your UI elements.&lt;/p&gt;
&lt;p&gt;[32:18] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; And bring back the styled win Windows XP Common Controls, Doug on it. .&lt;/p&gt;
&lt;p&gt;[32:23] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Right, right. Where&#39;s the, where&#39;s the Windows 95, you know, tab list? Like, okay. Sure. Uh, we&#39;ve had a lot more experimentation in different types of UIs and different types of ex uh, different types of user experiences. But like, man, you know, it&#39;s, I feel like it&#39;s also gotten super fragmented.&lt;/p&gt;
&lt;p&gt;[32:38] And so maybe this is the pendulum. Maybe, you know, it went, it started by technical necessity on a super constrained set of core components that you just added. And then we went all the way, maximum flexibility. You can do anything you want, anything and everything. And now people are going like, uh, I&#39;m tired of figuring out new unfamiliar UIs.&lt;/p&gt;
&lt;p&gt;[32:57] I&#39;m tired of implementing things from scratch. So, uh, yeah, I, maybe we&#39;ll. Consolidate a little more back on a simpler set of UI primitives.&lt;/p&gt;
&lt;h2 id=&quot;mental-health-in-open-source&quot;&gt;Mental Health in Open Source&lt;/h2&gt;
&lt;p&gt;[33:05] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; All right, changing topics completely. There was an excellent article this week from Anthony Fu, who is a prolific maintainer and developer within the Vite and Vue ecosystems.&lt;/p&gt;
&lt;p&gt;[33:17] And, you know, strictly speaking, this has nothing to do with React, but it is an excellent article. And so he wrote about mental health in open source. And he talked about, you know, he got involved in open source kind of by accident. Thanks And he made a lot of great points that absolutely resonated with me.&lt;/p&gt;
&lt;p&gt;[33:34] Like, as a fellow open source maintainer, I 100 percent absolutely agree and endorse and stamp and repeat every single thing that he said in this post. So we talked about, you know, not being prepared, like, as a maintainer, you are a developer, and tech support, and marketing, and docs writer, and team leader, and project manager, and, you know, a whole bunch of other hats, and nobody teaches you how to do any of this stuff.&lt;/p&gt;
&lt;p&gt;[34:03] But there&#39;s also a really big problem with expectations, both internal and external. You know, users file bug reports, and they expect their bug to be fixed right away. But then, as a maintainer, you also put a lot of pressure on yourself to try to get stuff done. And I unfortunately am very guilty of this.&lt;/p&gt;
&lt;p&gt;[34:21] I routinely have put far too much expectations and self responsibility to get certain things done. And then I feel bad when I don&#39;t live up to my own expectations. As an example, I&#39;ve said that this year I want to do a refresh pass on the Redux docs tutorials. And I&#39;ve sat down like three different evenings and made some progress on it, but I&#39;ve been otherwise focused on some different things and my brain is yelling at me because I quote, haven&#39;t made as much progress as I should have made by the end of March.&lt;/p&gt;
&lt;p&gt;[34:54] Nobody&#39;s watching me. Nobody is keeping track. Like, I&#39;ve tweeted that I was gonna do this, but like, no one is watching me. It&#39;s my own head that is yelling at me because I don&#39;t feel like I&#39;ve gotten enough done. And so Anthony has, you know, some similar points that he makes in his post. And then he also talks about, you know, in some ways your dream of working on this tool can become its own entire second job.&lt;/p&gt;
&lt;p&gt;[35:17] So there&#39;s not like a specific solution that he discusses, but everything he said on that post, like is absolutely my own experience and it&#39;s very much worth reading.&lt;/p&gt;
&lt;p&gt;[35:28] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Definitely worth reading. You have a lot of good things to say about like making your hobby, your job, that definitely resonates with me because that&#39;s kind of what I&#39;ve been trying to do with the community stuff here in Reactiflux, part of why we are doing this podcast is because I thought, you know what, podcasts, that&#39;s the way to make money, not that it&#39;s worked yet, but you know, hey, sooner or later.&lt;/p&gt;
&lt;p&gt;[35:48] But yeah, this is, I definitely thought this was a really great and, I think it&#39;s a pretty vulnerable post. He&#39;s being very open about the difficulty of taking on this category of work. So yeah, also he talks, he says in the beginning, it&#39;s been about four years since I started doing open source and that&#39;s like, man, that puts him at.&lt;/p&gt;
&lt;p&gt;[36:07] 2019, 2020? 2020? That&#39;s four years ago? What? I don&#39;t know. This blew my mind a little bit. I have never been an open source maintainer, really. I did briefly take over a, you know, abandoned project and did a little bit of work on it. But, you know, it was so small that I don&#39;t feel like I can meaningfully claim the open source maintainer.&lt;/p&gt;
&lt;p&gt;[36:27] But, you Even just, even a very small library that was, ultimately was functionally replaced by a browser standard, it was a sticky, you know, Sticky banner library. Even just doing that for a couple of, I guess it was close to a year, just fielding issues and diagnosing and figuring out the, whether the answer to a question is yes, this is the bug that needs to be fixed or no, this is a&lt;/p&gt;
&lt;p&gt;[36:49] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Intentional design limitation or something.&lt;/p&gt;
&lt;p&gt;[36:52] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; There we go. Yes. This is an intentional constraint that. The trade offs are such that this is the correct decision. That&#39;s a lot of mental energy to expend. Like, you know, separate from, and I never did any blogging on it. I never, you know, spoke at any conferences. It was like a, an extremely small part of my, Attention.&lt;/p&gt;
&lt;p&gt;[37:09] And it still wore on me a little bit. So yeah, definitely a really good post to read. Really good projects alive that all of us use to do our jobs. Yeah, definitely recommend reading it.&lt;/p&gt;
&lt;h2 id=&quot;angular-meet-wiz&quot;&gt;Angular, meet Wiz&lt;/h2&gt;
&lt;p&gt;[37:20] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I&#39;ll move us on. This is even farther afield from React, but, um, I saw Sarah Drasner tweeted that the Angular is going to be merging with a heretofore unopensourced internal Google framework called Wiz.&lt;/p&gt;
&lt;p&gt;[37:36] Wiz was brand new to me, I had never heard of it. So. Hearing that, you know, Angular, one of these huge projects, one of the projects in web is going to be internally combining with a never open source project. That&#39;s a pretty big statement. That&#39;s a pretty big plan.&lt;/p&gt;
&lt;p&gt;[37:51] It looks like this ultimately came from a exploration of using signals within, you know, signals and reactivity within Angular and drawing inspiration from this well understood internal framework called Wiz that I believe it is.&lt;/p&gt;
&lt;p&gt;[38:07] No. Okay. So the combination of Angular and Wiz is already rolled out to 100 percent of YouTube traffic. So like, this is not, you know, an abstract. Intent to, like, no, this is done. This is, you know, I took this as a similar in weight to when the React core team announced that server components were being used on the Instagram web property, you know?&lt;/p&gt;
&lt;p&gt;[38:29] So this is a meaningful investment. One of the big reasons that I think this is worth discussing on our React news show, Malte Ube, he is currently working at Vercel. He did a lot of work on Wiz. Back in the day at Google, he, and he had a really good post where he talked about like, why was that? Why was Wiz developed?&lt;/p&gt;
&lt;h2 id=&quot;designing-very-large-javascript-applications&quot;&gt;Designing Very Large Javascript Applications&lt;/h2&gt;
&lt;p&gt;[38:49] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; What problem was it trying to solve? And so he put up this blog post called Designing Very Large JavaScript Applications, which is ostensibly about Wiz and about, you know, these frameworks. But I found it to be a really clear and cogent articulation of a lot of the challenges that React. is trying to solve as well.&lt;/p&gt;
&lt;p&gt;[39:08] It&#39;s, you know, it talks about like the challenges of centralizing configuration and how, you know, things like a routes configuration file or the webpack configuration file, when you start maintaining a Enormous web application begins to be such a large constraint as to be like prohibitive. Like it just, it doesn&#39;t work.&lt;/p&gt;
&lt;p&gt;[39:29] You can&#39;t scale it. It ends up being append only. And so then you end up loading the bundle, like it becomes fragile because nobody wants to remove things. So then nobody wants to change, make certain categories of changes. Definitely a really good post discussing a lot of the finer points around bundling and architecture limits of current tooling and the most challenging.&lt;/p&gt;
&lt;p&gt;[39:49] Parts of large and complex applications. Uh, specifically he talks about Google search results and you know, now they serve up lots of little, uh, widgets as the first result. Like, you know, you search some math and it will spit out a calculator. You search a currency conversion and it puts up.&lt;/p&gt;
&lt;p&gt;[40:03] A calculator. Or all sorts of those things. Like each of those is basically its own tiny web app, and so if you just pull up Google, obviously they cannot serve up dozens and dozens of these tiny web apps that you&#39;re not using. So that&#39;s sort of the category, that&#39;s the backdrop and the framing for this architecture that&#39;s gotten.&lt;/p&gt;
&lt;p&gt;[40:21] Yeah, definitely really interesting. Definitely recommend giving it a read.&lt;/p&gt;
&lt;p&gt;[40:24] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; One other small tangent off that is, you know, we&#39;ve heard the discussions and the arguments about front end development doesn&#39;t get the respect that it deserves for being its own very complicated domain. And I think that post is a very good example of, you know, real world apps have a lot of complexity and there are, they have their own unique sets of constraints and concerns and potential problems they have to work through.&lt;/p&gt;
&lt;p&gt;[40:47] Yeah,&lt;/p&gt;
&lt;p&gt;[40:48] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; very true. And on that note, something that struck me reading it is that is an entirely different set of constraints than I personally have ever experienced in my career. So of all of the weird, quirky, you know, specific reasons why like this tool doesn&#39;t work for this product or whatever, That was a whole new category that I&#39;ve never encountered, like, I, you know, I don&#39;t work on a Google type app where there might be one of a hundred and fifty different things served on the same page.&lt;/p&gt;
&lt;p&gt;[41:16] So I just thought that was really interesting. It was a glimpse into a different part of the web world. Just broadened my perspective just that little bit much more.&lt;/p&gt;
&lt;p&gt;[41:23] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; I mean, similarly, you were talking earlier about like, you know, I&#39;ve implemented, you know, a half dozen input widgets or something in my career.&lt;/p&gt;
&lt;p&gt;[41:30] Like, I&#39;ve never done anything like that. I mean, I&#39;ve never worked on a project that really made meaningful use of a router. At all. Like everything I&#39;ve worked on in my career has basically been the equivalent of a desktop app that runs in a browser that, you know, it&#39;s an app, not like pages or routing.&lt;/p&gt;
&lt;p&gt;[41:51] So like I&#39;ve barely ever used routing in my own career because the products I&#39;ve worked on just haven&#39;t required it.&lt;/p&gt;
&lt;p&gt;[41:58] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah. I think that is so true and very underappreciated even within frontend. I think that so like you said, I&#39;ve implemented a lot of checkboxes. That&#39;s because I&#39;ve jumped around to a lot of different startups and I&#39;ve worked on a lot of greenfield projects.&lt;/p&gt;
&lt;p&gt;[42:11] So I actually think that I have a relatively rare perspective on the industry of, you know, I didn&#39;t spend six years at, you know, Google. Four years at Facebook. In, in my, over my 10 year career, I worked at nine different companies. Like, you know, I&#39;ve seen a lot of different types of products. I&#39;ve worked in advertising tech, agriculture tech, cryptocurrencies, done brochure sales sites for credit card companies.&lt;/p&gt;
&lt;p&gt;[42:34] So like, I have worked in a bunch of different contexts. And what I&#39;ve learned is that Well, something I experienced was that surprisingly little of what I used in one company was immediately relevant at the next company. Like, the architectures were just so different that the assumptions I couldn&#39;t bring any of my past assumptions.&lt;/p&gt;
&lt;p&gt;[42:53] I had to leave all those assumptions at the door and just rediscover a new problem space every time I joined a new company. And so here&#39;s Malte discussing an entirely new type of architectural constraint that I have never encountered, despite my wide range of encountered problems. Last thing I&#39;ll say on that, he gave a talk at JSConf Australia in 2018.&lt;/p&gt;
&lt;p&gt;[43:13] Speaking about Wiz and talking a little bit about his decision not to open source. He says at the time didn&#39;t want to compete with React. There were already so many options, adding another one seemed unnecessary. And like, yeah, I, 2018, I feel like that was about peak JavaScript fatigue era. Um, but now he describes that decision not to open source as a misread of the market demand.&lt;/p&gt;
&lt;p&gt;[43:36] So that&#39;s interesting. So just bringing it back to Angular meets Wiz. I think, yeah, I&#39;m going to be paying attention to that to see how that shakes out a little bit more. It seems like it&#39;s, he regards it as a correction to a mistake made like five or six years ago.&lt;/p&gt;
&lt;h2 id=&quot;lightning-round&quot;&gt;Lightning round&lt;/h2&gt;
&lt;p&gt;[43:51] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; We&#39;re into the lightning round. We are over an hour.&lt;/p&gt;
&lt;p&gt;[43:53] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Lightning the lightning round.&lt;/p&gt;
&lt;p&gt;[43:55] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, lightning the lightning round. Cool.&lt;/p&gt;
&lt;h2 id=&quot;️-interaction-to-next-paint-new-core-web-vital-️&quot;&gt;⚡️ Interaction to Next Paint, new Core Web Vital ⚡️&lt;/h2&gt;
&lt;p&gt;[43:56] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; First off, there is a new Core Web Vital, which are the, like, lighthouse, Performance characteristics that are measured by Google. I believe the Core Web Vitals are one relatively significant input to search ranking for like search engine optimization.&lt;/p&gt;
&lt;p&gt;[44:12] Interaction to NextPaint, INP, is replacing first input delay as a Core Web Vital. So really quick overview, uh, first input delay was You open up a new website, how long until that code responds to the first input you give it? You know, a click, a scroll, a keystroke. That is no longer going to be a Core Web Vital, and instead it will be how long between an interaction and the next paint.&lt;/p&gt;
&lt;p&gt;[44:36] Notably, that&#39;s A change from measuring like startup responsiveness to ongoing responsiveness, which I think is very important. &#39;cause you know, it&#39;s much easier to do a, a one-time optimization of the app as it&#39;s loading versus a just optimizing the entire app so it&#39;s more responsive and just faster, better. So yeah, definitely seems like a much more meaningful metric.&lt;/p&gt;
&lt;h2 id=&quot;️-rspack-charts-a-path-to-10-️&quot;&gt;⚡️ RSPack charts a path to 1.0 ⚡️&lt;/h2&gt;
&lt;p&gt;[44:56] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Next up, there&#39;s been a plethora of rust based javaScript build tools as of late. One of those is called RS Pack, which is a rust based reimplementation of the entire web pack tool being built by ance. RS Build is a layer on top of that from the same team that makes the web pack layer easier to use.&lt;/p&gt;
&lt;p&gt;[45:20] So conceptually this is like a CRE React app equivalent, and they actually have how to migrate from CRA in their docs. They have announced plans for their roadmap to a 1.0 release. For what it&#39;s worth, I tried out RS build in one relatively small CRA project that I had, and it worked great. Like the build time dropped from like 30 seconds to one second.&lt;/p&gt;
&lt;h2 id=&quot;️-remix-might-merge-react-router-in-️&quot;&gt;⚡️ Remix might merge React Router in?? ⚡️&lt;/h2&gt;
&lt;p&gt;[45:42] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Entirely other news, Ryan Florence has been talking about how the Remix team has been continually adding more features to React Router, things like loaders and such. And so he&#39;s now tossing out the idea that they might end up effectively merging the Remix and React Router projects in some way. Details TBD. But it&#39;s something that they&#39;re thinking about.&lt;/p&gt;
&lt;h2 id=&quot;-declarative-shadow-dom-in-all-major-browsers-️&quot;&gt;⚡ Declarative Shadow DOM in all major browsers ⚡️&lt;/h2&gt;
&lt;p&gt;[46:08] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I have another broad web update here. Declarative Shadow DOM is now available in all major browsers. This is related to web components. I know that one of the major criticisms in the past several years, many years, has been Of web components has been that it is not possible to use them without JavaScript.&lt;/p&gt;
&lt;p&gt;[46:27] How they get added to the page is through JavaScript. And so if you are trying to make, there are many categories of web products, web properties. Where that just doesn&#39;t work. You can&#39;t use JavaScript, you can&#39;t rely on it, many reasons it doesn&#39;t work. And so, this is a declarative version of Shadow DOM that is now supported in all major browsers.&lt;/p&gt;
&lt;p&gt;[46:46] And, theoretically, maybe this will unlock a new era of experimentation in web toolkits. Now that we can use Web components without JavaScript. I think that we might start seeing some more experimentation. This kind of feels like what web components have always been meant to be. So yeah, interesting.&lt;/p&gt;
&lt;h2 id=&quot;️-react-native-community-map-️&quot;&gt;⚡️ React Native community map ⚡️&lt;/h2&gt;
&lt;p&gt;[47:05] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Okay, next up, there&#39;s a developer named Lorenzo Sciandra, who works at Microsoft, I believe, on Microsoft&#39;s maintenance of React Native for Windows and React Native for Mac, and he&#39;s put together a repository list that points to lots of community resources for React Native. Discords and servers and discussions. So if you&#39;re interested in React Native and other possible community resources, that&#39;s useful.&lt;/p&gt;
&lt;p&gt;[47:31] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yep, we&#39;re on there. Woo! (chuckles)&lt;/p&gt;
&lt;h2 id=&quot;️-nodejs-2023-year-in-review-️&quot;&gt;⚡️ Node.js 2023 Year in Review ⚡️&lt;/h2&gt;
&lt;p&gt;[47:34] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; As mentioned much earlier, there was a Node. js 2023 year in review post.&lt;/p&gt;
&lt;p&gt;[47:39] It&#39;s mostly just sort of talking about, like, Technical overview of how Node itself has changed over the years. So it&#39;s not so much like how you use it or, you know, performance. It&#39;s here is how usage of different versions have, has trended over time as different ones have gone end of life or been released.&lt;/p&gt;
&lt;p&gt;[47:58] It has a great chart of the binary size per version over time, which let me just call out. So version 10. 24. was about 40 megabytes or mebibytes. I&#39;m just going to call it megabytes. Version 21. 6 was 98. So that&#39;s a long time. Version 10 versus version 21. I think that&#39;s Like close to 10 years, something like that.&lt;/p&gt;
&lt;p&gt;[48:22] But yeah, seeing it 2. 5X in size over that time is, yeah, I guess it&#39;s been kind of append only. So yeah, like we discussed earlier, TypeScript has been focusing on reducing its install size. It sounds like there might be growing appetite to do so in Node as well. But this is just sort of like a, it&#39;s a pretty deep in the weeds discussion of how Node has evolved, and specifically some of the changes in 2023. So I found it was a good read. Not immediately actionable in any kind of way, but just sort of broad context. Stay on top of what&#39;s going on.&lt;/p&gt;
&lt;h2 id=&quot;️-tailwind-preview-of-40-️&quot;&gt;⚡️ Tailwind preview of 4.0 ⚡️&lt;/h2&gt;
&lt;p&gt;[48:57] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Next up, Tailwind is working on a new version and they&#39;ve put up a post talking about some of the changes that they&#39;re making for version four. The biggest one is they&#39;ve got a whole new CSS engine.&lt;/p&gt;
&lt;p&gt;[49:08] Apparently it&#39;s built on top of Lightning CSS, a Rust based CSS parser and translator from the author of Parcel, but they&#39;re working to make it the whole thing smaller, faster, built in. They&#39;re also making some potential changes to the configuration so it actually kind of looks and feels more like CSS in the process.&lt;/p&gt;
&lt;h2 id=&quot;️-vercel-adds-remixvite-support-️&quot;&gt;⚡️ Vercel adds Remix+Vite support ⚡️&lt;/h2&gt;
&lt;p&gt;[49:26] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; So, Vercel has announced that they are now supporting Remix with Vite. Pretty cool. Just especially because they maintain Next. It seems nice that they would pretty quickly jump on adding support for some new features coming out of Remix. They say in this post, they collaborated with the Remix team to add server bundles to Remix, which we discussed really briefly last month as a kind of confusing, deep optimization.&lt;/p&gt;
&lt;p&gt;[49:52] So just to see that. Vercel is meaningfully working to support some kind of fringe, niche features within one of their major competitors. Cool. That seems really nice. Very glad to see that. Also adds support for Remix features like the streaming, server side rendering, API routes, more advanced caching, data mutations.&lt;/p&gt;
&lt;p&gt;[50:13] Yeah. Happy to see that.&lt;/p&gt;
&lt;h2 id=&quot;️-navigating-the-future-of-frontend-️&quot;&gt;⚡️ Navigating the Future of Frontend ⚡️&lt;/h2&gt;
&lt;p&gt;[50:15] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; And finally, there&#39;s an author named Rem, uh, I don&#39;t know any more details about them, that&#39;s just their handle, who has put up a series of very good posts at a site called Frontend Mastery, talking about various aspects of React and frontend development. And the latest one&#39;s called Navigating the Future of Frontend.&lt;/p&gt;
&lt;p&gt;[50:32] And it talks about some of the aspects of JavaScript frameworks, and their capabilities, and what are some of these tools even doing for you. And talks about some of the directions that they are going these days in terms of routing, and mingling backend and frontend, and dealing with caching, and components that can be used on the server or on the client, and in a mix of some way.&lt;/p&gt;
&lt;p&gt;[50:55] So it&#39;s not like a specifically actionable post, but it&#39;s a useful guide to, like, where have we been and where are we going.&lt;/p&gt;
&lt;p&gt;[51:02] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, definitely looks like a really interesting post. And I just realized, just now, that it&#39;s not on Frontend Masters, it&#39;s Frontend Mastery, which is not an educational platform hahaha.&lt;/p&gt;
&lt;p&gt;[51:12] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; It looks like it&#39;s basically this one person&#39;s blog.&lt;/p&gt;
&lt;p&gt;[51:15] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Interesting. Yeah, I, I saw the link and I had assumed that it was really the front end masters, which makes perfect sense because they&#39;ve been doing web education for my entire career, insofar as I learned React by taking a front end masters class. But yeah, no, this is front end mastery.&lt;/p&gt;
&lt;p&gt;[51:29] It&#39;s just somebody&#39;s blog. Still, it&#39;s really good, really good post to echo everything Mark just said.&lt;/p&gt;
&lt;p&gt;[51:34] That&#39;s everything we got. We&#39;ll be back on the last Wednesday of next month in April on the live stage here in Reactiflux or back in your podcast feed just as soon as we can. We gather sources from This Week in React, Bytes. dev, React Status, Next. js Weekly, React Digest, the React. js subreddit, here in Reactiflux, and directly from people publishing articles on Twitter or whatever.&lt;/p&gt;
&lt;p&gt;[51:57] If you see anything newsworthy, definitely let us know in the Tech Reads News channel here in Reactiflux, or let me know by sending an email to hello at reactiflux. com with T M I R in the subject line. It&#39;s an acronym for the show.&lt;/p&gt;
&lt;p&gt;[52:11] I read literally every email that comes in, including spam and all sorts of other things. So yeah, if you send an email to hello at reactiflux. com, I will read it. And if this is a show you get value from and want to support, the best way to do so is submit a review or tell your friends and co workers about it.&lt;/p&gt;
&lt;p&gt;[52:26] Just drop it in Slack. And I know that I will personally thank you if I am ever made aware of you broadcasting us. Cool. Thank you so much. See you next month.&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2024-03</link><guid isPermaLink="false">reactiflux-tmir-2024-03</guid><pubDate>Tue, 26 Mar 2024 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>This Month in React, February 2024: React 19 (but more details), Apple tries to kill PWAs</title><description>&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://open.spotify.com/show/4g3Le83YfsMeI8Fq3cpPeH&quot;&gt;Spotify&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://podcasts.apple.com/us/podcast/reactiflux-events/id1661733526&quot;&gt;Apple Podcasts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://anchor.fm/s/a1f8a59c/podcast/rss&quot;&gt;RSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://podcasters.spotify.com/pod/show/reactiflux&quot;&gt;or anywhere you prefer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;iframe src=&quot;https://podcasters.spotify.com/pod/show/reactiflux/embed/episodes/TMiR-2024-02-React-19-but-more-details--Apple-tries-to-kill-PWAs-e2gj9gs&quot; height=&quot;102px&quot; width=&quot;400px&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;Quick hits
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-02#layoffs-and-job-market&quot;&gt;00:25&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://layoffs.fyi/&quot;&gt;Layoffs.fyi&lt;/a&gt;, &lt;a href=&quot;https://trueup.io/job-trend&quot;&gt;Trueup.io job trends&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-02#new-releases&quot;&gt;01:46&lt;/a&gt;]&lt;/code&gt; New releases
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://resend.com/blog/react-email-2&quot;&gt;react-email v2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/tamagui/tamagui&quot;&gt;Tamagui 1.88&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://expressive-code.com/&quot;&gt;Expressive Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/facebook/relay/releases/tag/v16.2.0&quot;&gt;Relay 16.2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Remix 2.7 (and 2.6!) discussing later&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://isograph.dev/blog/2024/02/15/isograph-0.1.0/&quot;&gt;Isograph 0.1.0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-02#upcoming-conferences&quot;&gt;03:24&lt;/a&gt;]&lt;/code&gt; Upcoming conferences
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://react.paris/&quot;&gt;React Paris 2024&lt;/a&gt; March 22, 2024. In-person in Paris, France + Remote (hybrid)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.epicweb.dev/conf&quot;&gt;Epic Web Conf 2024&lt;/a&gt; April 10 - 11, 2024. In-person in Park City, UT, USA&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://reactmiami.com/&quot;&gt;React Miami 2024&lt;/a&gt; April 19 - 20, 2024. In-person in Miami, FL, USA&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://reactconnection.io/&quot;&gt;React Connection 2024&lt;/a&gt; April 22, 2024. In-person in Paris, France&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://reactnativeconnection.io/&quot;&gt;React Native Connection 2024&lt;/a&gt; April 23, 2024. In-person in Paris, France&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-02#react-labs-react-19&quot;&gt;05:06&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://react.dev/blog/2024/02/15/react-labs-what-we-have-been-working-on-february-2024&quot;&gt;React Labs&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Brad Westfall: &lt;a href=&quot;https://reacttraining.com/blog/react-19-will-be-compiled&quot;&gt;React Will Be Compiled&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/acdlite/status/1758229889595977824&quot;&gt;you’ll likely never need these APIs again:&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://reacttraining.com/blog/react-19-will-be-compiled&quot;&gt;Good writeup from React Training&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-02#a-pr-for-server-components-support-in-parcel&quot;&gt;15:47&lt;/a&gt;]&lt;/code&gt; React 19: RSCs, Suspense, and Server Actions
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/facebook/react/pull/28138&quot;&gt;Initial PR for Parcel support in RSCs?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://buildui.com/posts/instant-search-params-with-react-server-components&quot;&gt;Instant Search Params with React Server Components&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://andy-gallagher.com/blog/about-react-suspense/&quot;&gt;Is Suspense Worth the Squeeze?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://allanlasser.com/posts/2024-01-26-avoid-using-reacts-useformstatus&quot;&gt;Avoid Using React’s &lt;code&gt;useFormStatus&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-02#react-strict-dom-package&quot;&gt;19:30&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/facebook/react-strict-dom&quot;&gt;react-strict-dom&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/Kelset/status/1760367655423549480&quot;&gt;Announcement thread from kelset&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Builds on &lt;a href=&quot;https://github.com/react-native-community/discussions-and-proposals/pull/496&quot;&gt;“react dom for native” proposal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/dan_abramov2/status/1760245165703184516&quot;&gt;“Spiritual successor to react-native-web but from the opposite direction”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/facebook/react-strict-dom/blob/main/packages/react-strict-dom/COMPATIBILITY.md&quot;&gt;Compatibility chart&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-02#apple-announce-no-more-pwas&quot;&gt;25:09&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://developer.apple.com/support/dma-and-apps-in-the-eu&quot;&gt;No PWAs on iOS in EU&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://open-web-advocacy.org/apple-attempts-killing-webapps/&quot;&gt;Action link, if you have an app affected&lt;/a&gt; (Update, partially rolled back)&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/Manifest&quot;&gt;MDN PWA Manifest docs&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Gary Bernhardt’s &lt;a href=&quot;https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript&quot;&gt;Birth and Death of Javascript talk&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-02#next-app-router-the-good-the-bad-and-the-ugly&quot;&gt;32:24&lt;/a&gt;]&lt;/code&gt; Next
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.flightcontrol.dev/blog/nextjs-app-router-migration-the-good-bad-and-ugly&quot;&gt;A Next.js App Router Migration: The Good, Bad, and Ugly&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medusajs.com/blog/client-server-transition-learnings-nextjs-14-server-components/&quot;&gt;What We’ve Learned from the transition to Next 14 and Server Components&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-02#remix-26-27&quot;&gt;35:22&lt;/a&gt;]&lt;/code&gt; Remix
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/remix-run/remix/blob/main/CHANGELOG.md&quot;&gt;2.6, 2.7 changelog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://remix.run/blog/oss-remix-dot-run&quot;&gt;Open sourced remix.run&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/remix-run/remix-website/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22&quot;&gt;Good first issues&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-02#state-of-react-native&quot;&gt;38:44&lt;/a&gt;]&lt;/code&gt; React Native
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://results.stateofreactnative.com/&quot;&gt;State of React Native&lt;/a&gt; by Software Mansion&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-02#react-native-frameworks-rfc&quot;&gt;40:41&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/react-native-community/discussions-and-proposals/pull/759&quot;&gt;“React Native Frameworks”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.callstack.com/blog/announcing-react-native-for-apple-vision-pro&quot;&gt;RN on Apple Vision Pro&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;⚡ Lightning round ⚡
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-02#bun-shell-support&quot;&gt;43:34&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bun.sh/blog/the-bun-shell&quot;&gt;Bun shell&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-02#deno-2023-2024&quot;&gt;45:46&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://deno.com/blog/deno-in-2023&quot;&gt;Deno in 2023&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://deno.com/blog/2024-survey-results-and-roadmap&quot;&gt;Survey results and 2024 roadmap&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-02#jsrio&quot;&gt;46:35&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://jsr.io/&quot;&gt;JSR&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-02#how-hot-module-replacement-works&quot;&gt;47:59&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bjornlu.com/blog/hot-module-replacement-is-easy&quot;&gt;Hot Module Replacement is Easy&lt;/a&gt; (he lies)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-02#pmdrs-webgl-uikit&quot;&gt;48:33&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://twitter.com/0xca0a/status/1762069894932160943&quot;&gt;pmdrs WebGL layout engine&lt;/a&gt; UI for react-three-fiber, &lt;a href=&quot;https://github.com/pmndrs/uikit&quot;&gt;full repo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-02#updates-from-the-100th-tc39-meeting&quot;&gt;49:25&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://dev.to/hemanth/updates-from-the-100th-tc39-meeting-4j2f&quot;&gt;100th TC39 meeting updates&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;[00:00] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Thanks everyone for joining for February&#39;s This Month in React, where we recap and digest recent developments in the ever evolving React and web ecosystem.&lt;/p&gt;
&lt;p&gt;I&#39;m Carl. I&#39;m a staff product developer and freelance community leader here at Reactiflux, the Discord for React professionals.&lt;/p&gt;
&lt;p&gt;[00:16] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Hi, I&#39;m Mark Erickson. My day job is working at Replay io, where we&#39;re building a true time traveling debugger for JavaScript. And in my free time I do redux stuff.&lt;/p&gt;
&lt;h2 id=&quot;layoffs-and-job-market&quot;&gt;Layoffs and job market&lt;/h2&gt;
&lt;p&gt;[00:25] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; We&#39;re gonna start off again, as we have been the last couple times with just some quick hits, layoffs that FYI, it looks like it&#39;s peaked, hopefully.&lt;/p&gt;
&lt;p&gt;There were just about 15,000 layoffs in February this year, which compares to 34,000 from last month. So that&#39;s down a little bit more than half, which seems pretty good. Pattern holds from last year as well, in 2023, numbers for January and February followed about the same pattern of dropping by half. But those numbers were 90,000 and 40,000.&lt;/p&gt;
&lt;p&gt;So that&#39;s down substantially year, over year, uh, 90,000, January last year to 34,000 january of this year. So that&#39;s down like 60%. So that&#39;s pretty great. Not out of the woods yet. But definitely comparing to 2023, it&#39;s looking a lot less grim.&lt;/p&gt;
&lt;p&gt;Here, I found a new resource that looks pretty cool, trueup.io/job- trend. It shows a number of open jobs in tech over time. It&#39;s not super clear where these are coming from. So, uh, take it with a grain of salt for sure. Don&#39;t know if this includes sales or product roles or if it&#39;s just engineering, but it looks like it peaked at 475, 000 jobs in April 2022, uh, down to a low of 163, 000 one year later, April 2023. And back up to about 200, 000. So the creeping back up, seems pretty good.&lt;/p&gt;
&lt;h2 id=&quot;new-releases&quot;&gt;New releases&lt;/h2&gt;
&lt;p&gt;[01:46] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I&#39;m just going to run through a couple of new releases real quick. We&#39;ve got React Email v2. Cool. Always a little bit tricky sending email from React. Email is always a pain in the butt, so I love new tools coming out for that.&lt;/p&gt;
&lt;p&gt;Tamagui 1. 88, which is a cross platform UI toolkit. The big selling point seems to be that it&#39;s seeking parity between web and React Native, which we&#39;re going to talk about a lot more later. There&#39;s been some cool new developments there. Yeah, they&#39;re supporting Expo 50, better types, and they tease a upcoming reduction in generated CSS size. So, seems cool. I know that&#39;s a reasonably widely used library. So, cool. New release.&lt;/p&gt;
&lt;p&gt;I heard about a cool new project doing syntax highlighting. It looks really good, actually. It&#39;s called ExpressiveCode. Definitely check that out if you&#39;re doing any sort of project that needs to highlight syntax.&lt;/p&gt;
&lt;p&gt;Relay. This is a little bit late, but Relay released version 16. 2. I&#39;ve never been a big Relay user, so I don&#39;t fully understand what changes they just shipped, but if you use Relay, cool. There it is, new version.&lt;/p&gt;
&lt;p&gt;And again, something we&#39;re going to be talking about later, but Remix released actually two versions, released 2.6 and 2.7. We&#39;ll go into a little more depth on that later, but wanted to give it a shout out.&lt;/p&gt;
&lt;p&gt;And another, a little bit related, Isograph, which is a new take on doing GraphQL. Just announced a early 0. 1 release. We actually had the maintainer of that, Robert Balicki, on for an Office Hours last week. I think he released this version like an hour before we started the Office Hours event, so that was cool.&lt;/p&gt;
&lt;h2 id=&quot;upcoming-conferences&quot;&gt;Upcoming Conferences&lt;/h2&gt;
&lt;p&gt;[03:24] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; All right, moving on from releases, there are a bunch of conferences coming on in the next two months or so.&lt;/p&gt;
&lt;p&gt;We&#39;ve got React Paris, which is going to be March 22nd. It&#39;s in person, Paris, France, with a remote option as well.&lt;/p&gt;
&lt;p&gt;There is also Epic Web Conf coming out, or that&#39;s going to be in April 10th and 11th in person in Park City, Utah. Kent C Dodd&#39;s conference. So he always does great stuff. I&#39;m sure this conference is going to be pretty cool.&lt;/p&gt;
&lt;p&gt;React Miami coming up April 19th and 20th as well in person in Miami. I went last year. It was really lovely. Reactiflux with a bit of an affiliation in that it&#39;s. The React Miami conference is organized by G2I, uh, which is run by Gabe, one of our admins. So definitely check it out. It was really great last year.&lt;/p&gt;
&lt;p&gt;There&#39;s also another conference in France, React Connection. That&#39;s going to be April 22nd, so exactly one month after React Paris. So, you know, great reason to get out to France.&lt;/p&gt;
&lt;p&gt;And one more in the next two months is React Native Connection. I guess that&#39;s also Same people, next day, also in France. So yeah, man, a lot of stuff going on in Paris.&lt;/p&gt;
&lt;p&gt;[04:34] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; I will be attending React Miami and then I&#39;m actually speaking at React Connection in Paris. So I&#39;m actually going to be directly, if you look at the timing, React Miami is actually like Friday, Saturday, and then React Connection is the next Monday. So I&#39;m going to be. Going to Miami and then flying directly over there.&lt;/p&gt;
&lt;p&gt;[04:53] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; That is going to be fun. We&#39;ll see if I can make it to any of the conferences this year. Not sure which ones I&#39;m going to be going to. Yeah, that&#39;s all the quick hits we got. So let&#39;s go into our main content. Mark, you want to start us off?&lt;/p&gt;
&lt;h2 id=&quot;react-labs-react-19&quot;&gt;React Labs, React 19&lt;/h2&gt;
&lt;p&gt;[05:06] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; We have some really big news from the actual official React team posted on the actual official React team blog.&lt;/p&gt;
&lt;p&gt;They&#39;ve put up another one of their React labs, what we&#39;re working on posts. And it&#39;s been 11 months since the previous post in March of 2023. And the good news is that there is a lot of details on what they&#39;ve been working on, and a lot of pretty big pieces of news.&lt;/p&gt;
&lt;p&gt;Most of this is stuff we&#39;ve actually talked about in previous episode, it&#39;s not like most of this is hidden, but it&#39;s good to get official confirmation of what they&#39;ve been up to and where things stand.&lt;/p&gt;
&lt;p&gt;[05:40] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, you heard it here first, hahaha.&lt;/p&gt;
&lt;p&gt;[05:42] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Very true. So, the first and probably the biggest piece of news is that the React team has been working away for the last couple of years on what they previously codenamed as React Forget. And the idea is it&#39;s a compiler that will auto optimize the content of your React components.&lt;/p&gt;
&lt;p&gt;Now, they talked about it initially at React Conf Online two years ago. They went kind of quiet for a while. They did a couple of talks in React India and React Advanced last fall.&lt;/p&gt;
&lt;p&gt;And so the big updates now are that 1. The name has changed. It&#39;s no longer React Forget. It&#39;s now officially just called React Compiler. And then also that they consider it no longer an experiment, it&#39;s effectively production ready.&lt;/p&gt;
&lt;p&gt;They are still working to finalize it and get it ready for use and release to the public, but it&#39;s a real thing that they effectively consider good enough that it&#39;s not just a will this work kind of situation.&lt;/p&gt;
&lt;p&gt;[06:50] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, and it&#39;s good enough that they are using it on Instagram&#39;s website right now is what I hear.&lt;/p&gt;
&lt;p&gt;[06:56] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yeah, when they did the talk at React Advanced in October, I believe they said that they were trying it out in production on Instagram Web&#39;s profile page, and then some kind of a React Native product page somewhere in Meta&#39;s code base.&lt;/p&gt;
&lt;p&gt;They might have expanded it to other parts of Instagram since then. I&#39;m not entirely clear if it&#39;s being used more broadly than just the one profile page. But it, it, certainly the numbers and the results that they talked about back in October were very good. And they&#39;ve had another five or, five plus months to try to iterate on this.&lt;/p&gt;
&lt;p&gt;Very encouraging to hear that this is progressing forward. Along with that, the React team said that the next official version of React will indeed be React 19. There will not be like an 18. 3 or 18. 4 minor release. I&#39;ve, I&#39;ve seen a number of people say that there are bug fixes that they wish would go out in a minor version, just to get them out sooner.&lt;/p&gt;
&lt;p&gt;I think I&#39;ve seen some of the Remix Community talk about some bits and pieces that are in canary builds that they wish were already in a stable build. But certainly what I&#39;ve seen over the last couple of months had been that they were working towards what they considered to be a React 19 major version, and this blog post confirms that is what they are actually planning.&lt;/p&gt;
&lt;p&gt;I do want to talk about the, a couple more bits about the React compiler. The most obvious thing that people will think about is that I don&#39;t necessarily need to put in the dependency arrays for things like useMemo and useCallback and maybe even useEffect. Because, you know, as the React team has said since Hooks first came out, if we just have a sufficiently smart compiler, It can figure out what variables you&#39;re actually using and fill in the dependency arrays automatically at compile time.&lt;/p&gt;
&lt;p&gt;But, the bigger thing, and this is the point that I&#39;ve tried to make in our last couple discussions, is React has always had some built in optimizations if you memoize the JSX elements that your component returns. And so, the biggest benefit of React Compiler is that it will auto memoize chunks. of the elements that your component returns.&lt;/p&gt;
&lt;p&gt;So if your component returns, like, I don&#39;t know, three separate divs, and they depend on some combination of four or five different variables, it would auto memoize each of those chunks, so that the element only gets recreated when the input values change. And at that point, React&#39;s render optimizations kick in.&lt;/p&gt;
&lt;p&gt;And it just skips re rendering those child components, unless they change. You know, React has always had the mental model that we&#39;re actually gonna, we&#39;re gonna pretend like your entire application just got recreated every time. In practice, what it does is, when a parent component renders, everything inside of that renders by default.&lt;/p&gt;
&lt;p&gt;So you can kind of think of React Compiler as flipping that on its head. So that it&#39;s not just re rendering all children by default, but only children where their data actually changed. So, in a sense, it&#39;s actually kind of taking a common misconception and making that the default behavior.&lt;/p&gt;
&lt;p&gt;[10:14] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah. Always good to if people hold expectations about how something will work, uh, nice to match that.&lt;/p&gt;
&lt;p&gt;This is a very high effort way to match people&#39;s expectations, but cool that they are confident enough in it working that they&#39;re starting to use it themselves on production apps.&lt;/p&gt;
&lt;p&gt;[10:31] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; And so Brad Westfall from the React training team had, or company, had a good post called React will be compiled, where he goes over some of the implications for that.&lt;/p&gt;
&lt;p&gt;Along with that, the React team has always been very big on trying to keep backwards compatibility. You know, you can still even use, you know, the original legacy create class API just as an extended package. React 19 will drop a lot of pieces that have been deprecated for years. They&#39;re finally killing StringRefs, they&#39;re killing LegacyContext.&lt;/p&gt;
&lt;p&gt;And a couple other pieces. Along with that, there&#39;s some iteration on how you&#39;re intended to use some of the existing functionality. Andrew Clark had a tweet where he&#39;s like, You know, we&#39;ve got a lot of things that have been built in, but with React 19 and the compiler changes, You&#39;re actually going to access some of this functionality in a different way.&lt;/p&gt;
&lt;p&gt;So, you know, you won&#39;t have to worry so much about trying to memoize things. The compiler will take care of it for you. You won&#39;t have to use React. forwardRef because now components can just get ref as a prop directly. Apparently you won&#39;t need to use React. lazy much anymore. You can just have a promise that represents the component and put the promise directly in your JSX output as a child.&lt;/p&gt;
&lt;p&gt;The useContext hook will get replaced by the new use hook that accepts a context directly as an argument. It also will be the replacement for the undocumented but everybody knows about it technique of throwing a promise for triggering suspense. And finally, context objects themselves will now be considered the provider components that you render.&lt;/p&gt;
&lt;p&gt;So you can just render angle brackets, myContext. Instead of angle brackets, my context dot provider. Most of those are not huge changes. It&#39;s not like it&#39;s adding necessarily new functionality, but it is making some existing functionality nicer to work with.&lt;/p&gt;
&lt;p&gt;[12:33] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; It really reduces the, you know, surface area of React&#39;s APIs quite a lot.&lt;/p&gt;
&lt;p&gt;Like, no more UseMemo, UseCallback, or the, you know, React. memo. The number of APIs that React exports is now dropping by like, what, six or seven? It&#39;s a lot. That&#39;s a lot. That&#39;s a lot fewer. Pretty cool.&lt;/p&gt;
&lt;p&gt;[12:55] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; And then, finally, the blog post talks about a lot of the features that they&#39;ve been working on, especially in relation to suspense, and server actions, and forms.&lt;/p&gt;
&lt;p&gt;And, part of the reason why they came up with this Canary version release concept is they had features that were mostly ready, or close to being ready, and in theory, they were ready enough that frameworks like Next, or Remix, or, you know, something else, could make use of them, but they didn&#39;t have all the pieces ready yet, so they couldn&#39;t go into a public, stable release.&lt;/p&gt;
&lt;p&gt;They&#39;ve had some of these new, you know, pieces like server actions, or the use optimistic hook, or use form status, available in Canary builds for a while. The key line from this blog post is that they said, the current set of features in React Canary are complete and ready for release. So that&#39;s actually a pretty big deal.&lt;/p&gt;
&lt;p&gt;One thing that I thought was interesting, which I hadn&#39;t really seen talked about anywhere else, and I did not actually understand the first time I read the blog post, React DOM is now going to support rendering metadata tags Anywhere in the component tree. And this means that if you render a title tag or metadata or link, number one, it&#39;ll automatically insert those into the head of the document.&lt;/p&gt;
&lt;p&gt;And two, you can render those from anywhere, which. As they said, basically replaces the need for a library like React Helmet. I have not had much need to do that myself in my own career, but it&#39;s, that&#39;s actually a pretty big deal to build in that kind of functionality. And along with that, they&#39;re adding support for suspense for things like assets, like script tags and style tags.&lt;/p&gt;
&lt;p&gt;So, there&#39;s a lot of moving pieces here, and it looks like a lot of this stuff is about ready for release. So that&#39;s pretty big news. And my assumption is that React 19 will probably either go final, or at least be in beta plus like a release roadmap at React Conf in May.&lt;/p&gt;
&lt;p&gt;[14:59] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, that seems like a safe assumption.&lt;/p&gt;
&lt;p&gt;They tend to make pretty major announcements at their conferences, so the lack of conferences for the last, what, four or five years? Yeah, definitely seems like Enough pieces have come together that they&#39;re comfortable saying like, yes, this is, here we go.&lt;/p&gt;
&lt;p&gt;Yeah. And on the React Helmet stuff, that is something I have had to do quite a number of times in my career. And pretty much every time I set up React Helmet, get bit by some bug, some weird quirk in how it works. Look for an alternative, find nothing, and then, you know, begrudgingly make do with whatever weird things React Helmet is doing.&lt;/p&gt;
&lt;p&gt;So this seems like a really great small tweak to make the experience of developing a new project in React just that much easier. So pretty excited for that.&lt;/p&gt;
&lt;h2 id=&quot;a-pr-for-server-components-support-in-parcel&quot;&gt;A PR for Server Components support in Parcel&lt;/h2&gt;
&lt;p&gt;[15:47] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Cool. All right. Let&#39;s talk about React server components, suspense, and server actions. There&#39;s a, an initial PR for parcel support for React server components. It looks like React Server Components needs like an external package to do things that I don&#39;t really understand because I have not looked at how you implement it from scratch in a framework.&lt;/p&gt;
&lt;p&gt;But so it looks like Parcel is now getting that support. So I think that&#39;s going to be the second. You know, Bundler that officially supports React server components. So that&#39;s, you know, going from one to two, that&#39;s a pretty major improvement here. But that&#39;s, that&#39;s pretty much all I know about it.&lt;/p&gt;
&lt;p&gt;[16:25] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Got to have the Bundler build framework integration to actually hook up the pieces and make them do something useful.&lt;/p&gt;
&lt;p&gt;[16:30] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Right, yeah, this crosses a lot of boundaries, and one of the, one of those boundaries is from your app into however that app is being bundled into a production asset. So, do you want to introduce this blog post it looks like?&lt;/p&gt;
&lt;p&gt;[16:43] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yeah, so Sam Selikoff has done some, a couple different blog posts and talks related to how to actually make use of server components in more realistic applications.&lt;/p&gt;
&lt;p&gt;I haven&#39;t had a chance to go through this post in detail, but I saw Dan retweet it. So it&#39;s a discussion of how you would actually use server components and implement logic for things like filtering and displaying pieces and components and pieces of data, primarily based on search parameters. And so it goes through and shows examples of using a lot of the new pieces like some of the form state hooks, server actions, actually being able to control the behavior using suspense.&lt;/p&gt;
&lt;p&gt;So it feels like it&#39;s a pretty good example of how all the different pieces actually play together in practice. Super cool, yeah.&lt;/p&gt;
&lt;p&gt;On the flip side, I also saw a couple articles that are maybe just a little bit skeptical of how to use a couple of these pieces. One was an article called, Is Suspense Worth the Squeeze? And the author basically says, you know, suspense is useful, but in the end, like, showing loading states isn&#39;t necessarily, like, The greatest thing in the world. And it feels like, you know, maybe the React team&#39;s focus could have been better spent on some other things.&lt;/p&gt;
&lt;p&gt;This was at least a little bit more of like a technical set of complaints than some of the articles we&#39;ve seen recently, where it&#39;s just like, I have bad vibes about React. So it&#39;s, you know, not necessarily like, you know, a big argument one way or the other, but I thought it was at least a little more of a reasonably technical focused.&lt;/p&gt;
&lt;p&gt;Similarly, there was another post called, Avoid using React&#39;s new UseFormStatus hook, where the author points out that you can only make use of the hook inside of a form component, and he had some use cases where he wanted to be able to deal with form status outside of the form tag.&lt;/p&gt;
&lt;p&gt;I think I also saw some discussion with Dan about this on Twitter, I don&#39;t have a link to it. Right this minute, but Dan&#39;s reply was that it was something about being able to properly compose pieces of the forms together as to why that limitation exists. So it&#39;s good, you know, discussion of, you know, some of the trade offs and understanding the actual limitations of available APIs is important.&lt;/p&gt;
&lt;p&gt;[19:01] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; That reminds me of some of the things we&#39;ve discussed about, like, context dependent APIs that React has started relying on. It seems sort of adjacent to the, you know, use server, use client directives, where you sort of opt into different behaviors in different parts of the tree. So, yeah, definitely having different bits of functionality only available in certain contexts, where it&#39;s not always super intuitive what those contexts will be.&lt;/p&gt;
&lt;p&gt;Yeah, that&#39;s a little bit funky.&lt;/p&gt;
&lt;h2 id=&quot;react-strict-dom-package&quot;&gt;react-strict-dom package&lt;/h2&gt;
&lt;p&gt;[19:30] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Moving on to the next section. There was another fairly big announcement from Meta within the last month. A new project called React Strict DOM. And this is really about taking React Native and giving it compatibility with web APIs. So let&#39;s back up and give a little bit of context on this one.&lt;/p&gt;
&lt;p&gt;You know, React Native came out in like 2014. It&#39;s, I think it&#39;s, it&#39;s been a while. Part of the principle of React Native has been, you get to use all the same concepts of React, you know, the components and state and rendering, but because it&#39;s targeted to native, and, you know, native could be Android, iOS, or even other platforms like Mac or Windows.&lt;/p&gt;
&lt;p&gt;React Native has its own set of abstractions. It doesn&#39;t use divs and spans and, you know, lowercase b buttons. It has its own abstractions like a view. And, you know, a view maps to whatever the underlying operating system primitive is for I want to draw a rectangle on screen and do something with it. And so you get to reuse the same concepts that you know from React DOM on the web, but the types of components that you render are completely different.&lt;/p&gt;
&lt;p&gt;And so there&#39;s been various attempts to make it easier to reuse code across both web and native platforms over the years. And one of the biggest ones was called React Native Web by, created by Nicholas Gallagher, I believe while he was originally at Twitter, and then he eventually left and went to Meta.&lt;/p&gt;
&lt;p&gt;React Native Web tried to recreate the names and types of the React Native components, but they rendered to DOM elements. So you would import capital V View from React Native Web in your web app, and you would render it, and on the web it would actually output a div instead. And so the idea is that you would always render a view instead of a div.&lt;/p&gt;
&lt;p&gt;And that made your source code compatible with both React Native on native platforms and React on web platforms. And so this is useful, but also had its limits. And so I believe this new project, React Strict DOM, has actually been worked on by Nicholas Gallagher and a bunch of other folks. And it basically takes the opposite approach.&lt;/p&gt;
&lt;p&gt;So rather than trying to make, to write web apps Where you&#39;re using something that looks like React Native component types. Instead, the goal is to make React Native look and feel more like the web. So they&#39;ve been working to fill in, you know, various missing pieces of web compatibility behavior. And React Strict DOM gives you tags like HTML. div, and at usage time, those actually turn into a React Native view under the hood. So the idea is, you would now write your React components as if they were web based on both platforms. On the web, of course it outputs an actual div, and on native, it would actually map to a React Native view under the hood.&lt;/p&gt;
&lt;p&gt;So the idea is now, let&#39;s just pretend we&#39;re writing web style code everywhere, and it&#39;s just that on React Native it turns into the underlying native view instead. So this is brand new, but it sounds like it is actually being used in production at Meta, and it&#39;s gotten to the point where they felt they could open source this.&lt;/p&gt;
&lt;p&gt;[23:08] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I saw a tweet from Dan describing it as a spiritual successor to React Native Web, and like you said, you know, from the opposite direction, which makes a lot of sense. I, it, I have worked on React Native exactly once professionally. I tried to do a couple of side projects that never really got off the ground.&lt;/p&gt;
&lt;p&gt;It always struck me as just a little bit weird that like the view to div, you know, they&#39;re functionally almost exactly the same. It&#39;s just that one doesn&#39;t work and, they don&#39;t work in each other&#39;s contexts. So, trying to unify that just a little bit, trying to get rid of some of those weird edge cases that prevent compatibility from working. Yeah, sounds really cool.&lt;/p&gt;
&lt;p&gt;I had been really excited about React Native Web, what, five years ago, six years ago when it was new, but it just never really, never quite fulfilled the promise, the, you know, the vision that it had set out to. So cool to see another take, taking what people already do and making it compatible in the native context seems a lot easier than trying to get everyone to change how they write code to fit better with how React Native is authored. So yeah, pretty excited to see.&lt;/p&gt;
&lt;p&gt;Yeah, there was a great announcement thread from Lorenzo Sciandra, Kelset. Who, I think he works on this stuff. He&#39;s a senior software engineer at Microsoft working on React Native. Really great thread. Definitely goes into a lot of details, links out to a lot of great resources and RFCs and GitHub issues. So definitely check that out for a lot of details.&lt;/p&gt;
&lt;p&gt;There was also a wonderful compatibility chart showing the progress that they&#39;re, they&#39;ve made so far. Look, it&#39;s a, it&#39;s a little bit rough at the moment. There, there&#39;s no green, but a lot of yellow and not too much red. So I think where the red is mostly on the, you know, more fringe side of HTML, although it looks like inputs are not super well supported yet, but I guess inputs are going to be tricky on. Just a little bit more functionality going on there, a little bit more behaviors to replicate.&lt;/p&gt;
&lt;h2 id=&quot;apple-announce-no-more-pwas&quot;&gt;Apple announce no more PWAs&lt;/h2&gt;
&lt;p&gt;[25:09] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Cool. All right. I guess I&#39;ll move us on. This is a bit of a news, I don&#39;t know, a broader ecosystem news, but Apple has announced that they are dropping support from, for progressive web apps in response to regulatory challenges in the EU markets. I am pretty disappointed to see this. I had always, I&#39;ve always been.&lt;/p&gt;
&lt;p&gt;Excited about progressive web apps. I love the thought of being able to author web applications in ways that are more meaningfully competitive in terms of user experience in a native context, you know, going back for years, Apple has not meaningfully supported a lot of the deeper functionality that would make this, more meaningfully, you know, work like a native application.&lt;/p&gt;
&lt;p&gt;Look, I dug deep on refreshing my memory of how these were, what the original vision for progressive web apps were and how it was meant to unfold. And in like 2014, 15, the Chrome team from Google really put out a lot of effort on doing a cross platform standard for essentially an app store.&lt;/p&gt;
&lt;p&gt;If there, you know, if you look at the MDN docs for the progressive web app manifest. It references a lot of things like, you know, screenshots and, you know, install methods. Where does this live? How do you access it? So this ultimately, Apple dropping support for progressive web apps, really it comes out of a series of lawsuits that have, that they, that have been unfolding in Europe around anti competitive behavior in the app store.&lt;/p&gt;
&lt;p&gt;You know, it kind of goes back to their 30%, you know, the Apple tax on all purchases in the iOS ecosystem. So, you know, the slightly conspiracy theory minded take on this is that fully supporting progressive web apps would meaningfully cut into their app store dominance. And so they had a strong disincentive from supporting them.&lt;/p&gt;
&lt;p&gt;So just, disappointing to see, if you are working on a progressive web app, especially in a European context, there&#39;s an advocacy organization called the Open Web Advocacy that is doing a, you know, action. So, if you are based in Europe and maintaining a progressive web application and would be impacted by this, definitely check that out.&lt;/p&gt;
&lt;p&gt;Going a little bit more, sort of broadly, back it up into, like, what is a progressive web app, why would this be meaningful? I think there&#39;s a lot of overlap there with local first as well. Um, just sort of the general idea of building a website that functions in ways similar to how people expect native applications to work.&lt;/p&gt;
&lt;p&gt;So for, like, local first, I think a wonderful example of that is, like, your email client. You know, Gmail on my phone, I can go in airplane mode and I can use it exactly as if I was online. I can archive things, I can recategorize them, I can draft replies, I can send things, and then once I&#39;m back on network, it all works as I expected it to.&lt;/p&gt;
&lt;p&gt;So, the original vision for progressive web apps was providing a series of tools and platform features that enable that sort of thing. So, you know, the manifest is a way for web applications to say, these are the files I support. These are the, you know, domains that should open in this app.&lt;/p&gt;
&lt;p&gt;Then there&#39;s supporting features as well, like service workers. That&#39;s how you can provide a programmatic CAF from the web browser context. If they like, okay, if there&#39;s no network, here&#39;s how to respond. Unfortunately, mostly, it seems like the service workers mostly got used to serve 404 pages that look pretty, which like, okay, yes, that is something you can do with them.&lt;/p&gt;
&lt;p&gt;But it would be much more interesting if it would do synchronization of data in the background and queue up updates that you make while you don&#39;t have network. So I&#39;m disappointed to see this. I had always been really excited for the potential of progressive web apps. And if this decision by Apple to meaningfully reduce support doesn&#39;t get changed, then kind of seems like a, maybe not the final nail in a coffin, but definitely a pretty big nail in the progressive web app coffin.&lt;/p&gt;
&lt;p&gt;Very sorry to see.&lt;/p&gt;
&lt;p&gt;[29:22] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; I haven&#39;t read through this in detail, but it seems like some of the claims are about, like, well, if we&#39;re, if you&#39;re forcing us to support multiple browser engines, we can&#39;t guarantee 100 percent perfect security and all the safety guarantees that we want to enforce on our own platform, but frankly, it sounds like, uh, well, if you&#39;re not going to let us do what we want, we&#39;re going to take our ball and go home.&lt;/p&gt;
&lt;p&gt;Kind of a temper tantrum.&lt;/p&gt;
&lt;p&gt;[29:44] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I&#39;d agree with that, generally.&lt;/p&gt;
&lt;p&gt;All right in between recording this and publishing it, Apple has announced that they are actually changing tack and will be allowing home-screen web apps as they refer to progressive web apps which honestly is probably a better name.&lt;/p&gt;
&lt;p&gt;They&#39;re still going to be requiring that progressive web apps be authored in WebKit. So they&#39;re not allowing for alternate browser engines to fully integrate progressive web apps on iOS. They&#39;re claiming that this is to align with the security and privacy model for native apps. Uh, which to me, I interpret that as they have complete control over how notifications and device access work in iOS, and they&#39;re not going to give up any bit of that control to a third party, namely their largest competitor, Google. Apple&#39;s also very much in a very real way, hamstrung the way progressive web app notifications function in iOS for years now. They have never really made a serious effort at allowing developers to fine tune the user experience of how notifications are delivered. Which again I take as a subtle indicator that they don&#39;t like the operating model of a progressive web app because it is in competition with their other business interests. We&#39;re veering out of news and into, you know, I don&#39;t know, history, but there was a really great, somewhat satirical talk from 2013, given by Gary Bernhardt, called The Birth and Death of JavaScript, where he takes, it&#39;s sort of like a sci fi retrospective of JavaScript.&lt;/p&gt;
&lt;p&gt;So, yeah. He, he, he takes the perspective of someone in like 2035 discussing the arc of JavaScript and how it took over the world. And it&#39;s actually, it&#39;s a really good talk and it really got me excited about the potential for JavaScript in the world. And a lot of that really hit, I think it&#39;s very, it was very prescient and I think it got a lot of things very right.&lt;/p&gt;
&lt;p&gt;It has a funny bit where he, through the entire talk, pronounces it, &quot;yava&quot; script, uh, which I always found entertaining, but I would recommend that, um, I. Even though it&#39;s now 11 years old, um, I think it&#39;s, it talks a lot about like WebAssembly and the Browser taking over as the default runtime from the operating system.&lt;/p&gt;
&lt;p&gt;Um, it just, it, it, it takes a very broad, interesting perspective on programming and where we write apps and how they run. Definitely really interesting. And yeah, it&#39;s from the same guy who did that very famous &quot;wat&quot; talk with. you know, making fun of JavaScript. So definitely, definitely check it out. He&#39;s, I think he&#39;s been a little bit less active over the last 10 years, but he had a, he was very influential early in my career. So if I can direct any attention his way.&lt;/p&gt;
&lt;h2 id=&quot;next-app-router-the-good-the-bad-and-the-ugly&quot;&gt;Next App Router: The Good, the Bad, and the Ugly&lt;/h2&gt;
&lt;p&gt;[32:24] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; All right, Mark, you want to take us on to talk about Next?&lt;/p&gt;
&lt;p&gt;[32:27] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Sure. There were a couple of good articles that came out that discussed different companies attempting to migrate to Next and the Pages router and server components. And it&#39;s interesting to kind of look at them and compare and contrast some of the opinions and responses.&lt;/p&gt;
&lt;p&gt;So, Flight Control, which is a startup that does a different AWS dashboard, basically, talked about migrating some of their apps over to the app router. They had a number of things they did like. Layout and loading states. And some of the data loading patterns that they were able to use. They also ran into a lot of problems.&lt;/p&gt;
&lt;p&gt;They felt that they had to kind of duplicate data fetching code in order to handle live updates on the server. They didn&#39;t like issues like lack of routing type safety or some error handling situations. They really struggled a lot with the performance of the development mode server. I saw Brandon Bayer, the founder.&lt;/p&gt;
&lt;p&gt;Complaining about this repeatedly on Twitter, and asking, like, what can we do to try to speed this up? And, I know at the time that they were on the Next 13, I think he later said they did switch to Next 14, and it didn&#39;t seem to get any better. So, whatever specific problems they were running into with the speed of the dev server and memory usage, They considered those to be really major pain points.&lt;/p&gt;
&lt;p&gt;One of the comments in the article was it was marketed as production ready way too early. And it&#39;s been, it&#39;s a year later and we&#39;re still running into all these sorts of issues. So their final conclusion was, we would actually choose Remix if we could have gone back and started over.&lt;/p&gt;
&lt;p&gt;There was another article from a company called Medusa where they switched over their own next starter template to use the app router and server components. Medusa is apparently an e commerce framework. Their response, their opinion seems to be fairly positive overall. They thought that, you know, data fetching and caching was pretty good. They liked being able to use server actions to update state on the server. Talked about some different cases like static pre rendering and managing server versus client components.&lt;/p&gt;
&lt;p&gt;So they said, you know, it does take some getting used to, but, you know, once you switch over to it, it actually feels pretty natural. So, you know, always good to see some real world examples of people actually train these out in practice.&lt;/p&gt;
&lt;p&gt;[34:48] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, super cool. I see that Medusa post also talks about moving state to the URL, which I have worked on a couple of apps that did that, where they meaningfully kept application state up to date in the URL as you click around and navigate.&lt;/p&gt;
&lt;p&gt;The first time I worked on an app that did that. It just, it blew my mind. It was like, oh my God, every app should do this because then you can share, you can, you know, get the app into a certain state and then send it to somebody and they can, you start using the app from exactly that state. Really interesting concept. So cool to see it discussed in the context of Next 14. Cool. Cool.&lt;/p&gt;
&lt;h2 id=&quot;remix-26-27&quot;&gt;Remix 2.6, 2.7&lt;/h2&gt;
&lt;p&gt;[35:22] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I&#39;ll move us on to Remix. Like I said earlier, they put out two minor versions. There&#39;s 2. 6, which looks like it&#39;s mostly a sort of bookkeeping release where they, they made a breaking change to the unstable Vite plugin. So I guess. There you go. There&#39;s a minor release necessary to do that.&lt;/p&gt;
&lt;p&gt;2.7, they shipped VEET support, so they are now calling their, you know, internal usage of VEET stable, which also unlocks their single page application mode, which is pretty cool. That seems like it makes it meaningfully compete with Well, I don&#39;t know.&lt;/p&gt;
&lt;p&gt;I don&#39;t know. It&#39;s interesting to see. I was going to say meaningfully compete with something like Astro or Gatsby, but you know, actually, no, it&#39;s not quite that. It&#39;s not static generation. It&#39;s a single page application. That&#39;s a new context. Single page application is still like, I know the enthusiasm for that mode of publishing has dropped off in the last, you know, two or three years, Jamstack and all that kind of stuff has kind of lost mindshare, but it&#39;s still the simplest way to ship a web application.&lt;/p&gt;
&lt;p&gt;You know, if you&#39;re going to be hosting something, putting up static assets and letting it, you know, render entirely in somebody&#39;s client browser is lowest cost, lowest number of moving parts way to ship a product. So definitely still has use cases, I think. So cool to see Remix adding support for that.&lt;/p&gt;
&lt;p&gt;There was also an interesting feature that I don&#39;t quite know if I fully understand, but they called it server bundles, which looks to be support for basically sharding out a backend into multiple servers. So it looks like you can, at build time, communicate to Remix that this part of the backend. needs to be isolated from this other part of the backend.&lt;/p&gt;
&lt;p&gt;I could be mis explaining that, so don&#39;t take my word as gospel on this. I have not played around with it extensively. They mention that if you make use of this feature, you need to have something in place in front of Remix to direct the traffic and make sure that the correct backend gets, or rather, that the correct bundle gets the requests it expects.&lt;/p&gt;
&lt;p&gt;So it seems like, you know, a very niche feature that, like, large teams, large products with a lot of engineers making changes, a lot of performance characteristics to fine tune will need to take advantage of. So that seems cool. You know, one way of, I don&#39;t know, dealing with growth.&lt;/p&gt;
&lt;p&gt;It also looks to support a React router feature for base names, which is basically just a pre pended route segment. So you can say, this entire web app lives under this part of the path, and then, you know, routing will still work. That is something I have done a couple times in my career, and it has been fiddly every time. So, nice. Good to see.&lt;/p&gt;
&lt;p&gt;They also open sourced Remix. run, the, you know, Marketing website for the whole project. So that&#39;s pretty cool. They discuss some of the trade offs of, you know, why wouldn&#39;t you open source a site like this? Why would you want to? And I guess, why would you want to is basically open source is good and making the website code available is great. Uh, and why wouldn&#39;t you want to is sort of vague security risks and, you know, risk of leaking information and things like that. Nice to see the code for the site getting released.&lt;/p&gt;
&lt;p&gt;They also put up some good first issues on their, on the GitHub. So if you are looking to bust an open source, there&#39;s. There&#39;s some options.&lt;/p&gt;
&lt;h2 id=&quot;state-of-react-native&quot;&gt;State of React Native&lt;/h2&gt;
&lt;p&gt;[38:44] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Moving on to our next set of links. There&#39;s been some good stuff coming out for React Native. Software Mansion, who does, they&#39;re, they&#39;re a consultancy that does a lot of React Native work.&lt;/p&gt;
&lt;p&gt;They maintain quite a number of open source projects. I always see them coming up in discussions of new React Native projects. They put out a state of React Native survey, similar to the like state of JS, state of React, state of CSS. But not organized by the same people, just to be clear.&lt;/p&gt;
&lt;p&gt;They had like 2, 500 respondents, it looks like. Just going to run through some quick stats here. Like two thirds of those have a higher ed degree, which I was a little surprised by. I thought it would be, as someone without a bachelor&#39;s degree, I. Was just surprised to find myself in such a small minority. One sixth of their respondents have no degree at all.&lt;/p&gt;
&lt;p&gt;It looks like the median, you know, I, this is a bit of a guess, I didn&#39;t have access to the data, so I&#39;m just kind of like looking at percentage respondents. It looks like about the median engineer who responded has two, between two and six years of experience with React Native. Between five and 11 years of experience professionally programming in total, and 95 percent of the respondents were male over half between 25 and 34 years old.&lt;/p&gt;
&lt;p&gt;Top three industries represented here, finance, education, entertainment, with below then was consulting, social media, and web three, and. Something I found interesting, the vast majority of respondents, like well over 50%, work on a team with less than five engineers. And one in four people who responded to this survey are solo developers.&lt;/p&gt;
&lt;p&gt;So pretty cool to see. Just, I found those, you know, demographic Breakdowns of who is using React Native and how are they using it to be pretty interesting, just macro level. What&#39;s going on? But yeah, state of React Native survey definitely has a lot of really cool details that I did not get into. Lots of stuff about usage and opinions and what supporting libraries are being used, what features are being taken advantage of, what aren&#39;t. So that was pretty cool.&lt;/p&gt;
&lt;h2 id=&quot;react-native-frameworks-rfc&quot;&gt;React Native Frameworks RFC&lt;/h2&gt;
&lt;p&gt;[40:41] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Also a bit on react Native Frameworks. It looks like there was, I was a little bit confused by this, it seems, as I was reading through it, I guess they&#39;re more sharply defining the boundary between React Native and Expo.&lt;/p&gt;
&lt;p&gt;I&#39;m not sure that there&#39;s another Similar framework to Expo. As I was reading it, I was thinking like, Oh, would like React Native web fit into this, would, you know, the React Native Windows, React Native Mac, you know, the VR support and all that, but it looks like they don&#39;t. Those are not frameworks by this definition.&lt;/p&gt;
&lt;p&gt;So I believe the only framework this is, you know, connected to defining would be Expo. The rest of those are, all of the other runtimes are described as an out of tree platform where, you know, tree there references the Git repo. So React Native. It has first party support for iOS and Android and everything else is an out of tree platform.&lt;/p&gt;
&lt;p&gt;So, this is interesting, it just seems like they&#39;re being a little bit more thoughtful and proactively communicating about responsibilities, saying, we are responsible for this, and a framework like Expo is responsible for this category of things. So, it seemed like a minor, but significant shift. in how things are, I don&#39;t know, defined (chuckles). Seems cool.&lt;/p&gt;
&lt;p&gt;[41:59] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; That was basically my takeaway. I mean, I think with the general React emphasis on, you should be using React built into a framework and most of the framework&#39;s being web focused, I think the React native side of the house was trying to get ahead of the game a little bit and say, Okay, here&#39;s what that would look like on our side if anyone else tries to build an RN based framework.&lt;/p&gt;
&lt;p&gt;[42:19] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I&#39;d agree with that. It does seem like a compliment to, like, how Remix and Next are shaping up, but we don&#39;t have a sharply defined criteria for what is a framework responsible for in React. So, hey, maybe this is a proof of concept. Maybe we&#39;ll see something like that in the web context too. Ha, we can dream.&lt;/p&gt;
&lt;p&gt;Cool. One more thing to share on React Native, there is semi official support for. The Vision OS, which is pretty cool. Always cool to see. I&#39;m impressed at how quickly they got that out. I got to say, it looks like they started working on it in June, 2023. They got a group of concept working in like compatibility mode, but that was like super stripped down, like technically it worked, but you could not, you know, the, what it, what behaviors it supported were, the list of that was very short.&lt;/p&gt;
&lt;p&gt;So this is now a much more full featured way of writing apps on the Vision OS with React Native. They described it as essentially a fork of the React Native core, which, whoo, that&#39;s a lot of work, haha. And something I found pretty cool, pretty impressive, is they got it working without even having access to a hardware device.&lt;/p&gt;
&lt;p&gt;So this is all just on the Vision Pro Simulator. Like, wow, that&#39;s hard, haha. All right, that&#39;s all of the main news items we, we have so far. Mark, take us away with the first lightning round.&lt;/p&gt;
&lt;h2 id=&quot;bun-shell-support-&quot;&gt;⚡Bun shell support ⚡&lt;/h2&gt;
&lt;p&gt;[43:34] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; All right. So the Bunn JavaScript runtime has announced that they now have built in shell support. You know, it&#39;s always been kind of hard to kick off.&lt;/p&gt;
&lt;p&gt;external programs from within a, like a node JavaScript application. Like you can do it, but you have to call, you know, functions that capture standard in, standard out. And it&#39;s, it&#39;s not really ergonomic or intuitive. So bun now has a built in dollar sign variable. And when you use it, you just pass in like a command that you would have run in a bash shell, like, you know, LS star dot JS, or, you know, the infamous RM dash RF.&lt;/p&gt;
&lt;p&gt;And it just automatically executes it and hands back the results as a nice neat async await. I&#39;ve actually got a little bit of prior experience with something like this. I had used a Python package years ago that did something very similar. So you could write Python scripts that It felt very shell scripty in terms of executing other commands and getting the output back. So I can definitely see some nice advantage of this.&lt;/p&gt;
&lt;p&gt;Working with scripting in a language like JavaScript is a lot nicer than dealing with Bash. The issue here is that being able to use commands like ls or rm, assume that you&#39;re running inside of a Bash shell. Which normally means that you&#39;re running on Linux or Mac, because Windows doesn&#39;t have those by default.&lt;/p&gt;
&lt;p&gt;A lot of people, like myself, might be using a WSL Linux environment on Windows, or at least the Git Bash version ported to Windows. But they&#39;ve apparently gone and polyfilled a lot of the common shell commands you would be using, as well. This is not the first attempt to do that. There&#39;s an existing library called Shell. js, which provides JavaScript only implementations of common bash commands. I believe the Yarn package manager has already done something similar as well, so that you could, I believe, I haven&#39;t looked at this in a while. But I believe if you&#39;re using scripts in your package. json, Yarn will automatically fill in some commands like rm or setting environment variables to be cross platform and work on Windows and not just on Linux or Mac.&lt;/p&gt;
&lt;p&gt;So there&#39;s some prior art here, but it&#39;s nice to see this built into Bun.&lt;/p&gt;
&lt;p&gt;[45:46] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, super cool.&lt;/p&gt;
&lt;h2 id=&quot;deno-2023-2024-&quot;&gt;⚡Deno 2023, 2024 ⚡&lt;/h2&gt;
&lt;p&gt;[45:46] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; The Deno team had a pretty cool looking Summary of what they&#39;ve been up to in 2023. And I&#39;m just going to roll straight into, they also did a blog post about their, they did a survey and announced a bit of a roadmap for 2024.&lt;/p&gt;
&lt;p&gt;They&#39;re targeting a major release this year, which they say will offer, third party framework compatibility, the ability to use any npm module, and all while having the best in class developer experience.&lt;/p&gt;
&lt;p&gt;I love all the explosion of alternate runtimes that we&#39;ve been getting. I remember watching the Deno talk a couple years ago and just thinking that it was a really interesting take on What did we get wrong in Node?&lt;/p&gt;
&lt;p&gt;Deno is from the originator of Node. So he, this is very much a take two on a JavaScript runtime on the server. So I, I&#39;ve been following him pretty closely just to see what&#39;s going on there.&lt;/p&gt;
&lt;h2 id=&quot;jsrio-&quot;&gt;⚡JSR.io ⚡&lt;/h2&gt;
&lt;p&gt;[46:35] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I guess I&#39;ll roll straight into another one that I had queued up for later, but it&#39;s closely related.&lt;/p&gt;
&lt;p&gt;The Deno team is doing a new JavaScript registry called jsr. io. I just got access to it and it seems pretty neat, I gotta say. For one, it&#39;s ESM only, so there&#39;s There is no longer going to be a CommonJS option for publishing to this registry, which that alone has me interested. The CommonJS vs.&lt;/p&gt;
&lt;p&gt;ESM split has been an absolute nightmare and a huge blight on the JavaScript ecosystem. So, that alone seems like a pretty good reason to try a new registry. It does look like they are starting from scratch. Um, I have I poked around just a little bit, and I don&#39;t see any familiar modules published there, but I&#39;m excited to see where it goes.&lt;/p&gt;
&lt;p&gt;It&#39;s waitlisted right now, so if you are, if that sounds interesting, hop in the waitlist. I got off of it in like two or three weeks, so I have no idea what that means. But yeah, Deno, a lot of stuff going on.&lt;/p&gt;
&lt;p&gt;[47:36] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; I know I saw an article or two somewhere that was talking about using it.&lt;/p&gt;
&lt;p&gt;I think one of the interesting changes is it looks like they actually want you to just publish your TypeScript source code and the registry takes care of doing the compilation, I think, was something I saw. That would be a very significant change.&lt;/p&gt;
&lt;p&gt;[47:57] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, oh that&#39;s super cool.&lt;/p&gt;
&lt;h2 id=&quot;how-hot-module-replacement-works&quot;&gt;⚡How Hot Module Replacement works⚡&lt;/h2&gt;
&lt;p&gt;[47:59] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Alright, next up, there was an article talking about how are the hot module replacement feature is actually implemented inside of the Vite bundler.&lt;/p&gt;
&lt;p&gt;This is long, it&#39;s detailed, frankly this is all information you will never need to know in order to use or build applications. But it&#39;s a really good article that actually digs into the technical details of what does it take to implement the, you know, you know, module graphs and swapping and all the specific APIs that actually make hot module reloading possible.&lt;/p&gt;
&lt;p&gt;[48:29] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, really good post. I love deep dives into obscure parts of the ecosystem.&lt;/p&gt;
&lt;h2 id=&quot;pmdrs-webgl-uikit&quot;&gt;⚡pmdrs WebGL uikit⚡&lt;/h2&gt;
&lt;p&gt;[48:33] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Cool. The, the Poimanders, never quite sure how to pronounce that. They shared a fully functional WebGL UI rendering engine. It seems pretty cool, it&#39;s basically a layout engine for React 3 Fiber, which is pretty neat. If you&#39;re trying to work in WebGL, like that&#39;s about as close to bare metal as you can get in the browser from a, you know, like rendering engine side of things, you know, set aside web assembly and whatever you, so, but just like.&lt;/p&gt;
&lt;p&gt;Any kind of layout, you don&#39;t get any support for. So, pretty interesting to see somebody taking advantage of work done on React Native, actually, because this relies on the Flexbox engine that was built in order to facilitate React Native, the Yoga layout engine. So, super cool, definitely check that out if you are experimenting with WebGL on a side project.&lt;/p&gt;
&lt;p&gt;Should make some of these things a little bit easier.&lt;/p&gt;
&lt;h2 id=&quot;updates-from-the-100th-tc39-meeting&quot;&gt;⚡Updates from the 100th TC39 meeting⚡&lt;/h2&gt;
&lt;p&gt;[49:25] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Alright, and the last item on the list is some updates from TC39 as potential new JavaScript syntax features make their way through the pipeline. Not a lot of huge news here, a lot of items at stage 1. There&#39;s a proposal called Promise. try, which is basically like a, almost, like a try catch for running any kind of function, sync or async, and getting back a promise for the result.&lt;/p&gt;
&lt;p&gt;One other thing that I saw, let me go find the details on this. I believe I saw mentioned that they&#39;ve actually added a new stage number to the TC39 process. So traditionally it&#39;s been like stage 0 is just, we have an idea, stage 1 is we&#39;ve proposed the idea. Stage 2 is, we, we think this idea could work, but it needs to be fleshed out. Stage 3 is, this basically works, we&#39;ve got it implemented in a couple browsers, it&#39;s just Nailing down the final details and then stage four is it&#39;s good to go.&lt;/p&gt;
&lt;p&gt;They&#39;ve actually added a new stage, which is, and this appears to be a real official thing, Stage 2.7 because it&#39;s more than stage two, but less than stage three. And I think I actually saw a comment that stage 2.7 is a little bit like what stage three used to be and now stage three is slightly more involved. This actually appears to be a real Thing.&lt;/p&gt;
&lt;p&gt;[50:46] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I love that. It&#39;s more than halfway, but. Cool.&lt;/p&gt;
&lt;p&gt;Alright, that&#39;s all we got. Thank you so much for joining us. We&#39;ll be back on the last Wednesday of the month here in the live stage of Reactiflux or back in your podcast feed just as soon as we can.&lt;/p&gt;
&lt;p&gt;We gather sources from all sorts of newsletters like React Status, bytes.dev, Next JS Weekly, React Digest, This Week in React, love that one, as well as like the React JS subreddit, here in Reactiflux. We do check the #tech-reads-and-news channel. So definitely if you see any news coming out, let us know. Put it in that #tech-reads-and-news channel, or if you like, you can send it to &lt;a href=&quot;mailto:hello@reactiflux.Com&quot;&gt;hello@reactiflux.Com&lt;/a&gt;. But make sure to include TMIR in the subject line. It&#39;s an acronym for the show.&lt;/p&gt;
&lt;p&gt;And we are starting to professionalize. We&#39;re trying to grow and find some sponsors. So if this is a show that you get value from and want to support, best way to do so is by giving us a review or telling your friends about it.&lt;/p&gt;
&lt;p&gt;Thanks so much. Excited to see what happens in March. Bye all.&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2024-02</link><guid isPermaLink="false">reactiflux-tmir-2024-02</guid><pubDate>Tue, 27 Feb 2024 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>This Month in React (January 2024)</title><description>&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://open.spotify.com/episode/5vn2bvmAkFxK3hvNQfGcmx?si=LNR0KUNwRnmpt7x2jJMf0g&quot;&gt;Spotify&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://podcasts.apple.com/us/podcast/tmir-2024-01-the-year-ahead-why-are-people-so-miffed/id1661733526?i=1000644051585&quot;&gt;Apple Podcasts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://anchor.fm/s/a1f8a59c/podcast/rss&quot;&gt;RSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://podcasters.spotify.com/pod/show/reactiflux&quot;&gt;or anywhere you prefer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;iframe src=&quot;https://podcasters.spotify.com/pod/show/reactiflux/embed/episodes/TMiR-2024-01-The-year-ahead-why-are-people-so-miffed-e2fami9&quot; height=&quot;102px&quot; width=&quot;400px&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; referrerpolicy=&quot;no-referrer&quot;&gt;&lt;/iframe&gt;
&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;Quick hits
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-01#reviewing-layoffs&quot;&gt;00:32&lt;/a&gt;]&lt;/code&gt;: &lt;a href=&quot;https://layoffs.fyi/&quot;&gt;Layoffs.fyi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-01#conferences&quot;&gt;03:06&lt;/a&gt;]&lt;/code&gt;: Conferences
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://react.paris/&quot;&gt;React Paris&lt;/a&gt; March 22nd, Paris, FR&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.epicweb.dev/conf&quot;&gt;Epic Web&lt;/a&gt; April 11th, Park City, UT&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.reactmiami.com/&quot;&gt;React Miami&lt;/a&gt; April 19-20th, Miami, FL&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://reactconnection.io/&quot;&gt;React Connection / RN Connection&lt;/a&gt; April 22nd, Paris, FR&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://conf.react.dev/&quot;&gt;React Conf 2024&lt;/a&gt; May 15-16 Henderson, NV&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-01#library-releases&quot;&gt;03:58&lt;/a&gt;]&lt;/code&gt;: New releases
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://react-spectrum.adobe.com/releases/2023-12-20.html&quot;&gt;React Aria generally available&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ui.shadcn.com/docs/changelog&quot;&gt;New shadcn/ui components&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/blog/2023/12/eslint-v9.0.0-alpha.0-released/&quot;&gt;Eslint v9 alpha 0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/jquery/jquery/issues/5365&quot;&gt;jQuery 4.0??&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.date-fns.org/v3-is-out/&quot;&gt;date-fns v3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://rescript-lang.org/blog/release-11-0-0&quot;&gt;ReScript v11&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-01#react-libraries-for-2024-by-robin-wieruch&quot;&gt;08:08&lt;/a&gt;]&lt;/code&gt;: &lt;a href=&quot;https://www.robinwieruch.de/react-libraries/&quot;&gt;React Libraries for 2024&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-01#rising-stars-on-github&quot;&gt;09:54&lt;/a&gt;]&lt;/code&gt;: &lt;a href=&quot;https://risingstars.js.org/2023/en#section-react&quot;&gt;Rising Stars for JS, React ecosystem&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-01#bytes.dev-2024-predictions&quot;&gt;10:56&lt;/a&gt;]&lt;/code&gt;: &lt;a href=&quot;https://bytes.dev/archives/250&quot;&gt;2024 bytes.dev predictions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-01#speculating-on-react-19&quot;&gt;12:29&lt;/a&gt;]&lt;/code&gt;: React 19 and upcoming features
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Context Selectors! &lt;a href=&quot;https://twitter.com/acdlite/status/1741188563926962190&quot;&gt;Discussion&lt;/a&gt; and a &lt;a href=&quot;https://interbolt.org/blog/react-use-selector-optimization/&quot;&gt;summary from&lt;/a&gt; &lt;a href=&quot;https://twitter.com/interbolt_colin&quot;&gt;Colin Campbell&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/facebook/react/issues/11347#issuecomment-1899140345&quot;&gt;Proper Web Component support planned for React 19&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eisenbergeffect.medium.com/web-components-2024-winter-update-445f27e7613a&quot;&gt;Web Components 2024 feature updates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-01#upcoming-client-features-in-react&quot;&gt;19:01&lt;/a&gt;]&lt;/code&gt;: &lt;a href=&quot;https://twitter.com/rickhanlonii/status/1747333623152275685&quot;&gt;Rick Hanlon: some upcoming client features I&#39;m excited about&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://marmelab.com/blog/2024/01/23/react-19-new-hooks.html&quot;&gt;New client-side hooks coming in React 19&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/dan_abramov2/status/1747640983980806466&quot;&gt;React Forget updates&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;Framework updates
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-01#remix-spa-mode&quot;&gt;22:34&lt;/a&gt;]&lt;/code&gt;: &lt;a href=&quot;https://github.com/remix-run/remix/pull/8338&quot;&gt;Remix working on “SPA mode”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/remix-run/remix/discussions/7638#discussioncomment-8286839&quot;&gt;Likely stabilize as Vite plugin does&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/ryanflorence/status/1752166725028872432&quot;&gt;Remix also working on RSC support&lt;/a&gt;, and will have &lt;a href=&quot;https://twitter.com/ryanflorence/status/1752711755384692854&quot;&gt;differences from Next’s approach&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-01#next-14.1&quot;&gt;24:53&lt;/a&gt;]&lt;/code&gt;: &lt;a href=&quot;https://nextjs.org/blog/next-14-1&quot;&gt;Next.js 14.1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-01#annoyed-at-react-roundup&quot;&gt;27:56&lt;/a&gt;]&lt;/code&gt;: “Annoyed at React” roundup
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.cassidoo.co/post/annoyed-at-react/&quot;&gt;Kind of annoyed at React&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://dev.to/matfrana/react-where-are-you-going-5284&quot;&gt;React, where are you going?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://dev.to/matfrana/react-where-are-you-going-5284#comment-2c8g3&quot;&gt;Mark’s reply&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/ryanflorence/status/1747699804598395215&quot;&gt;Ryan Florence on Twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://macwright.com/2024/01/03/miffed-about-react&quot;&gt;Increasingly miffed about the state of React releases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://piccalil.li/blog/react-is-getting-a-bit-of-a-kicking-recently/&quot;&gt;React is getting a bit of a kicking lately&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-01#rsc-updates&quot;&gt;37:55&lt;/a&gt;]&lt;/code&gt;: RSCs
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.mayank.co/blog/react-server-components/&quot;&gt;RSCs: The Good, the Bad, and the Ugly&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=8DyzsSWNcDE&quot;&gt;Leerob reacts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://overreacted.io/the-two-reacts/&quot;&gt;The Two Reacts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bobaekang.com/blog/rsc-is-react-server-plus-component/&quot;&gt;RSC is React Server + Component&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/dan_abramov2/status/1745795274977493317&quot;&gt;“RSC does not require a server”&lt;/a&gt; – Dan&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.telerik.com/blogs/react-server-components-paradigm&quot;&gt;React Server Components paradigm&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;⚡ Lightning round ⚡
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-01#ryan-carniato-js-frameworks-into-2024&quot;&gt;47:40&lt;/a&gt;]&lt;/code&gt;: &lt;a href=&quot;https://dev.to/this-is-learning/javascript-frameworks-heading-into-2024-i3l&quot;&gt;Ryan Carniatto, JS Frameworks heading into 2024&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-01#rspack&quot;&gt;48:15&lt;/a&gt;]&lt;/code&gt;: &lt;a href=&quot;https://rsbuild.dev/guide/migration/cra&quot;&gt;RSBuild guide to migrating from CRA&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-01#benchmarking-react-native-styling&quot;&gt;50:10&lt;/a&gt;]&lt;/code&gt;: &lt;a href=&quot;https://www.reddit.com/r/reactnative/comments/1adasz4/react_native_cssstylesheet_frameworks_benchmark/&quot;&gt;React Native styling tool benchmarks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-01#weird-things-engineers-believe-about-web-development&quot;&gt;50:40&lt;/a&gt;]&lt;/code&gt;: &lt;a href=&quot;https://birtles.blog/2024/01/06/weird-things-engineers-believe-about-development/&quot;&gt;Weird things engineers believe about Web development&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-01#tea.xyz&quot;&gt;51:59&lt;/a&gt;]&lt;/code&gt;: &lt;a href=&quot;https://twitter.com/mxcl/status/1749894737862025330?s=46&amp;amp;t=uXPe0cHZZfyFyGotvsr9IQ&quot;&gt;Homebrew creator launching Tea.xyz, an OSS funding project&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-01#everything-on-npm&quot;&gt;55:44&lt;/a&gt;]&lt;/code&gt;: &lt;a href=&quot;https://www.scmagazine.com/news/npm-registry-prank-leaves-developers-unable-to-unpublish-packages&quot;&gt;NPM registry prank leaves developers unable to unpublish packages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-01#codepen-top-10&quot;&gt;57:00&lt;/a&gt;]&lt;/code&gt;: &lt;a href=&quot;https://codepen.io/2023/popular/pens/10&quot;&gt;CodePen top 10&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-2024-01#v8-performance-improvements&quot;&gt;57:37&lt;/a&gt;]&lt;/code&gt;: &lt;a href=&quot;https://v8.dev/blog/holiday-season-2023&quot;&gt;V8 performance improvements&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;[00:00] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Thanks everyone for joining us for January&#39;s this month in React. I&#39;m Carl. I am a staff product developer and freelance community manager here at React Tofl, the Discord for React Professionals. And Mark, you wanna introduce yourself?&lt;/p&gt;
&lt;p&gt;[00:14] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Hi, I&#39;m Mark. My day job is at Replay io where we&#39;re building a time, traveling demographer JavaScript.&lt;/p&gt;
&lt;p&gt;[00:20] And in my copious amount of spare time, I maintain Redux.&lt;/p&gt;
&lt;p&gt;[00:23] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Seems like it&#39;s been a big month. I don&#39;t know if that&#39;s just January, but yeah, let&#39;s dive right into it. I&#39;m going to start off with a couple of, like, quick hits of small news.&lt;/p&gt;
&lt;h2 id=&quot;reviewing-layoffs&quot;&gt;Reviewing layoffs&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://layoffs.fyi/&quot;&gt;Layoffs.fyi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[00:32] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I&#39;ve been keeping track of layoffs. fyi. The first month of 2024 is looking not great. January layoffs have picked up a decent amount compared to last month, but compared to last year, January 2023, they&#39;re down like 70%. So, seems like it&#39;s trending in a good direction on an annual basis, but my instinct is that the next year is going to still be pretty rough.&lt;/p&gt;
&lt;p&gt;[00:58] Getting more specific, in January, 2022, there were five layoffs with about half a thousand affected. 2022 had a pretty steady upward trend for the rest of the year, which spiked really sharply in November. And then again, in January of 2023. Uh, so 2023 in January, there were 277 layoffs with about 89,000 affected. Jumping ahead to this year. January, there were 118 layoffs with about 31,000 affected. So this January is significantly less bad than last January, but compared to two years ago, it is... not even close it is super super high, still.&lt;/p&gt;
&lt;p&gt;[01:38] But looking at this annually as part of a cycle, um, I attribute some of this, I&#39;d attribute the spike in November to businesses wanting to avoid holiday layoffs and sort of front-loading those.&lt;/p&gt;
&lt;p&gt;[01:49] So instead of splitting that same number of layoffs across two months, just doing it all at once in November. Um, and then. In January with new financial fears, starting new budgets. Uh, Annual decisions being made. In this fearful atmosphere management is biasing towards reducing expenses and lengthening runways, which I think is why there was such a large spike in January.&lt;/p&gt;
&lt;p&gt;[02:17] I also want to note that the first time the us fed hiked interest rates was in March of 2022. So looking at how. Low layoffs were in the first months of 2022, and then seeing how they spiked, or rather how they grew over time through the rest of the year. I think that a large part of the thrashing, ensuring that we&#39;re seeing right now in layoffs and, um, poor job climate is due to really national and global scale economic conditions.&lt;/p&gt;
&lt;p&gt;[02:49] Uh, you know, there&#39;s no more zero interest rates, so no more zero interest rate phenomenons, and nobody quite knows what the. Important financial metrics to optimize for, and even what to target are in this new funding environment. So I think that&#39;s really important context to keep in mind when thinking about layoffs.&lt;/p&gt;
&lt;h2 id=&quot;conferences&quot;&gt;Conferences&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://react.paris/&quot;&gt;React Paris&lt;/a&gt; March 22nd, Paris, FR&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.epicweb.dev/conf&quot;&gt;Epic Web&lt;/a&gt; April 11th, Park City, UT&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.reactmiami.com/&quot;&gt;React Miami&lt;/a&gt; April 19-20th, Miami, FL&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://reactconnection.io/&quot;&gt;React Connection / RN Connection&lt;/a&gt; April 22nd, Paris, FR&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://conf.react.dev/&quot;&gt;React Conf 2024&lt;/a&gt; May 15-16 Henderson, NV&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;[03:06] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Conferences coming up in the next two to three months. I&#39;m just going to run through a couple.&lt;/p&gt;
&lt;p&gt;[03:11] We&#39;ve got React Paris going on in March, towards the end of March 22nd, in fact.&lt;/p&gt;
&lt;p&gt;[03:17] Epic Web, which is hosted by Kent C. Dodds. That&#39;s going to be going on in April 11th in Park City, Utah.&lt;/p&gt;
&lt;p&gt;[03:24] React Miami, April 19th and 20th, in Miami, obviously.&lt;/p&gt;
&lt;p&gt;[03:29] Another Paris conference it looks like, or, I guess conference.&lt;/p&gt;
&lt;p&gt;[03:33] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; It&#39;s an actual conference, and in fact, I will be speaking at React Connection Paris.&lt;/p&gt;
&lt;p&gt;[03:37] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; React Connection, React Native Connection, April 22nd in Paris. That&#39;s two Paris conferences exactly one month apart. So that&#39;s neat.&lt;/p&gt;
&lt;p&gt;[03:46] And React Conf, the React Conf, is happening for the first time in three or four years. So that&#39;s, we&#39;re going to talk more about that later, but definitely pretty excited to see what they&#39;ve got to share.&lt;/p&gt;
&lt;h2 id=&quot;library-releases&quot;&gt;Library releases&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://react-spectrum.adobe.com/releases/2023-12-20.html&quot;&gt;React Aria generally available&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ui.shadcn.com/docs/changelog&quot;&gt;New shadcn/ui components&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/blog/2023/12/eslint-v9.0.0-alpha.0-released/&quot;&gt;Eslint v9 alpha 0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/jquery/jquery/issues/5365&quot;&gt;jQuery 4.0??&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.date-fns.org/v3-is-out/&quot;&gt;date-fns v3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://rescript-lang.org/blog/release-11-0-0&quot;&gt;ReScript v11&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;[03:58] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; All right, continuing on. Some more quick hits before we dive into the real proper link discussion. A number of new releases, just like smaller libraries, that don&#39;t quite merit a full discussion round in the main segment. Just thought I&#39;d run through them real quick.&lt;/p&gt;
&lt;p&gt;[04:13] React ARIA from Adobe, which I As far as I understand is a component library more specifically aimed like the value proposition of it being accessibility, an area I always think of as an accessibility thing. That is a huge advantage of using a component toolkit like that is getting the long tail of smaller benefits like accessibility. So definitely interested to see that.&lt;/p&gt;
&lt;p&gt;[04:36] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; The important bit to distinguish there is React Aria, the original form of it is actually a whole bunch of hooks that are kind of like the headless data type management. Here&#39;s a hook for managing slider data or something. And this specifically, I believe they&#39;ve then built their own component library on top of that. You&#39;ve always been able to use the hooks yourself in your own components, but they&#39;ve now also built a set of components that make use of those hooks as well.&lt;/p&gt;
&lt;p&gt;[05:04] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Starting from the core primitives, ironing out the functionality there and then exposing it for, through a different means of accessing it. That sounds really cool. I&#39;m really into it.&lt;/p&gt;
&lt;p&gt;[05:13] There are new ShadCN UI components. I don&#39;t have a list prepared to read off. Oh, yes I do. Carousel, drawer, pagination, resizable, a toast component called sonner, and a bunch of CLI updates. Yeah, love ShadCN UI. Love the concept. So, check it out.&lt;/p&gt;
&lt;p&gt;[05:30] ESLint has a new version 9 alpha 0. Don&#39;t have anything prepared to speak about there. It&#39;s not ready for production use just to get feedback right now, but it caught my eye that there&#39;s a new major version of ESLint coming.&lt;/p&gt;
&lt;p&gt;[05:44] Speaking of major versions, there is a major version of jQuery version 4 that is in the works. It&#39;s not released yet, but I caught discussion of the announcement blog post and upgrade guide, so cool! jQuery, blast from the past, love to see it.&lt;/p&gt;
&lt;p&gt;[05:59] Two more here for you. There&#39;s &lt;code&gt;date-fns&lt;/code&gt; v3. &lt;code&gt;date-fns&lt;/code&gt; is definitely a great library. Good replacement tool for Moment, if you&#39;re still using Moment. And yeah, I love it. It&#39;s great. Major version.&lt;/p&gt;
&lt;p&gt;[06:11] And last one. This is a little bit more of a stretch, but Rescript has Major Version 11 coming out. It&#39;s a compile to JavaScript typed language that I saw described as TypeScript the good parts. I haven&#39;t used it. I&#39;m not super familiar with what its value proposition is, but yeah. New version. Seems cool. Love an experimental language.&lt;/p&gt;
&lt;p&gt;[06:32] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; There is some amount of buzz around what was originally known as, let&#39;s see, what was it before Rescript? Something else that started with RE, and I can&#39;t think of it right now. The language itself started as a fork of OCaml with more JavaScript like syntax.&lt;/p&gt;
&lt;p&gt;[06:49] Jordan Walke and Chung Lo and some other folks in the React community were really trying to push this around like 2017 or so. And it felt like there might be enough bleed over from the React community to make it a thing. And there was a whole series of forks around the tool and the language syntax that really killed any actual momentum it had.&lt;/p&gt;
&lt;p&gt;[07:12] And that combined with TypeScript really taking over as the definitive way to write types for JavaScript. I feel like it&#39;s moment passed around 2017, so there&#39;s, you know, apparently some, still some development work ongoing, and there&#39;s, there&#39;s always arguments of, use a better language, and it fixes some of the issues with TypeScript and JavaScript, but I think in practice TypeScript is good enough at this point, and, and the ecosystem momentum is there.&lt;/p&gt;
&lt;p&gt;[07:40] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Tile to JavaScript language is a pretty hard sell on starting. If you&#39;re going to start a new product that they&#39;re going to maintain for years, it&#39;s a big swing to try and use a brand new language. But I always appreciate seeing experimental languages. I think that&#39;s where a lot of the experimentation happens.&lt;/p&gt;
&lt;p&gt;[07:56] And then maybe some of the learnings from running a language like that will be brought back into JavaScript, the ECMAScript process, or into TypeScript itself. Love to see it.&lt;/p&gt;
&lt;p&gt;[08:07]&lt;/p&gt;
&lt;h2 id=&quot;react-libraries-for-2024-by-robin-wieruch&quot;&gt;&lt;a href=&quot;https://www.robinwieruch.de/react-libraries/&quot;&gt;React Libraries for 2024 by Robin Wieruch&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[08:08] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; We&#39;re going to start off talking about React libraries for 2024 from Robin Wieruch, which I hope I&#39;m not butchering that too badly.&lt;/p&gt;
&lt;p&gt;[08:16] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; I don&#39;t know how to pronounce his last name either.&lt;/p&gt;
&lt;p&gt;[08:18] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Robin has been publishing very high quality blog posts and explanations and Just great content for years and years. I remember reading his stuff way back in 2015, 16, I want to say. And this is yet another in the same vein. It&#39;s a huge, very comprehensive list of recommended tools for all sorts of different aspects of building a real production website.&lt;/p&gt;
&lt;p&gt;[08:45] I mean, the table of contents, it&#39;s A full page on its own. Starting a new project, package manager, state management, data fetching, authentication, database, testing, rich text editor, drag and drop, mail. Just, it&#39;s a great list. Definitely worth reading, definitely worth checking out, especially if you&#39;re in a position of spinning up a new Greenfield project.&lt;/p&gt;
&lt;p&gt;[09:05] Something like that.&lt;/p&gt;
&lt;p&gt;[09:07] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; And, and actually on, on that note, uh, Robin also just put up a post, um, talking about how to actually create a new React project in 2024. His argument, not surprisingly, is start with Vite, especially if you&#39;re learning, it&#39;s, it&#39;s simpler, there&#39;s Fewer concepts to learn at once, and then here&#39;s when you would consider Vite, here&#39;s when you would consider Next, here&#39;s when you would consider Astro.&lt;/p&gt;
&lt;p&gt;[09:31] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; What I have found myself reaching for personally when I&#39;m starting out has been either just whatever Next or Remix. They both ship starter kits, but I&#39;ve been using React for 10 years. I appreciate the concept of a novelty budget when working with a, uh, starting a new project. So, limiting the number of new concepts you&#39;re exposing yourself to is definitely smart advice.&lt;/p&gt;
&lt;h2 id=&quot;rising-stars-on-github&quot;&gt;&lt;a href=&quot;https://risingstars.js.org/2023/en#section-react&quot;&gt;Rising Stars on GitHub&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[09:54] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Very cool. Somewhat related, I came across a Rising Stars Annual award thing. It&#39;s a tracking open source projects that gained the most stars on GitHub over 2023. Pretty cool. Top 10, I think, for the React ecosystem were ShadCNUI, Excalidraw which I don&#39;t know, it&#39;s a, it&#39;s not a library. It&#39;s not really a React tool.&lt;/p&gt;
&lt;p&gt;[10:21] I know it was created by. Christopher Chedeau . Christopher Chedeau, thank you. So I think that&#39;s why it&#39;s in here. I love it, but it&#39;s not, I don&#39;t know if I would call it a React project. Anyway, it did beat out Next. JS though, that&#39;s number three. Zustand, number four, Refine, Docusaurus, love Docusaurus, CreateT3App, NextUI, Tremor, and Serverless stack.&lt;/p&gt;
&lt;p&gt;[10:42] So that&#39;s the top 10. There&#39;s a whole lot more, and they had a bunch of different ecosystems represented. It&#39;s a pretty cool list, pretty neat to see. Yeah, I&#39;ve seen a comment in the chat, sad not to see UnoCSS. That&#39;s a new one to me. Wanted to check out though.&lt;/p&gt;
&lt;h2 id=&quot;bytesdev-2024-predictions&quot;&gt;&lt;a href=&quot;https://bytes.dev/archives/250&quot;&gt;Bytes.dev 2024 Predictions&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[10:56] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Cool, yeah, another, keeping the thread of 2024, I don&#39;t know, analysis, predictions, Bytes, the Bytes. dev newsletter, which is one of the places that I pull links from to discuss, it put out a a list of predictions for 2024 and This is put out by Tyler McGinnis. He&#39;s been huge in the React ecosystem for years and years. I think bytes. dev is like one of the largest developer newsletters. Definitely a great source.&lt;/p&gt;
&lt;p&gt;[11:23] Some of his predictions though,&lt;/p&gt;
&lt;p&gt;[11:25] bun becomes the default runtime for the front end. That seems like a big swing. I don&#39;t know. Mark, what do you think about that?&lt;/p&gt;
&lt;p&gt;[11:30] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; So the caveat here is that the Bytes newsletter is written in a very intentional tongue in cheek humorous style.&lt;/p&gt;
&lt;p&gt;[11:38] There&#39;s real links and real thoughts, but Bytes is very much a sarcastic humor kind of newsletter rather than a strict straight to the point newsletter. So most of these predictions are very tongue in cheek.&lt;/p&gt;
&lt;p&gt;[11:51] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Second prediction was more than three of your favorite open source software slash dev tool startups will die.&lt;/p&gt;
&lt;p&gt;[11:57] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; I mean, that one&#39;s pretty much a given, right?&lt;/p&gt;
&lt;p&gt;[11:59] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, right. Fair. But you could make that about any startup class over an annual timescale, but fair enough. AI will replace no code, low code tools. Seems plausible. Maybe not this year. Netlify gets acquired by GoDaddy. Yeah. Well, I don&#39;t know. I won&#39;t go through every single one, but I, one, another one that I did was no one will figure out what local first actually means.&lt;/p&gt;
&lt;p&gt;[12:19] I have opinions there. I feel like local first is a good thing to strive for, but hopefully more people figure it out this year.(chuckles) Cool. Mark, you want to tell us about React 19?&lt;/p&gt;
&lt;h2 id=&quot;speculating-on-react-19&quot;&gt;Speculating on React 19&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Context Selectors! &lt;a href=&quot;https://twitter.com/acdlite/status/1741188563926962190&quot;&gt;Discussion&lt;/a&gt; and a &lt;a href=&quot;https://interbolt.org/blog/react-use-selector-optimization/&quot;&gt;summary from&lt;/a&gt; &lt;a href=&quot;https://twitter.com/interbolt_colin&quot;&gt;Colin Campbell&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/facebook/react/issues/11347#issuecomment-1899140345&quot;&gt;Proper Web Component support planned for React 19&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eisenbergeffect.medium.com/web-components-2024-winter-update-445f27e7613a&quot;&gt;Web Components 2024 feature updates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/rickhanlonii/status/1747333623152275685&quot;&gt;Rick Hanlon: some upcoming client features I&#39;m excited about&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://marmelab.com/blog/2024/01/23/react-19-new-hooks.html&quot;&gt;New client-side hooks coming in React 19&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/dan_abramov2/status/1747640983980806466&quot;&gt;React Forget updates&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;[12:29] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yes, so when we did this last month and we were doing some predictions for this year, saying that I expect React 19 to probably happen this year because we were seeing some initial discussions and mentions from the React team, and while we still don&#39;t actually have a timeline, there is a lot more activity going on.&lt;/p&gt;
&lt;p&gt;[12:50] On that front, item one, Satya, one of the React Forget team members, happened to drop by one of our discussion threads over in the Tech Reads and News channel and said that the general discussion of the React team seems to be that the next stable release of React will be React 19, there hasn&#39;t been any specific discussions or plans around a React 18. 3 minor version, and that generally matches just the other bits and pieces of discussion I&#39;ve seen so far.&lt;/p&gt;
&lt;p&gt;[13:20] So we can probably expect that the next actual release will be React 19. One really big thing that came out In some Twitter threads is the idea that React might finally ship a form of context selectors.&lt;/p&gt;
&lt;p&gt;[13:36] This was a proposal that was first done back in 2019 by Josh Story, who at the time was just a community member. He now currently works for Vercel building server side React stuff. Andrew Clarke played with a prototype of building context selectors in like 2020 and then it&#39;s the concept sat around and hasn&#39;t gone anywhere, especially with all the focus on suspense and server components.&lt;/p&gt;
&lt;p&gt;[14:01] But in this discussion thread, the React team has said that their approach for implementing quote, context selectors And optimizing re renders when a component only needs one piece of data from a context will actually be to use the new named use, which is still horribly confusing. Like, you&#39;re going to be able to call the use hook inside of use memo, and that basically becomes like your selector function, in a sense.&lt;/p&gt;
&lt;p&gt;[14:34] And that will actually allow React to look at the contents of what you&#39;ve returned, and maybe even call the memo callback itself, separately from rendering, determine that, look, nothing actually changed, and actually be able to skip out of potential re renders that way. I don&#39;t know if this will actually be in React 19 yet, I don&#39;t know if it&#39;s Something that they&#39;ve proof of concepted already, but that&#39;s, that is a pretty big deal.&lt;/p&gt;
&lt;p&gt;[15:04] We&#39;ve been waiting for that one for a while. Another one that we&#39;ve been waiting for a very long time is proper web component support. React allows you to render web component elements. They&#39;re just, HTML string tags in that sense, but there&#39;s been lots of complexity around being able to accurately pass props into web components because of the differences between React passing around JavaScript values as props.&lt;/p&gt;
&lt;p&gt;[15:31] Versus web components having attributes that are strings versus properties that have to be set via JavaScript. And I don&#39;t understand all the nuances there, I have not used web components. But a, like an issue was filed back in like 2017, complaining that React did not have correct support for interacting with web components.&lt;/p&gt;
&lt;p&gt;[15:55] It took four years until someone from Meta finally went through all the arguments and proposals of what the exact semantics should be, and finally implemented An experimental feature that made them work right for React, but that feature has sat inexperimental for the last two plus years. And so they finally commented on that thread a couple weeks ago and said, this will be in React 19, finally.&lt;/p&gt;
&lt;p&gt;[16:24] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I&#39;ve never really used Web Components either. In a lot of ways, they felt like they were trying to solve the same challenges, or a similar set of challenges that React did. But in many ways, React seems to take on a much larger scope. I mean, I think that&#39;s exemplified by the emphasis on React Server Components now, where you Like web components are trying to componentize web and that&#39;s cool, that&#39;s great.&lt;/p&gt;
&lt;p&gt;[16:50] But React has componentized UI across, I mean, it&#39;s used in mobile, it&#39;s used in web to make the UI for video games. It&#39;s crossing the server client boundary now in a very meaningful way. So I mean, that&#39;s why I&#39;ve, that&#39;s why I have never used web components is because I have never felt a pain that they seem to solve that React was not already trying to solve on its own.&lt;/p&gt;
&lt;p&gt;[17:14] Yeah, so I don&#39;t know. Cool to see it coming in though. It&#39;ll be interesting to have, cool to have it as another option. But I&#39;m skeptical that it&#39;s going to be that meaningful in the grand scheme of things just because, okay, It&#39;s kind, it&#39;s, it&#39;s the new render target in a way.&lt;/p&gt;
&lt;p&gt;[17:29] It&#39;s like not the normal DOM. You&#39;d need a compatibility shim make it work with React Native. So I guess maybe that&#39;s a good analogy.&lt;/p&gt;
&lt;p&gt;[17:39] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; There&#39;s been lots and lots of arguments. I mean, like a lot of web component fans hate React, you know, because it&#39;s too, it&#39;s too big. It&#39;s too much JavaScript.&lt;/p&gt;
&lt;p&gt;[17:47] It tries to take over the, the browser, et cetera.&lt;/p&gt;
&lt;p&gt;[17:49] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; It doesn&#39;t use the platform. Yeah.&lt;/p&gt;
&lt;p&gt;[17:51] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Right, right. I think the best pitch for web components plus React that would benefit from this new support is maybe your company has. The Vue apps and Angular apps and React apps, you&#39;re trying to have a unified design system and you build that design system as web components, so you only have to implement it once.&lt;/p&gt;
&lt;p&gt;[18:14] And then you can now use those design components properly from within React.&lt;/p&gt;
&lt;p&gt;[18:20] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Intuitively makes sense to me. I strongly suspect that the technical realities of making that work are going to be pretty painful. But yeah, cool. It sounds like a large team. kind of challenge. I don&#39;t know. But yeah, I think it, I think to me the mental model that makes sense for it is it&#39;s a little bit like dropping down into native code on React Native, but on the web.&lt;/p&gt;
&lt;p&gt;[18:43] If you&#39;re using web components, you&#39;re, you&#39;re working at a lower level of abstraction than, than most components you would write in React.&lt;/p&gt;
&lt;p&gt;[18:51] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yep. I&#39;ve been complaining about the React teams, you know, seemingly single focus on server components to the Somewhat detriment of new features for the client side.&lt;/p&gt;
&lt;h2 id=&quot;upcoming-client-features-in-react&quot;&gt;&lt;a href=&quot;https://twitter.com/rickhanlonii/status/1747333623152275685&quot;&gt;Upcoming client features in React&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[19:01] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Having said that, Rick Hanlon from the React team did recently put up a Twitter thread where he pointed out that there are a number of new features that work in the client and in some cases can be considered client side only. There&#39;s a, these are primarily a new series of built in hooks. poorly named UseHook, which can accept a promise and will be the new official trigger for suspense behavior.&lt;/p&gt;
&lt;p&gt;[19:26] You could, you will also be able to call the UseHook and pass in a context object to grab the context value, and apparently you can actually call that inside of loops and non rendering functions like callbacks, and so there will be some very interesting flexibility out of that. There&#39;s some improvements to StartTransition and FormActions, and then some new hooks for FormState, FormStatus, and OptimisticUpdates.&lt;/p&gt;
&lt;p&gt;[19:56] All those do exist in the latest Canaries, so if you&#39;re using Next. js, those are probably available, but they will hopefully actually become stable as part of React 19. So I do have a link under here where someone wrote a follow up article that actually gives some further details about some of those.&lt;/p&gt;
&lt;p&gt;[20:15] And then, while it&#39;s not specifically listed in there, some other things we can expect are they will finally be removing some deprecated features like the Legacy Context API. Given that it&#39;s been deprecated for multiple years, I expect that very few people listening have ever actually used it. People have asked the React team to clean up dead features for a long time, and they&#39;re finally going to be doing some of that.&lt;/p&gt;
&lt;p&gt;[20:38] And React 19 should also include the source maps work that I did.&lt;/p&gt;
&lt;p&gt;[20:44] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, I mean I guess that&#39;s the big advantage. That&#39;s what you do with a major version release, is you remove all the things you deprecated over the, since the last release. So, with, what, 5 years? Since 18?&lt;/p&gt;
&lt;p&gt;[20:56] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; No, 18, 18 came out in 21, sometime in 22, I think.&lt;/p&gt;
&lt;p&gt;[21:03] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Oh, was it that recently? Okay. Yeah. I guess I&#39;m conflating with hooks, so cool. Yeah. And just to enumerate the upcoming client features that Rick was excited about, there&#39;s use in two contact or. Two settings. There&#39;s usePromise, which, like you said, is the, uh, how we&#39;re going to be interacting with suspense or, yeah, interacting with suspense from now on.&lt;/p&gt;
&lt;p&gt;[21:25] UseContext. I don&#39;t know, I don&#39;t, I appreciate this simplicity being added by this use hook, but calling it a use hook and then not having it follow the rules of hooks as has been established for many years. It just seems like it adds confusion to me. I don&#39;t know. We&#39;ll have to see how that shakes out.&lt;/p&gt;
&lt;p&gt;[21:45] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; That plus the literal naming and how carefully I had to word that sentence for it to make any sense.&lt;/p&gt;
&lt;p&gt;[21:52] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; So, I don&#39;t know. We&#39;ll see. But yeah, async transitions in the start transition. Function, form actions for React server components, useFormState, useFormStatus, and useOptimistic. So there&#39;s our enumerated upcoming client features, so keep an eye out for those. I think those are currently available in a Canary release, so if you want to play with those.&lt;/p&gt;
&lt;p&gt;[22:13] And very cool to have your source maps PR ship out. Finally! Ha ha ha. Looking forward to seeing that. Hopefully, I just want to see, I&#39;d like to see people react like, oh my god, you can do this now! Ah, debugging got so much easier! Yeah.&lt;/p&gt;
&lt;p&gt;[22:26] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; For the ten of us who actually try to debug into React.&lt;/p&gt;
&lt;p&gt;[22:30] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Well, hopefully it&#39;ll make the stack traces easier to read anyway.&lt;/p&gt;
&lt;p&gt;[22:33]&lt;/p&gt;
&lt;h2 id=&quot;remix-spa-mode&quot;&gt;&lt;a href=&quot;https://github.com/remix-run/remix/pull/8338&quot;&gt;Remix SPA mode&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[22:34] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Let&#39;s move on to some framework updates. Remix is working on a single page application mode, which I think is interesting. I think this makes a lot of sense as a general framing for things like Intuitively, I think my mental model for, like, different forms of complex web applications, there&#39;s solutions like Gatsby that did full static generation.&lt;/p&gt;
&lt;p&gt;[22:57] Like, you can only, you do a build time and then you publish a bunch of HTML and JavaScript. Then the opposite of that would be like Next and Remix, which are full server client frameworks that help you figure out how to write code across that seam. So, Remix adding more flexibility to cover different areas in that spectrum, I think is really interesting.&lt;/p&gt;
&lt;p&gt;[23:20] It&#39;s like a single page application, fully static assets shipped from a CDN to the client&#39;s browser. That has real use cases. That is the simplest way to host an application. Lowest cost, lowest upkeep, lowest deployment complexity, all of that. That&#39;s still a real niche that has real reasons to reach for that.&lt;/p&gt;
&lt;p&gt;[23:39] Then, one step advanced from that is something that has a build time generation step. Then, up to the full server, able to respond to requests individually, that is sort of classic Remix or Next. So, I&#39;m excited to see this. They mentioned that it&#39;s likely to stabilize as the Vite plugin that they, that we&#39;d talked about, I think, last time, maybe November.&lt;/p&gt;
&lt;p&gt;[24:04] But yeah, so SPA mode likely to stabilize alongside the Vite plugin. They&#39;re also looking at server component support. It sounds like they&#39;re going to be having some different Approaches from how Next is doing it. Yeah, curious to see what they come up with. Ryan Florence has been a little bit on a tear with some good tweets lately.&lt;/p&gt;
&lt;p&gt;[24:24] Yeah, I don&#39;t know. It feels like something changed. It feels like he&#39;s been, uh, a little more visible, at least in my feed lately.&lt;/p&gt;
&lt;p&gt;[24:31] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; He&#39;d actually take it. 6 months mostly off Twitter, and at least I might have actually deleted his account at one point.&lt;/p&gt;
&lt;p&gt;[24:37] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, that scans, because I had just felt like I didn&#39;t see anything from him for a long time, and I was wondering if that was, I don&#39;t know, my consumption habits changing, the algorithm giving me different things, but yeah. Good to see him back because a lot of this is top tier, really great info, really great news.&lt;/p&gt;
&lt;h2 id=&quot;next-141&quot;&gt;&lt;a href=&quot;https://nextjs.org/blog/next-14-1&quot;&gt;Next 14.1&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[24:53] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah. Okay. Moving on to from Remix to Next. Next shipped 14. 1. Just going to run through some of the changes. I haven&#39;t played with this myself, so just going to, I&#39;m basically summarizing the blog post here. But yeah, they talk about performance improvements, lots of faster local server startup.&lt;/p&gt;
&lt;p&gt;[25:12] Faster code updates, a lot faster, say up to 96. 3, very precise. Faster code updates with fast refresh. Faster initial route compiled without caching. And they mentioned that they&#39;re, it&#39;s not so okay. It looks like they&#39;ve been adding a lot of caching to get rebuilds faster. They talk about. Adding, in the future, disk caching.&lt;/p&gt;
&lt;p&gt;[25:32] So right now you start up the server, and every time you rebuild, the cache is there. The cache is warm. But starting the server has a cold cache, so it&#39;s slower. So a disk cache would dump that memory cache to disk, so that when you restart the server, it Still has a warm calf, so it starts up faster. Major trade off there is that you introduce a whole new category of caching bugs.&lt;/p&gt;
&lt;p&gt;[25:55] I know when, many moons ago, when I was developing very actively on a Gatsby project, I remember one of my debugging steps. Once one A step less desperate than deleting node modules was deleting the cache. It will be cool to see if performance improvements come out of that. That is always something I&#39;m aware of, just the increased complexity of additional layers of caching.&lt;/p&gt;
&lt;p&gt;[26:18] They talk about improved self hosting, new documentation. for some custom cache handling. And I&#39;m going to bring in another tweet that I saw, I don&#39;t know if I&#39;ll be able to get the link quickly, but I did see, um, a tweet from Dan Abramov in the context of Next. He mentioned that he thought it would be very valuable if Next shipped like a simple mode that did not have any of the advanced features that require The host, to be aware of it.&lt;/p&gt;
&lt;p&gt;[26:47] So right now, a lot of things, a lot of features in Next only work exactly as advertised if you&#39;re also hosting on Vercel. And that&#39;s been a criticism, that&#39;s been a criticism especially in the context of Yes, thank you, Mark. Especially in the context of Next and Vercel having a lot of core team members for React, it being tightly coupled to a paid hosting provider rubs some people the wrong way.&lt;/p&gt;
&lt;p&gt;[27:15] So I, that makes sense. I think that would be really cool to see, just make it a little bit more portable, especially as like the bleeding edge of React development. It would be nice if that was not required to be hosted on a specific platform.&lt;/p&gt;
&lt;p&gt;[27:28] There&#39;s some other improvements, TurboPack improvements, developer experience improvements. One that I thought was minor but significant is push state and replace state support in AppRouter. I didn&#39;t realize this was missing or something you couldn&#39;t do, but yeah, sounds like now you can use the native browser history APIs while you&#39;re using the next AppRouter. Not specifically sure what that will enable, but Intuitively, it feels like it should open some new doors.&lt;/p&gt;
&lt;h2 id=&quot;annoyed-at-react-roundup&quot;&gt;Annoyed at React roundup&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.cassidoo.co/post/annoyed-at-react/&quot;&gt;Kind of annoyed at React&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://dev.to/matfrana/react-where-are-you-going-5284&quot;&gt;React, where are you going?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://dev.to/matfrana/react-where-are-you-going-5284#comment-2c8g3&quot;&gt;Mark’s reply&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/ryanflorence/status/1747699804598395215&quot;&gt;Ryan Florence on Twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://macwright.com/2024/01/03/miffed-about-react&quot;&gt;Increasingly miffed about the state of React releases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://piccalil.li/blog/react-is-getting-a-bit-of-a-kicking-recently/&quot;&gt;React is getting a bit of a kicking lately&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;[27:56] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Can we talk about all the people who are annoyed at React?&lt;/p&gt;
&lt;p&gt;[27:59] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yes, let&#39;s. One of the hazards of being part of a large tool community, and especially one that is in some ways as controversial as React is, is that there&#39;s inevitably waves of discontent that come out. And we&#39;ve seen this pop up in different ways over the years.&lt;/p&gt;
&lt;p&gt;[28:18] I mean, 2017, 2018, there were a lot of people who were posting comments about how much they hated Redux and wanted to kill it. So this is not a new phenomenon, but there has been a very definite series of posts and sentiment from people over the last month or so expressing annoyance with React. And, I&#39;ll say this as a meta comment, the real problem at the moment is that there are 30 different overlapping semi related things that people are complaining about.&lt;/p&gt;
&lt;p&gt;[28:51] And the problem is, everyone is complaining about a slightly different subset of problems, and It&#39;s making it impossible for anyone to actually have a clear and specific discussion about what things this person is actually upset about versus what someone else is upset about. There&#39;s complaints about React being tied to Vercel.&lt;/p&gt;
&lt;p&gt;[29:14] There&#39;s complaints about React&#39;s versioning strategy. There&#39;s complaints about how the React team does marketing and DevRel or not. There&#39;s complaints about the fact that Next and Remix are highly listed in the React docs as tools to start projects. But Vite is relegated to an expandable details section that literally says, Well, I guess if you want to use this, we can&#39;t stop you.&lt;/p&gt;
&lt;p&gt;[29:43] There&#39;s complaints about server components not being sufficiently documented in the actual React docs. And a lot of these complaints are very vibe related. Like, a lot of this stuff isn&#39;t specific, technical concerns, and so it&#39;s really hard for anyone to meaningfully and coherently discuss a lot of these complaints.&lt;/p&gt;
&lt;p&gt;[30:09] So some of the current wave kicked off with Cassidy Williams. Very smart person, well known in the community, has been around for a while. Put up a post where she said she&#39;s kind of annoyed at React. It, it is a very, there&#39;s a lot of vibes in there. She&#39;s very real, she&#39;s very actually frustrated. At the same time, if you look at the list of things she says, it&#39;s several different pieces, and a lot of it isn&#39;t even technical.&lt;/p&gt;
&lt;p&gt;[30:34] And, and I&#39;m not discounting her frustration, I&#39;m noting that it&#39;s the kind of frustration that can&#39;t be solved with. Let&#39;s put out a new release. Or something. There was another post that came out a couple days later in response called React, where are you going? Very well written, and it was actually, I believe Published by someone who works on a tool called React Cosmos and some of his complaints came because they&#39;d been trying to update the tool to work properly with the next app router and server components and they got it working but it was a very hard effort and they had to make changes to the API that actually made it less, harder to work with. This person put up a post that expressed a different set of grapes, and among other things, actually suggested that maybe what we need is a new React framework That is owned by the community, and it has like, a steering committee of prominent React community members as like a starting point before we even actually begin any development.&lt;/p&gt;
&lt;p&gt;[31:39] And the author actually tagged a whole bunch of people by name on both Twitter and the article, and I was one of the people tagged. So I went in and I wrote a pretty long comment where, you know, I was doing, trying to actually respond to some of the points in the article, but then also saying, look, there is a lot of confusion and miscommunication going on right now.&lt;/p&gt;
&lt;p&gt;[32:01] And to be like, to be entirely frank, this has been frustrating for me. I&#39;m, I read discussion. I want people to have meaningful discussion. And, okay, look, fine, it&#39;s, it&#39;s Twitter, it&#39;s, you know, Reddit, it&#39;s comment threads, I know too many people talking in too many places for it to be real discussion, but it would be nice if we could at least agree on what we&#39;re discussing, and the meta problem right now is that no one is.&lt;/p&gt;
&lt;p&gt;[32:25] I have seriously considered writing a 5, 000 word blog post that is just, Here is the definitive list of the 30 different topics the React ecosystem is arguing about right now. Now that we have this list, please continue arguing, just know that you&#39;re, here are the specific things that we&#39;re discussing.&lt;/p&gt;
&lt;p&gt;[32:44] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; At the beginning of the argument, please make sure to enumerate which of these you are arguing about (both laugh). Yeah, yeah, I think the vibes you were talking about, especially in Cassidy&#39;s post, is, I think that&#39;s very real, but also the vibes are so important and impossible to measure that it&#39;s, I don&#39;t know, I think she had a really, One of the things that she talks about was it&#39;s frustrating that diversity efforts visibly took a backseat with React leadership, and there&#39;s just not as many voices from a variety of different people anymore.&lt;/p&gt;
&lt;p&gt;[33:13] And, you know, like, how do you, like, what a vibe. That is such a vibe check kind of complaint, and Speaking of vibes, I picked up on a vibe that there were, there was a lot of frustration from within the core team about how the React documentation rewrite went, and yeah, that took a couple of years, and seemed like it really burned out quite a number of people on the core team.&lt;/p&gt;
&lt;p&gt;[33:35] And if you are burned out from Social, political aspects of this technical work, then you don&#39;t have as much energy to bring to that technical work. So it&#39;s like, if there&#39;s problems with the vibes, then I don&#39;t know what the solution there is, but it feels like it&#39;s gonna just have a, like, downstream detriment across the board.&lt;/p&gt;
&lt;p&gt;[33:53] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; There&#39;s a few other good articles and bits of discussion out there. Ryan Florence made a tweet saying he&#39;s still very much all in on React as the best way to build apps, but, you know, Remix is working on trying to Have an alternative vision for how do you build a full stack app other than Next?&lt;/p&gt;
&lt;p&gt;[34:11] Tom McWright put out a post where he measured the times between React stable releases and noted that the time from 18. 2 until now, is going on a year and a half, I think, and that&#39;s the longest we&#39;ve ever gone between official stable releases of React, and meanwhile you&#39;ve got Next using Canary builds And so there&#39;s definitely frustration over how the versioning strategy is going right now. Andy Bell just put up a post, uh, in the last day or so, saying that React&#39;s getting a bit of a kicking lately.&lt;/p&gt;
&lt;p&gt;[34:44] So a little bit of the meta commentary there. But it was actually a very well balanced post that said, Look, there&#39;s, there are different tools and different trade offs. Certainly the ecosystem, the web dev ecosystem has first swung hard in the direction of Client side rendering and now we&#39;re kind of back in a server side thing and where do web components fit in this?&lt;/p&gt;
&lt;p&gt;[35:04] But it was actually a pretty decent take some time and think about the trade offs for your situation. In practice, none of this actually necessarily affects you, the individual developer, working on an app for your day job. But there is some value in having a sense of what the big conversation is.&lt;/p&gt;
&lt;p&gt;[35:21] Because, honestly, my goal out of all this would be that the React DevRel team does a bunch of work to improve the React docs. I have repeatedly griped that there&#39;s a bunch of things that I think should be done in the React docs that I&#39;m shocked that they haven&#39;t done yet. If there&#39;s anything that comes out of this discussion, I&#39;d like to see a lot of docs improvements.&lt;/p&gt;
&lt;p&gt;[35:43] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; All of this conversation, all of this kind of annoyed, where are you going? Increasingly miffed, a bit of a kicking. Last month I went off on a little bit of a rant. I would say in defense of the React core team, like, I think they are truly at the bleeding edge of the web ecosystem.&lt;/p&gt;
&lt;p&gt;[36:00] And I think that in a very real way, they have been setting the tone, setting the subject of discussion that everyone else then builds on. And in so many different dimensions, like, Hooks came out of nowhere and invented this new approach to designing an API for web frameworks. Like, nobody else, I can&#39;t think of another project and hooks came out that shipped an ESLint plugin as part of using it correctly.&lt;/p&gt;
&lt;p&gt;[36:34] Okay, this has enough weird little trade offs of how we&#39;ve made it work that we need supporting tooling in order to help you. use it correctly, use it well. And now, that&#39;s very common. Like, now that&#39;s something that, like, Tailwind does. So I, to me, that was something that the core, the React core team introduced to the ecosystem that, as part of API design, you also think about it more holistically, not just, okay, I import this module, what&#39;s the function signature?&lt;/p&gt;
&lt;p&gt;[37:02] But, okay, I install this package, I import it, what does the error message look like? In my IDE, just a very user centered framing of how to do API design and thinking of what tools are they likely to already use, everything possible to give them the best experience we know how to do.&lt;/p&gt;
&lt;p&gt;[37:22] Ryan Florence&#39;s tweet, he says, React is still the best rendering library for the web and the people behind it are doing are just doing their best and actually doing a great job. And I think that&#39;s extremely true. They are doing a really great job, but what they&#39;re trying to do is so advanced and so new that it&#39;s just really hard to get every detail of it right. And I think that part of the reason that they are now subject to so much criticism is because of how much they&#39;ve gotten right in the past, and they&#39;ve elevated the bar repeatedly, and so now the bar is super high and people have very high expectations.&lt;/p&gt;
&lt;h2 id=&quot;rsc-updates&quot;&gt;RSC updates&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;a href=&quot;https://www.mayank.co/blog/react-server-components/&quot;&gt;RSCs: The Good, the Bad, and the Ugly&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=8DyzsSWNcDE&quot;&gt;Leerob reacts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://overreacted.io/the-two-reacts/&quot;&gt;The Two Reacts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bobaekang.com/blog/rsc-is-react-server-plus-component/&quot;&gt;RSC is React Server + Component&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://twitter.com/dan_abramov2/status/1745795274977493317&quot;&gt;“RSC does not require a server”&lt;/a&gt; – Dan&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.telerik.com/blogs/react-server-components-paradigm&quot;&gt;React Server Components paradigm&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;[37:55] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Should we go on to RSCs? A lot of stuff there. What a month!&lt;/p&gt;
&lt;p&gt;[37:59] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Similar to some of the complaints, there was a really good post a few weeks ago called RSCs, the good, the bad, and the ugly. And one thing I appreciated was this was largely focused on technical aspects.&lt;/p&gt;
&lt;p&gt;[38:09] Someone tried to use RSCs and gave a bunch of very specific feedback on here&#39;s what they&#39;re trying to do. Here are some of the pain points I ran into in terms of understanding, like, where do I put the use server versus use client markers? And then, I think there were some additional mentions at the bottom of bigger piece complaints about some of the direction of React and Next, but it was a good article overall, very well written, not Not flame bait, like this was a substantive technical discussion and criticism.&lt;/p&gt;
&lt;p&gt;[38:42] Worth reading through that to get a sense of some of the pain points with Next and server components specifically. Which is part of the picture, the issue right now. Is there still really only one real production way to use server components right now. So, Lee Rob, uh, Lee Robinson, who&#39;s the primary dev rel.&lt;/p&gt;
&lt;p&gt;[39:02] for Vercel and Next did put up a post responding to some of the points that were raised in the Good, Bad, and Ugly post. So, some back and forth there. You can get a, have a chance to compare the thoughts there. Dan Abramov has resumed blogging, and if you&#39;ve been watching him on Twitter, he has been iterating in public, trying to figure out, like, what is, what are the best analogies and metaphors and tools.&lt;/p&gt;
&lt;p&gt;[39:29] To try to get people to wrap their head around server components and the mindset shift that&#39;s involved. And in some ways this is kind of frustrating because he is rapid tweeting lots of different ideas, lots of different catchphrases. Server components are like this. Well, server components are like that.&lt;/p&gt;
&lt;p&gt;[39:48] And he&#39;s been building on some of that and he&#39;s got a couple different blog posts up. And I think we probably linked one of them last time where he&#39;s building up a series of posts. lead you to think about server components, but he literally hasn&#39;t even mentioned the word server component yet. He&#39;s been trying to help you understand, where does code run?&lt;/p&gt;
&lt;p&gt;[40:10] Sometimes code runs on one computer, sometimes code runs on another computer. What if we had a way to control where that code runs? so he&#39;s working up to a metaphor to help people understand the mental model behind server components. And so I know he said that this is turning into an actual blog post series, he&#39;s got a few more posts he wants to write, and so this post, the two Reacts, is trying to work towards that train of thought.&lt;/p&gt;
&lt;p&gt;[40:41] There was another explainer post from someone else completely. called RSC is React Server Plus Component. One of the other debates on Twitter, and tying into the people are confused or annoyed, is that the term React Server Components is highly confusing, because they don&#39;t always have to run on a literal server.&lt;/p&gt;
&lt;p&gt;[41:05] Like, not on a web server as we think about it. Like, they can be used at build time and generate static output. They are not strictly a server side rendering concept, and Dan has been frantically trying to make the point that, depending on how you use the technology, like, you could even use it, like, inside of a web worker or something?&lt;/p&gt;
&lt;p&gt;[41:27] Like, what, server components really are, like, a pre rendering method that spits out Serialize, React, as JSON. It just so happens that most of the time, and especially with Next, that happens in response to an API request. This blog post is trying to make the argument that rather than saying React Server Components with the implication that it runs on a web server, it&#39;s think of your code as like a React Server, React Client split, and the code for React Server could run At anywhere, at any time, depending on the bundler and the system architecture.&lt;/p&gt;
&lt;p&gt;[42:09] I realize there&#39;s a lot of semantics and technical nuance there, but I thought this was actually one of the better posts. And then there&#39;s, again, like I said, Dan has been trying to make the point that they don&#39;t require a literal web server. And then there&#39;s been a number of other different articles and discussion about this as well.&lt;/p&gt;
&lt;p&gt;[42:25] So the mental model and how do you teach server components, I think, is. One of the biggest outstanding questions. And again, I would love to see more of this in the actual docs.&lt;/p&gt;
&lt;p&gt;[42:35] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; But, okay, so hopefully this is the putting it out there, ideating phase that then gets brought back in the rough draft, first pass.&lt;/p&gt;
&lt;p&gt;[42:45] So hopefully this does get brought back into the documentation as well, but I don&#39;t know if that&#39;s been I don&#39;t know how consistently that&#39;s happened over the last year or two. Something about Dan&#39;s, the two Reacts posts that stood out to me, I think that he had something really good to say.&lt;/p&gt;
&lt;p&gt;[43:00] I mean, just like the opening line of it was, I suppose I want to display something on your screen. Whether I want to display a web page, an interactive web app, or a native app you might download, at least two devices must be involved. Your device and mine. I think that is such a great, useful framing for what they&#39;re doing here.&lt;/p&gt;
&lt;p&gt;[43:17] Why React server components? It&#39;s, there are always at least two machines, the developer&#39;s machine, whether that&#39;s a local computer that they&#39;re running a build on or a server or a serverless function being executed somewhere, and the client machine. There&#39;s always a client machine. There&#39;s always something else.&lt;/p&gt;
&lt;p&gt;[43:38] So because of that, there&#39;s always going to be. Communication between those two and so that&#39;s my mental model for React server components is they are iterating on what that communication bridge looks like and how to interact with it.&lt;/p&gt;
&lt;p&gt;[43:53] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; There&#39;s been lots of arguments about what would be a better name for server components.&lt;/p&gt;
&lt;p&gt;[43:57] People have suggested dozens of different options. My vote would be React serialized components. I think that is the best retrofit for the acronym RSC and I think it&#39;s the best explanation technically in terms of what it does rather than the literal word server. You are serializing a component&#39;s output.&lt;/p&gt;
&lt;p&gt;[44:19] What it does, what happens after that depends on the environment. Maybe you&#39;re going to turn it straight into HTML on the server. Maybe you&#39;re going to output a file to disk. But ultimately what&#39;s happening is there&#39;s a pass that serializes the element output and then does something with it.&lt;/p&gt;
&lt;p&gt;[44:36] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, that actually makes a lot of sense.&lt;/p&gt;
&lt;p&gt;[44:38] I don&#39;t know if I, I don&#39;t know if we want to coin a brand new Well, I don&#39;t know if this is coined, but anyway, that&#39;s interesting. That&#39;s a, that is a good framing for it. Serialized is a little bit more evocative of The benefits and constraints, then server. Of course there&#39;s a server. Yeah, okay. That&#39;s interesting, I like that.&lt;/p&gt;
&lt;p&gt;[44:56] Okay, we&#39;re down to our last link, which I guess we&#39;ll just go right on&lt;/p&gt;
&lt;p&gt;[45:00] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; ahead. Yes, so I have been happily highlighting the progress of the React Forget compiler over the last few months. So, there was a blog post in March of last year. Where they said, we&#39;re working on it. There were two different conference talks at React India and React Advanced where the React team actually said, we&#39;re working on it and here&#39;s some of our progress.&lt;/p&gt;
&lt;p&gt;[45:20] There was a bit of very interesting discussion on Twitter a couple weeks ago where they talked a bit about some of the technical implementation. So, it is currently implemented as a Babel plugin. Having said that, the Babel plugin is basically just acting as a front end for the actual compiler logic.&lt;/p&gt;
&lt;p&gt;[45:41] The compiler itself is currently written in TypeScript, I believe, and not strictly tied to Babel itself. So, there were some thoughts about, I mean, there was some discussion of, well, how fast is it to run? Can you use it for fast refresh? Could it be translated to Rust someday? And one of the other possibilities that came up, Meta has been working on something that they call Static Hermes.&lt;/p&gt;
&lt;p&gt;[46:07] Hermes is the JavaScript engine that&#39;s used for React Native. It&#39;s a completely separate JavaScript implementation. And they&#39;ve got a research project where they use the Hermes engine to compile your JavaScript or TypeScript code to a native binary. And have seen some interesting early results from that.&lt;/p&gt;
&lt;p&gt;[46:29] One other possibility for maybe making the Forget compiler execute faster. Instead of translating it to Rust, maybe they compile the TypeScript code to native with Static Hermes. We&#39;ll still know ETA on when this comes out. I have my fingers crossed that we&#39;ll see you some more details about it at React Conf in May.&lt;/p&gt;
&lt;p&gt;[46:47] But it was interesting to hear a bit more of the technical details of what it&#39;s taking to actually build this.&lt;/p&gt;
&lt;p&gt;[46:54] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, definitely. I have not been following it super closely.&lt;/p&gt;
&lt;p&gt;[46:57] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; That&#39;s why I&#39;m here.&lt;/p&gt;
&lt;p&gt;[46:58] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, right? Thank you. We can pay attention to slightly different things that overlap and have a great conversation (laughs).&lt;/p&gt;
&lt;p&gt;[47:05] Yeah, my general M. O. on a lot of these experimental features is keep an eye out, know what they&#39;re called, check in once in a while, and then when they&#39;re released, cool, I have a framework for understanding why it exists. Excited to see what comes out of it, but I know this is I don&#39;t know. I&#39;ve seen skepticism that it will be released in a timely manner, though it&#39;s not yet.&lt;/p&gt;
&lt;p&gt;[47:26] I mean, I&#39;m still catching up on server components, so I just don&#39;t have the mental bandwidth to also pay attention to a whole optimizing compiler as well. On to the lightning round. We&#39;ve got a bunch of links here. I think we should just pick and choose rather than going fully down the list, but&lt;/p&gt;
&lt;h2 id=&quot;-ryan-carniato-js-frameworks-into-2024&quot;&gt;&lt;a href=&quot;https://dev.to/this-is-learning/javascript-frameworks-heading-into-2024-i3l&quot;&gt;⚡ Ryan Carniato, JS Frameworks into 2024&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[47:40] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Ryan Carniato had a solid write up on JavaScript frameworks as we head into 2024.&lt;/p&gt;
&lt;p&gt;[47:48] Mark, tell us what that giggle was about.&lt;/p&gt;
&lt;p&gt;[47:50] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; So he&#39;s the author of SolidJS.&lt;/p&gt;
&lt;p&gt;[47:52] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Okay. I did, I, okay. I did not recognize the name. I, sorry, but a lot of talk about signals. And so that makes a lot of sense.&lt;/p&gt;
&lt;p&gt;[48:01] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yeah. Ryan&#39;s articles are always excellent. He is so good at. Discussing both technical details and trade offs and nuances. So his posts about what&#39;s going on in the front end ecosystem are always worth reading.&lt;/p&gt;
&lt;h2 id=&quot;-rspack&quot;&gt;&lt;a href=&quot;https://rsbuild.dev/guide/migration/cra&quot;&gt;⚡ RSPack&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[48:15] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Next up, so, there&#39;s a tool called rsPack, and it is a of Webpack to Rust. Literally, they&#39;ve implemented all of Webpack&#39;s public API in Rust. I think the engineers behind it work at ByteDance, a company that does TikTok.&lt;/p&gt;
&lt;p&gt;[48:34] There&#39;s a second layer called rsbuild, which is like basically more of an ES builds API, but using rspack as. The implementation layer underneath and I recently saw a tweet suggesting that talking about they&#39;ve got documentation on how to migrate from create React app to using RS build and I actually had a like my presentation slide tool set.&lt;/p&gt;
&lt;p&gt;[49:02] I was using React App with Craco to override the webpack config. And I thought for several years, like, I should switch this over to Vite. But, one, I&#39;m too lazy. Two, that&#39;s a rabbit hole. Three, I, my setup uses a webpack plugin in order to parse the markdown that I use to write my slides. And so, I was actually curious about this, and in about one hour, I was able to switch from my CRA setup to using RSBuild, and the compile time went from 30 seconds to one second.&lt;/p&gt;
&lt;p&gt;[49:38] I then made it harder on myself and spent and burned like two hours trying to upgrade the version of the MDX markdown syntax that I could use. But that was a separate problem from doing the actual switch. So I know there&#39;s a lot of people who are trying to switch from create React app to Vite, and that&#39;s absolutely a thing you can do, but you might also want to look at using rsbuild instead, because it&#39;s webpack compatible and you might actually have to do less work to switch over.&lt;/p&gt;
&lt;p&gt;[50:08] Yeah,&lt;/p&gt;
&lt;p&gt;[50:09] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; very cool. Very nice.&lt;/p&gt;
&lt;h2 id=&quot;-benchmarking-react-native-styling&quot;&gt;&lt;a href=&quot;https://www.reddit.com/r/reactnative/comments/1adasz4/react_native_cssstylesheet_frameworks_benchmark/&quot;&gt;⚡ Benchmarking React Native styling&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[50:10] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I saw a cool post on Reddit. Somebody made a project benchmarking different CSS and stylesheet implementations. It&#39;s basically a microbenchmarks list. I don&#39;t really know how applicable these are. I don&#39;t really know exactly what this would mean from a broader performance.&lt;/p&gt;
&lt;p&gt;[50:27] perspective. But, you know, it looked like they put some real work into benchmarking a variety of different approaches in React Native for applying styles, and not sure how much more there is to say on that, though.&lt;/p&gt;
&lt;h2 id=&quot;-weird-things-engineers-believe-about-web-development&quot;&gt;&lt;a href=&quot;https://birtles.blog/2024/01/06/weird-things-engineers-believe-about-development/&quot;&gt;⚡ Weird things engineers believe about Web development&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[50:40] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Uh, one article that I really liked, a, an engineer who used to work on the internals of Mozilla Firefox, developing the browser itself, put up a post talking about weird things engineers believe about web development, and it was actually kind of a, here&#39;s the stuff that browser engineers think people care about, and then there&#39;s the stuff that web developers actually care about, and these are not necessarily the same thing.&lt;/p&gt;
&lt;p&gt;[51:04] So, it was just an interesting check on the mindsets of the people using the browsers vs the people building the browsers. I think&lt;/p&gt;
&lt;p&gt;[51:14] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; this is a super important read. I think these are, I don&#39;t know, there&#39;s just this, you get this feedback cycle in knowledge where somebody learned something, they write about it, and then other people learn that from the people who wrote about it. And so you get like a game of telephone going on.&lt;/p&gt;
&lt;p&gt;[51:31] So then several, multiple years later, everyone knows all of these things. But if you go back to the actual primary source, some of them are a little warped. Some of them are outright wrong. So this feels like that going back to the primary source. Somebody&#39;s up to date on what people claim they know, what the common knowledge is, but they have experience with the actual underlying technology that provides those constraints. So definitely, we recommend reading this.&lt;/p&gt;
&lt;h2 id=&quot;-teaxyz&quot;&gt;&lt;a href=&quot;https://twitter.com/mxcl/status/1749894737862025330?s=46&amp;amp;t=uXPe0cHZZfyFyGotvsr9IQ&quot;&gt;⚡ Tea.xyz&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[51:59] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I came across a cool project by the guy who created Homebrew, which is like the de facto dependency manager for macOS. It&#39;s like apt for Unix. But, so he is launching an open source software funding project that is I think blockchain based and whatever, so all of the whatever skepticism you have for that is probably warranted, but I&#39;m always interested in new approaches for improving the economic situation of open source maintenance.&lt;/p&gt;
&lt;p&gt;[52:32] It is notoriously a very thankless job kind of situation. Yeah, I don&#39;t know, Mark, I&#39;m curious if you have any thoughts on this as the only open source maintainer between the two of us. But yeah, it&#39;s broadly interesting to me.&lt;/p&gt;
&lt;p&gt;[52:45] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; I saw this mentioned, I didn&#39;t glance at it, so I don&#39;t have a lot of thoughts on this tool itself. The flip side is there&#39;s another tool in the same sort of space called thanks.&lt;/p&gt;
&lt;p&gt;[52:57] dev. One of the complaints about How do we fund open source maintainers has always been the trickle effect. If I provide, if my project uses Jest, ESLint and Webpack and Babel, do I send funds just to those projects? What about all the dependencies those projects are built out of? And so there&#39;s been a couple of different attempts over the years to figure out like, how do you divvy this up?&lt;/p&gt;
&lt;p&gt;[53:24] And one that I&#39;m actually getting a little bit of something out of is this thanks. dev thing. So, companies like Sentry are donating chunks of money to this intermediary and the intermediary is scanning all the package JSONs and using a particular algorithm to figure out, like, what, what percentage each of the dependencies and sub dependencies that you would actually get, and, you know, full transparency, I&#39;m not getting much out of this, but, you know, like, 15, 20 bucks every now and then, it&#39;s okay, it&#39;s non zero, okay, cool, thank you.&lt;/p&gt;
&lt;p&gt;[53:58] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I get a similar amount of money from the Medium blogging I did five years ago. It&#39;s not nothing, it&#39;s not that much. Whether it&#39;s enough money to warrant the additional need to remember to add it as income when I file my taxes is debatable.&lt;/p&gt;
&lt;p&gt;[54:11] But, yeah, I don&#39;t know. It&#39;s a hard problem. It&#39;s as yet unsolved. I&#39;m always interested in seeing a new approach, trying to solve it. Analyzing package. json and things like that is cool. I kicked around the thought of trying to do a business in this space a number of years ago. Hey, we&#39;re Reactiflux. We have so many people donating their time to answering questions.&lt;/p&gt;
&lt;p&gt;[54:32] Open source maintainers, but ultimately where I came down on it is it&#39;s just so hard to attribute relative value between different projects that like, okay, you can scan thousands, millions of package. json files to understand the dependencies and what depends a lot on this and but then there&#39;s also there&#39;s so many deep utility functions, deep utility modules that You look at the MP M and they&#39;re downloaded like billions of times and it&#39;s like that real, is that, should that get the most money outta this?&lt;/p&gt;
&lt;p&gt;[55:06] I don&#39;t know. When I, when I was doing my own thought exercises and this never left thought land, I never did anything with these thoughts, but when I was thinking about it, it&#39;s, I don&#39;t know if you can get to the socially understood value versus. Any of the metrics that are available from analyzing dependencies, it seemed like too big of a gulf between the two of them to be obviously valuable to me, but I&#39;m very cool to see anyone who is taking hard problem of open source funding and trying, building code, doing marketing, taking revenue and distributing it back out.&lt;/p&gt;
&lt;p&gt;[55:41] Anyone doing that, I will support 100%.&lt;/p&gt;
&lt;h2 id=&quot;-everything-on-npm&quot;&gt;&lt;a href=&quot;https://www.scmagazine.com/news/npm-registry-prank-leaves-developers-unable-to-unpublish-packages&quot;&gt;⚡ &lt;code&gt;everything&lt;/code&gt; on npm&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[55:44] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yep, and then the last one I got is, there was a recent, I don&#39;t know, issue, problem, whatever, with the npm registry, where some folks were experimenting with, Is it possible to make a package that literally depends on every other package in the entire npm registry? And they actually ran into some problems doing this, because there&#39;s like a maximum size in your package, or maximum number of dependencies you can have for one package, and what they ended up doing was chunking it up, so the top level package depended on 15, 20 other sub packages, and each of those depended on 5 to 8 packages in all of the npm registry.&lt;/p&gt;
&lt;p&gt;[56:26] What this resulted in, though, was it made it impossible to unpublish anything. From the entire NPM registry. Yet another weakness in both how NPM works and how people use NPM. First we had LeftPad, where we found out that unpublishing something dependent on by thousands of other libraries breaks everything.&lt;/p&gt;
&lt;p&gt;[56:49] We&#39;ve had a few other issues over the years, and now this one. It was dealt with, but people continue to find more ways to break NPM.&lt;/p&gt;
&lt;p&gt;[56:57] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Alright, I&#39;m gonna run through a couple here at the very end.&lt;/p&gt;
&lt;h2 id=&quot;-codepen-top-10&quot;&gt;&lt;a href=&quot;https://codepen.io/2023/popular/pens/10&quot;&gt;⚡ CodePen top 10&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[57:00] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I loved this, CodePen put out a Top 10 CodePens of 2023. Love creative coding, love people just making little fun visual things.&lt;/p&gt;
&lt;p&gt;[57:10] Just for the joy of it, just to explore a new concept or to make something pretty. Creative coding is not a, an aspect of software development that we have in Reactiflux, had a lot of, people do that in CodePen, people do that in Glitch, people do that in, there&#39;s other platforms that are very well suited to it, and we&#39;ve just never gotten a lot of that energy in Reactiflux.&lt;/p&gt;
&lt;p&gt;[57:30] But yeah, really cool, I loved some of these projects, definitely check it out, especially if you&#39;re looking for inspiration on a project to work on yourself.&lt;/p&gt;
&lt;h2 id=&quot;-v8-performance-improvements&quot;&gt;&lt;a href=&quot;https://v8.dev/blog/holiday-season-2023&quot;&gt;⚡ V8 performance improvements&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;[57:37] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; And last link from me, V8 Performance Improvements. This is, like, extremely nitty gritty, like, close to the metal kind of knowledge. It&#39;s probably not going to be very practical in, you know, you as a software developer.&lt;/p&gt;
&lt;p&gt;[57:52] But they&#39;re adding yet another new level of optimizer, which is interesting. I don&#39;t know, I thought it was a good read. It&#39;s nice to understand a little bit more about how your code is being executed. There are specific people who will need to know implementation details like that. I know that the, I&#39;m sure that the React core team has done a lot of performance optimization to ensure that the way their code is being interpreted and optimized and the way it runs through these processes results in a as close to optimal performance as possible.&lt;/p&gt;
&lt;p&gt;[58:25] I have an affinity for this type of low level post about where our code runs. But yeah, I just thought it was interesting to go through a little bit of history. It&#39;s also been 16 years since V8 was released. 16 years since Chrome came out, which is wild. What an era. It&#39;s the new era of the web. Definitely check that out if you&#39;re interested in bare metal stuff.&lt;/p&gt;
&lt;p&gt;[58:48] Thank you so much everyone for joining us. We&#39;ll be back on the last Wednesday of February here in the live stage or back in your podcast feed just as soon as we can. If you see anything newsworthy, definitely let us know in the tech reads and news channel of Reactiflux, but yeah, we also check. Quite a range of newsletters and other sources.&lt;/p&gt;
&lt;p&gt;[59:08] Mark and I both moderate the React. js subreddit. I love bytes. dev, React Status, ThisWeekInReact. There&#39;s close to a dozen sources that I pull links from here. Thanks for joining us. See you next month.&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-2024-01</link><guid isPermaLink="false">reactiflux-tmir-2024-01</guid><pubDate>Tue, 30 Jan 2024 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item><item><title>This Month in React (December 2023)</title><description>&lt;ul&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;Quick hits:
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-dec-2023#layoffs-news&quot;&gt;00:55&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://layoffs.fyi/&quot;&gt;layoffs.fyi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-dec-2023#state-of-react-native-survey-closes-jan-5&quot;&gt;01:37&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://stateofreactnative.com/en&quot;&gt;State of React Native runs til Jan 5th&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-dec-2023#adobe-%F0%9F%92%94-figma&quot;&gt;01:50&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.figma.com/blog/figma-adobe-abandon-proposed-merger/&quot;&gt;Adobe and Figma abandon merger&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-dec-2023#react-native-073&quot;&gt;02:07&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://reactnative.dev/blog/2023/12/06/0.73-debugging-improvements-stable-symlinks&quot;&gt;React Native 0.73&lt;/a&gt;
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://reactnative.dev/docs/debugging&quot;&gt;New debugging docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;New Debugger, &lt;a href=&quot;https://github.com/react-native-community/discussions-and-proposals/discussions/733&quot;&gt;give feedback here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/reactwg/react-native-new-architecture/discussions/154&quot;&gt;Bridgeless mode&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-dec-2023#redux-toolkit-20-and-supporting-libraries&quot;&gt;06:33&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/reduxjs/redux-toolkit/releases/tag/v2.0.0&quot;&gt;Redux Toolkit 2.0&lt;/a&gt;, &lt;a href=&quot;https://github.com/reduxjs/redux/releases/tag/v5.0.0&quot;&gt;Redux 5.0&lt;/a&gt;, and &lt;a href=&quot;https://github.com/reduxjs/react-redux/releases/tag/v9.0.0&quot;&gt;React-Redux 9.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-dec-2023#xstate-v5&quot;&gt;11:37&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://stately.ai/blog/2023-12-01-xstate-v5&quot;&gt;XState v5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;React Server Components updates
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-dec-2023#react-core-team-panel-on-server-components&quot;&gt;17:49&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://thenewstack.io/react-panel-frontend-should-embrace-react-server-components/&quot;&gt;Frontend Should Embrace React Server Components&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-dec-2023#ben-holmes-react-server-components-from-scratch&quot;&gt;18:47&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://twitter.com/BHolmesDev/status/1735701191823151239&quot;&gt;RSCs from scratch video from Ben Holmes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-dec-2023#storybook-adds-support-for-rscs&quot;&gt;19:16&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://storybook.js.org/blog/storybook-react-server-components/&quot;&gt;Storybook for React Server Components&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-dec-2023#dan-abramov-blogs-again&quot;&gt;19:45&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://overreacted.io/a-chain-reaction/&quot;&gt;Dan’s “Chain Reaction” post&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-dec-2023#daishi-katos-oss-prototype-rsc-framework&quot;&gt;21:52&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/dai-shi/waku&quot;&gt;New RSC-first framework, Waku&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-dec-2023#stylex-released-by-meta&quot;&gt;29:29&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://stylexjs.com/blog/introducing-stylex/&quot;&gt;Introducing StyleX&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;React docs discussion
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-dec-2023#documentation-for-the-use-hook&quot;&gt;32:50&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://github.com/reactwg/server-components/discussions/7&quot;&gt;Recent core docs pages updates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-dec-2023#dan-abramovs-ama-on-bluesky&quot;&gt;35:08&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://bsky.app/profile/danabra.mov/post/3khbvuwanqx2h&quot;&gt;Dan Abramov React AMA on BlueSky&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;details open=&quot;&quot;&gt;&lt;summary&gt;Lightning round:
&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-dec-2023#-requesterimpairment-an-ietf-joke&quot;&gt;42:16&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.ietf.org/archive/id/draft-richardroda-420requesterimpaired-02.html&quot;&gt;An HTTP Status Code, Requester Impairment (joke??)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-dec-2023#-jules-blom-on-flushsync&quot;&gt;43:18&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://julesblom.com/writing/flushsync&quot;&gt;More Than You Need to Know About ReactDOM.flushSync&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-dec-2023#-react-fights-you-can-have-with-your-team&quot;&gt;44:56&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://www.bekk.christmas/post/2023/13/react-fights-you-can-have-with-your-team&quot;&gt;React Fights You Can Have With Your Team&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-dec-2023#-an-interview-with-kyle-mathews-on-gatsbys-story&quot;&gt;45:33&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://oss-startup-podcast.launchnotes.io/announcements/episode-118-building-react-framework-gatsby&quot;&gt;Building React Framework Gatsby&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-dec-2023#-tanstack-router-v1&quot;&gt;46:41&lt;/a&gt;]&lt;/code&gt; &lt;a href=&quot;https://tanstack.com/router/v1&quot;&gt;TanStack Router v1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/details&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[&lt;a href=&quot;https://www.reactiflux.com/transcripts/tmir-dec-2023#what-will-happen-in-2024&quot;&gt;47:19&lt;/a&gt;]&lt;/code&gt; Discussion: what do we think will happen with React and the ecosystem in 2024?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;[00:00] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Thank you for joining us for December. I&#39;m sorry about the audio quality of this month, I am on the road and I forgot my headset this time around. This is This Month in React, where we recap and digest recent developments in the ever evolving React and web ecosystem.&lt;/p&gt;
&lt;p&gt;I&#39;m Carl, I&#39;m a staff product developer and freelance community manager at Reactiflux. Here, the Discord for React professionals. Mark, you want to say hey?&lt;/p&gt;
&lt;p&gt;[00:24] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Hi, I&#39;m Mark Erikson. My day job is working at Replay. Io, where we&#39;re building a time traveling debugger for JavaScript. And in my copious amounts of spare time, I work on Redux, and boy, have I spent a lot of time doing that lately.&lt;/p&gt;
&lt;p&gt;[00:37] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, you&#39;ve got a lot of, releases to announce.&lt;/p&gt;
&lt;p&gt;[00:40] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; I think we&#39;re both recording this one while we&#39;re on the road, too.&lt;/p&gt;
&lt;p&gt;[00:43] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, I am coming, I am genuinely coming to you live from, my mom&#39;s basement. So this is a funny recording this time around.&lt;/p&gt;
&lt;p&gt;I&#39;ll start us off with a couple of just quick hits of little news.&lt;/p&gt;
&lt;h2 id=&quot;layoffs-news&quot;&gt;Layoffs news&lt;/h2&gt;
&lt;p&gt;[00:55] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I&#39;m thinking of starting a new segment just talking about layoffs and trends in the job market for tech, that seems pretty relevant for news discussion. December has been trending down per layoffs.fyi, which is a great resource, highly recommend. It&#39;s trending down; fewest layoffs by number of companies running layoffs since April of 2022, and it&#39;s been, qualitatively it&#39;s felt a little bit better, but last year December was among the lowest of the months for layoff and January went way through the roof, so fingers crossed that doesn&#39;t happen this year. I think that&#39;ll be a pretty big indicator for tone of 2024.&lt;/p&gt;
&lt;h2 id=&quot;state-of-react-native-survey-closes-jan-5&quot;&gt;State of React Native survey closes Jan 5&lt;/h2&gt;
&lt;p&gt;[01:37] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; There is a state of React Native survey that&#39;s currently running. It went live a couple weeks ago and runs until January 5th. So, if you use React Native, definitely check that out. Highly recommend, giving your feedback.&lt;/p&gt;
&lt;h2 id=&quot;adobe--figma&quot;&gt;Adobe 💔 Figma&lt;/h2&gt;
&lt;p&gt;[01:50] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; This is sort of related to our field, but, Adobe and Figma had been doing a very large merger. I know many, many people in the React ecosystem work with people who work with Figma. So I thought I&#39;d give that a shout out.&lt;/p&gt;
&lt;h2 id=&quot;react-native-073&quot;&gt;React Native 0.73&lt;/h2&gt;
&lt;p&gt;[02:07] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; On to the real news. I&#39;ll start us off with our first link, which is react native 0. 73. New pretty big feature release. They&#39;ve got a lot of good improvements coming out here with improvements to debugging, a couple of relatively nitty gritty technical details like Support for symlinks, which is a huge problem if you use symlinks in development, and not a problem at all for anyone else, which would include me.&lt;/p&gt;
&lt;p&gt;But, the new debugging section looks really good. It looks like they&#39;ve put a lot of energy into making debugging a lot better, which, as someone who has developed a product with React Native, debugging was a painful experience, so that&#39;s nice to see. They&#39;ve got a new experimental, and Kind of buggy debugger.&lt;/p&gt;
&lt;p&gt;They ask you to give feedback, but yeah, it looks like they&#39;ve got a couple of nice Maybe smaller improvements, but like, for instance, apparently, this is not something I had noticed while developing, but you send console. Logs early in the like, bootstrap process for starting up a new, for starting up a React Native process as you launch the app.&lt;/p&gt;
&lt;p&gt;If you previously, if you had run console logs very very early in that launch process they would just silently get dropped. You would not see them and obviously that makes debugging a lot harder. So they have updated the way that the debugger works to capture those and Ship them out once the Once the console has been set up and attached.&lt;/p&gt;
&lt;p&gt;So that alone is a huge improvement. I think that&#39;ll be nice. Another relatively large breaking change. I think they are deprecating the at type slash react native package. This is good news It&#39;s because they have Moved those types into the React Native package itself. So it&#39;s now first class types, it&#39;s included in the package.&lt;/p&gt;
&lt;p&gt;You no longer need to use the at types package. So that&#39;s awesome.&lt;/p&gt;
&lt;p&gt;[04:08] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Experience is zero. Like I&#39;ve, I&#39;ve attempted to run one or two tiny React Native projects. Mostly just sussed out tiny bits of Redux stuff, and that&#39;s it. One observation out of that that I do think is interesting is that it feels like React Native has jumped on board TypeScript more than the React core has.&lt;/p&gt;
&lt;p&gt;One is that they, I think, React Native projects now ship with TypeScript set up by default, it sounds like. You know, this example here of moving the types into the core, whereas with the actual React and ReactDOM packages, the React types are still maintained separately. Now, the React types packages are now semi officially maintained by people affiliated with the React team, but there&#39;s still that difference of not actually shipping it with the actual React packages.&lt;/p&gt;
&lt;p&gt;Now you can also caveat and say this is a good thing because there have been tweaks and improvements to the React types packages that have come out in the last year and a half. Whereas there have been zero official stable React package releases. So there is actually a little bit of benefit to having those decoupled.&lt;/p&gt;
&lt;p&gt;[05:22] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, well, hey, maybe if they had been forced to React release in order to update the types, they would have stuck in a couple of, small improvements along the way too.&lt;/p&gt;
&lt;p&gt;[05:30] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; One other React native thing to toss in here, we&#39;ll mention it later, but Dan Abramov was doing an AMA over on BlueSky one of the various Twitter clones that are out there.&lt;/p&gt;
&lt;p&gt;And one of the questions was. You know, Dan, now that you&#39;re working on a product that is built with React Native, what are your opinions? And so per way that down that discussion, he had a couple thoughts about it&#39;s in some ways, it&#39;s great. In some ways, it actually feels really, really difficult and hard to use.&lt;/p&gt;
&lt;p&gt;But there were some interesting thoughts and discussion there.&lt;/p&gt;
&lt;p&gt;[06:03] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; My general sentiment seems to be shared by a lot of people that I&#39;ve known have worked pretty deeply with React Native is it was really great, it let me do all sorts of stuff, I never want to use it again.&lt;/p&gt;
&lt;p&gt;I think that&#39;s maybe just a reflection on the fact that mobile development is harder than web. And if you&#39;re trying to do both web and mobile development, React Native is pretty great, lets you do a lot more cheaply. Because you can actually share a substantial amount of the code between apps.&lt;/p&gt;
&lt;p&gt;But, it&#39;s got its own headaches too. You want to take us on, Mark?&lt;/p&gt;
&lt;h2 id=&quot;redux-toolkit-20-and-supporting-libraries&quot;&gt;Redux Toolkit 2.0 (and supporting libraries)&lt;/h2&gt;
&lt;p&gt;[06:33] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yes! So, my big news, kind of on a personal and professional level, I&#39;ve been teasing this one for months, but on December, I finally hit the button and shipped Redux Toolkit 2. 0. Along with major releases for all the other Redux related packages.&lt;/p&gt;
&lt;p&gt;Redux Core Version 5, React Redux Version 9, Reselect Version 5, and Redux Thunk Version 3. This has been a massive undertaking on so many levels. I started working on this slew of major versions at the start of the year. And Initially, the primary goal was to update the packaging to better improve ES module CommonJS compatibility.&lt;/p&gt;
&lt;p&gt;That turned out to be even more of a nightmare than I expected it to be. We added a number of features, we deprecated, we removed a bunch of deprecated options, there were TypeScript updates. And then the only, like the main reason we were able to even able to get these releases out this year was because we ended up deferring any major changes to the RTK query data fetching layer until sometime next year.&lt;/p&gt;
&lt;p&gt;People have asked for lots and lots of new features and options and changes, like to address those at some point, but that&#39;s just a giant undefined amount of work. Like, we, we, we have so many issues and feature requests that it&#39;s going to take weeks just to go through them and collate the list of what people are asking for, then take time to analyze those, do the design work, figure out how all these options are going to interact, and build them.&lt;/p&gt;
&lt;p&gt;And I can see that if we waited to release 2. 0 to include all those RTK query changes, It would be this time next year. Got a lot of help from one of the other primary maintainers, Ben Durant. And then, there&#39;s a guy named Arya who just left a comment in the chat who has done a ton of work on Reselect in the last few months. And we actually made some major updates to Reselect as well.&lt;/p&gt;
&lt;p&gt;One of the biggest ones was We changed the default memoization strategy for Reselect. Reselect has always had its own little built in memoization function that does a bunch of reference comparisons against all the values that are passed into the selector function. And the problem is that also defaults to a cache size of 1. If you call it three times in a row, and you alternate the arguments, like A, B, A, then it&#39;s not going to see the same arguments twice in a row, and it&#39;s not going to save the results. It&#39;s going to keep recalculating things every time.&lt;/p&gt;
&lt;p&gt;This always felt like kind of a bad developer experience situation. And so I ended up swiping crash implementation based on weak maps directly out of the React source code. React has a new memoization function built in called cache, and I literally copy pasted that code and made use of it and re select.&lt;/p&gt;
&lt;p&gt;[09:54] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Oh, very cool.&lt;/p&gt;
&lt;p&gt;[09:56] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yeah, it&#39;s buried down in the library, and I think it may actually be now listed in the docs. So, we did some testing on it, and we concluded that it&#39;s at least as fast in terms of like raw comparison performance.&lt;/p&gt;
&lt;p&gt;Um, in a sense, it has like an infinite cache size, but on the other hand, that could also be referred to as a memory leak, depending on how you look at it. Ultimately made the decision that this was worth actually including. And made that switch in Reselect version 5.&lt;/p&gt;
&lt;p&gt;So, I shipped all these literally the day before I went off on a trip to a conference, plus a vacation. So it was in theory Out of my head before I went off on this trip. Unfortunately, one of the truisms of maintaining and publishing packages is that it doesn&#39;t matter how many alphas and betas and release candidates you put out and how much you beg people to try them out, you will always get a whole bunch of new bug reports the minute after you publish the new versions live because now people are actually using them. And they&#39;re using them in ways you didn&#39;t anticipate.&lt;/p&gt;
&lt;p&gt;The biggest couple things I&#39;m seeing are some lingering TypeScript update issues where there&#39;s things are just changed a little bit in ways that people weren&#39;t expecting. I am very, very happy to have this out the door.&lt;/p&gt;
&lt;p&gt;[11:18] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; You&#39;ve brought up the alphas and the betas in the last couple of months.&lt;/p&gt;
&lt;p&gt;Glad to, glad to hear you got it shipped. That&#39;s awesome. I obviously don&#39;t have anywhere near the level of access, or familiarity with you, so I can&#39;t, I don&#39;t even feel like I can respond to that appropriately, so. (laughter from both) I&#39;m just going to roll us on to our next one.&lt;/p&gt;
&lt;p&gt;[11:36] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Moving on!&lt;/p&gt;
&lt;h2 id=&quot;xstate-v5&quot;&gt;XState v5&lt;/h2&gt;
&lt;p&gt;[11:37] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Moving on! stately, or XState v5 has been released.&lt;/p&gt;
&lt;p&gt;I don&#39;t know, I don&#39;t think I would call it a competitor to Redux, but it does also deal with state. It deals with State machines, which Redux is one way. You can also implement state machines in Redux. It&#39;s not, I don&#39;t know, would you say, would you say Redux models things as state machines? Or would that be, would you say that&#39;s inaccurate?&lt;/p&gt;
&lt;p&gt;[12:05] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; David K. Piano would point out that Redux is typically half of a state machine. Um, the distinction being that a true, with a true state machine, first you look at what state am I in now, and then you decide, okay, if I&#39;m in state A, do I want to respond to action or event? And in Redux, you typically just respond, you respond to the action in the reducer unconditionally.&lt;/p&gt;
&lt;p&gt;And so like, David actually contributed an example to the Redux style guide a while back, where it&#39;s like the first thing you would do in a reducer to make it a true state machine is switch state. Status, and then look at the action type. Whereas with a typical Redux reducer, you just, oh, here&#39;s the action.&lt;/p&gt;
&lt;p&gt;I handle it regardless of what the values are originally.&lt;/p&gt;
&lt;p&gt;[12:58] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; That&#39;s a cool and precise distinction. I like that. I have always like had a place in my heart for XState, but I&#39;ve never really used it in a project. Um, they&#39;ve had a. A bunch of really phenomenal developer tools that help with designing state machines.&lt;/p&gt;
&lt;p&gt;You know, as a state machine library, they&#39;ve written tools so that you can visualize them and write them in a visual way and then copy paste the code out. So I have actually used those tools in a Redux context because most of the projects I&#39;ve worked on have been in that. But I&#39;ve, I&#39;ve been following them, following along with their development for a number of years.&lt;/p&gt;
&lt;p&gt;Really appreciate the work that they do. I&#39;m pretty interested to see a couple of these. It looks like one of the big changes here is that everything is an actor, where actors have their own internal state, can send and receive messages or events from other actors, and can create other actors. So it sounds A little bit like a reducer, sort of like in the RTK slices, reducers kind of sense.&lt;/p&gt;
&lt;p&gt;And I think that&#39;s, been a place where I&#39;ve struggled with modeling application state as a state machine is you end up with lots of little sub states. You know, each feature kind of has its own state. So, this seems like a pretty cool mental model. Code model for getting a little, maybe, maybe more precise control over how your state flows.&lt;/p&gt;
&lt;p&gt;You know, Mark, like you said, Redux is half of a state machine. So I don&#39;t know that I could articulate a specific benefit for using an entire state machine. But I do know that using the developer tools, the designer the state machine designer tools to figure out how I&#39;m going to write my code has been really powerful.&lt;/p&gt;
&lt;p&gt;I haven&#39;t constrained myself to actually using specific state machines, but even just going through the exercise of enumerating all the states, enumerating the transitions, evaluating what data I need to pass along with the transition to make a state change self contained and isolated, um, uh I have found super valuable.&lt;/p&gt;
&lt;p&gt;They&#39;ve got some cool future plans listed as well. Um, I, one that I really like, the first one is a toPromise helper function for converting actors to awaitable promises. That sounds really cool. If I could just say like, transition this state, and when it&#39;s done, keep going. Sounds pretty nice. Seems like a nice way to make asynchronous write code that responds to them in a more iterative way.&lt;/p&gt;
&lt;p&gt;So, um, I think that sounds pretty neat.&lt;/p&gt;
&lt;p&gt;[15:36] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yeah, as someone who also maintains a state management library, I, I just generally appreciate the amount of effort and work it took them to get this release out the door, um, I, I know that trying to implement their TypeScript support has been really, really complicated and they&#39;ve got an absolute genius working for them. Matush Brzezinski, whose, whose handle is, andreasrake, has done a lot of work around their TypeScript support and trying to design APIs that are sufficiently flexible is a really, really tough task.&lt;/p&gt;
&lt;p&gt;So I, I understand and appreciate the amount of effort it took them to get this out the door. One other, one other plug, I don&#39;t know if this is even a thing they&#39;ve released yet, but something they&#39;ve been looking at is the idea of being able to analyze real world code and describe it in a state machine format, kind of like AI powered, being being able to use To like take like an arbitrary Redux reducer or maybe even like a use effect setup and have it analyze that and generate a state machine like description of it so that you can then use some of those graphical developer tools to visualize the code.&lt;/p&gt;
&lt;p&gt;That&#39;s a separate thing from the XState library itself, but I know that&#39;s something that the stately company is working on.&lt;/p&gt;
&lt;p&gt;[17:00] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; That sounds incredible, actually. Yeah. That&#39;s like the dream of self documenting code. State machines are just so easy to read in the abstract. I&#39;ve always really struggled to go back and forth between state machine, real code.&lt;/p&gt;
&lt;p&gt;So if I could have something do that for me, ooh, that&#39;s pretty cool.&lt;/p&gt;
&lt;p&gt;Alright, let&#39;s move on though. Mark, what&#39;s your next link? Or set of links.&lt;/p&gt;
&lt;p&gt;[17:24] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; So my, my caveat for a lot of this month&#39;s discussion, as usual, is that between travel and holiday stuff, I&#39;m, I&#39;m even less plugged into what&#39;s actually been going on in the ecosystem this month. This section especially is a collection of things that look interesting, but I haven&#39;t had a chance to go through them myself. So a few different updates and discussions related to React server components.&lt;/p&gt;
&lt;h2 id=&quot;react-core-team-panel-on-server-components&quot;&gt;React core team panel on Server Components&lt;/h2&gt;
&lt;p&gt;[17:49] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; A panel at the React Summit New York conference in, mid November where some members of the React team and Next. Js and a couple other ecosystem folks had a discussion about the state of React server components and whether they&#39;re worth adopting now and how are they used and how do they work. Ironically, I was at the conference.&lt;/p&gt;
&lt;p&gt;I did not have a chance to watch that panel either live or recorded later, but this article is a fairly good summary of the discussion in that, um, so there were, there were a number of folks involved in that, including Andrew Clark, one of the React core members, Tom Preston Werner, who&#39;s currently working with RedwoodJS, Ben Holmes, Josh Camot, and a couple of the React devrels.&lt;/p&gt;
&lt;p&gt;Curious about sort of like the, I guess like the semi official view of what&#39;s going on with server components. This would probably be a really good discussion to watch through.&lt;/p&gt;
&lt;h2 id=&quot;ben-holmes-react-server-components-from-scratch&quot;&gt;Ben Holmes, React Server Components from Scratch&lt;/h2&gt;
&lt;p&gt;[18:47] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Speaking of Ben Holmes, so he&#39;s very involved with the Astro framework, but he also does a lot of videos on his YouTube channel where he explains things. He did a larger video called React Server Components from Scratch, about 20 minutes where he talks about server components and does a lot of drawing on the whiteboard and tries to explain how they work and what&#39;s going on and knowing Ben&#39;s ability to describe things that should be very useful.&lt;/p&gt;
&lt;h2 id=&quot;storybook-adds-support-for-rscs&quot;&gt;Storybook adds support for RSCs&lt;/h2&gt;
&lt;p&gt;[19:16] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; The storybook tool for documenting has actually added React server component support. Frankly, I have no idea how they&#39;ve even implemented this at the technical level, but I can see this being a very useful thing. Like if you&#39;re writing server components, you want some way to be able to document them and make use of them, but they have all these requirements around being able to fetch data. So in some way, they&#39;ve implemented support for using server components.&lt;/p&gt;
&lt;h2 id=&quot;dan-abramov-blogs-again&quot;&gt;Dan Abramov blogs again&lt;/h2&gt;
&lt;p&gt;[19:45] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Dan Abramov had done a lot of blogging in 2018 2019 on his site overreacted. Io, and Dan is a very deep thinker, he does a great job of explaining things, and he&#39;d written a number of posts that kind of talk about how does React work conceptually, how do you approach modeling things with use effect, And he&#39;d really spent his last two to three years entirely focused on rewriting the React documentation.&lt;/p&gt;
&lt;p&gt;So he hadn&#39;t blogged at all in a couple years. Well, now that the new React docs are finally out, and Dan has left Facebook and is now working on the BlueSky app, he&#39;s finally had a little bit of time to sit back, And do some thinking. And he&#39;s put up a new blog post. It&#39;s a little bit on the same principle of his talk from RemixConf earlier this year.&lt;/p&gt;
&lt;p&gt;He did a talk at RemixConf where he was like, what if React had always been server first? What would the evolution of React have looked like there? And he actually did a whole live coding demo where everything was like late 90s, IE6 themed. What kind of follows along, or this blog post kind of follows on that same principle.&lt;/p&gt;
&lt;p&gt;So it&#39;s kind of like, what if we were sort of building React from scratch in a server centric world, and we need, and components could return async data, or async results. How would you even write the code that looks at the return values of the components and unwraps them recursively so that we can wait until the data is actually ready?&lt;/p&gt;
&lt;p&gt;And he never actually uses the word server components in this blog post, but if you read it, With kind of like between the lines, he&#39;s actually explaining this is the mindset behind how server components are implemented conceptually and under the hood. And I think he said this is meant to be the first in a series of blog posts that kind of digs into this, into these concepts.&lt;/p&gt;
&lt;h2 id=&quot;daishi-katos-oss-prototype-rsc-framework&quot;&gt;Daishi Kato&#39;s OSS prototype RSC framework&lt;/h2&gt;
&lt;p&gt;[21:52] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; This is pretty early stage, I think, but somebody has put together, Daishi Kato.&lt;/p&gt;
&lt;p&gt;[21:59] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; He created Jotai and Valtio and now maintains Zustand, and he&#39;s also written a dozen other React slash state management utility libraries.&lt;/p&gt;
&lt;p&gt;[22:13] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I recognize his name because you had mentioned him in previous episodes we&#39;ve recorded.&lt;/p&gt;
&lt;p&gt;But I could not have given that comprehensive list, so thank you for that. Daishi Kato has written a minimal React framework for, that uses React server components. So, this is the third, sort of React server components from scratch that I&#39;ve seen. I think this is the first that I&#39;ve seen that is Positioned as a framework that you can use.&lt;/p&gt;
&lt;p&gt;So, like you mentioned, Ben Holmes did his From Scratch video. I always appreciated Ben Holmes videos. He, he, he says he&#39;s the CEO of Whiteboards at Astro, which I, I appreciate. He, he does a good job with DevRel. And I have not yet watched his video. Like he said, travel, holidays, I&#39;m behind. But, so his was the second.&lt;/p&gt;
&lt;p&gt;Last month we talked about somebody who wrote a really great, very long, comprehensive, I have a blog post about implementing React server components on their own in isolation. It looks like server components are now starting to filter out from only Next to now people have started to really wrap their hands, wrap their brains around them and start experimenting with them on their own.&lt;/p&gt;
&lt;p&gt;So I think, to me, that is a really big step in this open source process. We&#39;ve been talking about React server components always with the caveat of like, &quot;Oh, I don&#39;t really know. I haven&#39;t played with it.&quot; Because of how complex and undocumented the programming model has been so far. So seeing some of these people really dive deep and get their hands dirty and produce things is really good.&lt;/p&gt;
&lt;p&gt;So starting with a blog post, then a video, now a framework by three separate people. The community expertise in React Server Components is really ratcheting up, pretty cool to see.&lt;/p&gt;
&lt;p&gt;[24:05] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; I can also vouch that RedwoodJS has been putting a lot of effort into trying to implement Server Components for their framework as well.&lt;/p&gt;
&lt;p&gt;I know they did a blog post a couple months ago where they said we&#39;re all in on Server Components. I had a chance to talk with Tom Preston Werner at a conference a couple months ago where he was talking about some of the complexities where in a lot of cases they&#39;re having to go into the guts of Next and look at the implementation and try to figure out like how much of this is going What anything integrating with server components would need versus how much of it is specific to Next&#39;s internals.&lt;/p&gt;
&lt;p&gt;And I&#39;ve seen some of the discussions from some of the other Redwood engineers as they&#39;re trying to figure out how to put all the pieces together. So there is activity. I don&#39;t know how fully along Redwood&#39;s implementation is yet, but there is very definite. Effort being put into trying to, trying to productionize that.&lt;/p&gt;
&lt;p&gt;[25:00] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I don&#39;t know. When did we, when did we start seriously talking about React server components? Do you, do you have a sense for that? It feels like it&#39;s been all year.&lt;/p&gt;
&lt;p&gt;[25:07] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; I feel like almost three years ago was when the first video came out. It was either two or three years ago. And, and like it sat around for a while. And then we finally started seeing the integration to Next after, Sebastien and Andrew moved over to Vercel.&lt;/p&gt;
&lt;p&gt;[25:23] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; This is all building upon the primitives that were added in Suspense, right? Which I know that, I just saw some discussion about, it&#39;s been five years since Suspense was first unveiled.&lt;/p&gt;
&lt;p&gt;So this is, I think, to me, that&#39;s a testament to just how difficult the work that they&#39;re trying to do is. We can talk a little bit more about what this unlocks later, um, I have a link coming up in the lightning round. Well actually maybe I&#39;ll just bring it in right now.&lt;/p&gt;
&lt;p&gt;Guillermo Rauch did a, um, a great post talking about, or in response to, what&#39;s the difference between PHP and Next with the, this. Satirical, kind of shit talking of like, &quot;Oh, JavaScript is finally catching up to PHP 20 years ago, haha.&quot; I thought he had a really good response, basically talking about like, Yeah, we do have, on the face of them, they are pretty similar, but some distinctions are there&#39;s out of order streaming.&lt;/p&gt;
&lt;p&gt;Like you can piece together the HTML by order of importance, not You know, linear order of HTML and pre rendering versus rendering on the client, control over that, which I, I haven&#39;t used PHP seriously in close to 10 years at this point, so I can&#39;t comment too much about what the capabilities are, but you know, I remember trying to do mixed server client rendering in PHP and it was a lot of writing JavaScript code in the HTML of PHP and then like jumping in and out of PHP tags to like render pass data in or whatever. Or you write your JSON endpoint. And so like, yeah, you can do those things, but it&#39;s, it got real messy real quick.&lt;/p&gt;
&lt;p&gt;Or it, it at least wasn&#39;t, it wasn&#39;t a pit of success. It was not easy to get something that was maintainable and great. That felt good. Felt. Solid and robust. So, yeah, I think there are, I know people talk a lot about unnecessary complexity or just people like to bash on JavaScript, people like to bash on web and client and frontend, but I do, I really believe that the React server component stuff is Genuinely pushing the envelope of what&#39;s possible in a real and deep way.&lt;/p&gt;
&lt;p&gt;I, like I, we don&#39;t, we don&#39;t have a, FrontEnd doesn&#39;t have a academic discipline, you know. There&#39;s no computer science researchers writing JavaScript. That is genuinely how I think about What a lot of the React core team is doing. Like, were this an academic discipline, this would be PhD thesis, postdoc.&lt;/p&gt;
&lt;p&gt;Actually, you know what? Like, it&#39;s not an academic discipline because it is well beyond the complexity that would be in an academic setting. This is post graduation, you&#39;ve got your Ph. D., you&#39;re now working in industry, advancing the state of that industry. And I think that is truly what the React core team has been doing for my entire career.&lt;/p&gt;
&lt;p&gt;It&#39;s one of the reasons I have a lot of trust in them, is they keep executing, and they keep, for an entire ten years, they have stayed at the bleeding edge, and they have set the norms that everyone else in the industry follows. Okay, it&#39;s taken them five years to start realizing the vision that they set out with Suspense.&lt;/p&gt;
&lt;p&gt;Well, you know what? They&#39;re doing it. They keep, it&#39;s hard, it&#39;s really difficult to feel out all the edge cases, it&#39;s really hard to communicate to all of the developers what you&#39;re supposed to be doing, but man, they&#39;re doing it. They are, they have continued to do it for my entire career, and I just have huge, huge amounts of respect for them.&lt;/p&gt;
&lt;p&gt;[29:11] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yeah, they&#39;ve always had a very long term vision of how they want to build things, and they&#39;ve kept chugging along towards that goal.&lt;/p&gt;
&lt;p&gt;[29:19] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Bit of a, bit of a ramble there, bit of a rant, but, I was thinking about it over the last week or so, in prepping for this. Just, the work they&#39;re doing is really cool.&lt;/p&gt;
&lt;h2 id=&quot;stylex-released-by-meta&quot;&gt;StyleX released by Meta&lt;/h2&gt;
&lt;p&gt;[29:29] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Okay, but under our next link, facebook released, something that they first talked about a number of years ago, Stylex, a CSS and JS tool that, that they use at Meta. Sorry, not Facebook, Meta. I don&#39;t have a lot to say on this. Um, I know I&#39;m introducing it, but it&#39;s a CSS and JS library. Kind of feels like the moment for that has, um we, we had a lot of experimentation on that.&lt;/p&gt;
&lt;p&gt;And it feels like generally we, as a, an ecosystem, the React subset of web development, have settled on CSS and JS not being the best solution. Just, some some of the trade offs are Increasing the size of the JavaScript bundle, where JavaScript is more expensive to load and parse than CSS. So it tends to add a lot. Relative to non more traditional CSS. It tends to add more startup cost than other methods. Mark, do you remember when they first announced StyleX?&lt;/p&gt;
&lt;p&gt;[30:31] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; It, there was a, there was a conference talk about it at ReactConf in either 2018 or 2019. And they didn&#39;t give many details. They just kind of said, here&#39;s an overview of the tooling that we use internally at what was, what I guess was still then Facebook and kind of what it does and how it works at a high level.&lt;/p&gt;
&lt;p&gt;The community was aware that existed. But there was no information on the actual internals or anything that you could use. So there was, it was always sort of this, this hint of this exists. It was only this year that you could actually, they were, they started actually moving towards being able to release it open source.&lt;/p&gt;
&lt;p&gt;And so now it&#39;s finally out. Um, yeah, the couple bits that I know about it are as, as the comment just said, it&#39;s primarily compile time, not runtime, so there&#39;s always trade offs there in terms of the amount of dynamic behavior it can have. I believe it compiles down to Atomic CSS, so part of the sales pitch is that as the app grows and you have more and more components using certain styles and certain rules, the growth of the size of the CSS stays lower than it might with other approaches.&lt;/p&gt;
&lt;p&gt;[31:48] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; That does seem like a genuine advancement of the state of the art of CSS and JS. Um, especially, pulling, that was always the challenge with stuff like Emotion, um, or styled components was, I think you could wire it up to Webpack or limited other build systems, such that it would extract the, the styles into CSS.&lt;/p&gt;
&lt;p&gt;Some of them could, some of them couldn&#39;t, bit of a mix and match, but okay, that, that being, The major downside of CSS and JS, if they, since they have built it as a compile time extraction of styles, that&#39;s avoiding the biggest, worst trade off. So that sounds pretty cool.&lt;/p&gt;
&lt;p&gt;Positioning this as extremely large code base styling tool, so focus on performance at scale sounds exactly like what CSS and JS needs. I think that&#39;s all. I got a say on it. You want to take us on to the next news item?&lt;/p&gt;
&lt;h2 id=&quot;documentation-for-the-use-hook&quot;&gt;Documentation for the use() hook&lt;/h2&gt;
&lt;p&gt;[32:50] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Moving us along, a couple of discussions around docs. So, I&#39;ve, I&#39;ve actually been whining for a lot of this year that okay, it&#39;s great that the new React doc site is available, it has a wonderful tutorial, but it just feels like there&#39;s so many other pages that need to get filled out for it to be fully useful in terms of some of the API references and usage guides.&lt;/p&gt;
&lt;p&gt;And I I had some discussions with some of the React dev rels this year. So they actually just posted an update that collates some of the recently added or updated docs pages that they&#39;ve been working on. And it looks like a, and kind of the, some of the theme here is they&#39;ve been working on documenting A lot of the new APIs that exist around server components and server actions.&lt;/p&gt;
&lt;p&gt;So we actually have some documentation for the ambiguously named use hook, which I&#39;ll be honest, I still don&#39;t fully know the status of this. I guess the docs page says it&#39;s only available in canary and experimental builds. So I guess you can use it with Next, and that&#39;s, that&#39;s kind of about it. But they&#39;ve also documented the new UseFormState, UseFormStatus, and UseOptimistic hooks that you would use with the, and with server actions.&lt;/p&gt;
&lt;p&gt;They&#39;ve documented the useServer and useClient, not sure what the word is for them, markers that you would put in files so that the bundler knows how to parse those. They&#39;ve added some more details on the useTransitionHook, they&#39;ve talked about the cache memoization API that I talked about earlier.&lt;/p&gt;
&lt;p&gt;They&#39;ve documented the HTML form tag. In a sense of, here&#39;s how you can use this in a React app and actually write kind of more browser native forms. They&#39;ve added a page that talks about thinking about the UI as a tree, and they&#39;re working on some additional documentation. So I&#39;m a big docs person, and I really, really appreciate seeing them continue to actually work on these and not just leave the site as it was after the new tutorials came out.&lt;/p&gt;
&lt;h2 id=&quot;dan-abramovs-ama-on-bluesky&quot;&gt;Dan Abramov&#39;s AMA on BlueSky&lt;/h2&gt;
&lt;p&gt;[35:08] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Along with that, Dan Abramov is now working on the BlueSky Twitter clone app as his day job. And he recently did an AMA over on BlueSky. People had a whole bunch of good questions over there. I mentioned the one earlier about people asking What are your thoughts on React Native now that you&#39;ve actually used it?&lt;/p&gt;
&lt;p&gt;Um, there were some questions about React batching and will React ever get ported to Rust? There was one in there that was, What do you think should happen to create React now? And Dan&#39;s comment was, It would be nice if it was turned into a build time server components framework. I don&#39;t expect that to actually happen, but it&#39;s an interesting train of thought of what could we do with the name and the toolset if we wanted to.&lt;/p&gt;
&lt;p&gt;[36:03] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Dan has gone a little quiet the last, like you mentioned earlier, he&#39;s talked about going all in on the docs. He also mentioned some challenges he experienced with his own perfectionism trying to get it just right, which is he attributed as part of the reason the docs took so long to come out. Sounds like he may have gotten a little burned out too.&lt;/p&gt;
&lt;p&gt;[36:22] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Oh, yeah. Oh, yeah.&lt;/p&gt;
&lt;p&gt;[36:24] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Burnout is real. Burnout is tough. So it&#39;s nice to see him in a new context, working on a new It sounds like he&#39;s enjoying getting his hands dirty working on an application rather than staying at the high level of just talking about React and developing it from the core. Um, I think it might, seems like he&#39;s enjoying it.&lt;/p&gt;
&lt;p&gt;It&#39;s nice to see him get back into writing and community discussion a little bit more. Um, this has been a really good thread. I&#39;m, I&#39;m also a big fan of Blue Sky. I have been enthusiastically looking for an alternative to Twitter. So I am optimistic that Dan being a more prolific poster on the platform will help it succeed.&lt;/p&gt;
&lt;p&gt;Glad to see a few more of these. Definitely recommend going through the thread and just reading a bit. There&#39;s a, there were a couple of really good questions and answers. One that I saw and responded to, so I&#39;m gonna toot my own horn a little bit. Somebody asked about, um, React and, what&#39;s the Like, Module Federation, What, Microfrontends?&lt;/p&gt;
&lt;p&gt;[37:33] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; yeah. Those are probably too&lt;/p&gt;
&lt;p&gt;[37:36] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Yeah, okay, so somebody asked about micro frontends and module federation and how React would work with it. I know that&#39;s been a subject of debate for a couple of years. It&#39;s sort of come and gone over time, ebbed and flowed, but I think that&#39;s a really big challenge. I think it&#39;s, maybe we&#39;ll see it come back a bit with React server components as those settle down, but I think the real challenge there is CI and CD, the build and deploy process for micro frontends.&lt;/p&gt;
&lt;p&gt;Which I think is, it solves a real problem for large teams, but it&#39;s difficult to implement. Tends to be a DevOps discipline rather than a library or product. Just, it&#39;s too deeply embedded in every step of the build, the development, the deploy, testing. Just too tricky.&lt;/p&gt;
&lt;p&gt;Coming back to that React Working Group discussion on GitHub, um, that you started us off with. It&#39;s really nice to see some of the Some of what they&#39;re looking to invest in more deeply. I&#39;ve always thought that React worked really well once you get your head into the right mindset of, once you get the right quote, air quotes around right, mental model for how to think about UI. In the way that React would like you to, it unlocks a lot of really powerful possibilities.&lt;/p&gt;
&lt;p&gt;So, in the past, those a lot of those best practices and descriptions for the mental model, I have gained mostly through reading a combination of gists. On GitHub, and Twitter threads, and reading code from other people and seeing how they solve problems.&lt;/p&gt;
&lt;p&gt;Which is just not a very repeatable process. Like we have a learn page with many links that you have collected, Mark. I think that&#39;s been a One of the better ways to gather body of knowledge, but it&#39;s nice to see, it&#39;s nice to see some of that, some of those best practices working their way more into the docs.&lt;/p&gt;
&lt;p&gt;I think that a lot of them have been in flux for a long time, a period of years as we were figuring out first hooks and then like, what is suspense? How does it work? Oh, now it&#39;s server components. How do those work? What are they? It feels like a very long journey to where we are right now that is It&#39;s nice to see things stabilize and settle down a little bit more.&lt;/p&gt;
&lt;p&gt;It&#39;s, I look forward to see what the docs are like in 2024.&lt;/p&gt;
&lt;p&gt;[40:04] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; I actually had a back and forth with Rick Hanlon from the React team in mid November where I was getting a little worked up and complaining that You know, the React docs really need to have more details about how React renders. You know, that&#39;s always been one of my biggest and most appreciated blog posts, is the article about React&#39;s rendering behavior.&lt;/p&gt;
&lt;p&gt;I actually got called out a little bit by Rick, who linked me to certain sections of the docs that actually have some of the information that I was complaining didn&#39;t exist. I had looked through some of the early betas of the docs, and to be honest, I hadn&#39;t really gone back and dug through them since then, and so there were definitely some pages that called out some of the specific nuances that I thought should be in there that I didn&#39;t realize had actually been added.&lt;/p&gt;
&lt;p&gt;Like even talking about kind of like the existence of like the render versus commit phase. It is sort of scattered through some of the different learning material pages. It&#39;s not like in one single start to finish usage guide or how this works page. But there is actually a lot more of that material in the current docs than, certainly in the old docs, and more than I had actually given it credit for.&lt;/p&gt;
&lt;p&gt;[41:22] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; It has been a bit of a challenge to figure out how to stay on top of what changes are coming out in the docs. I note that the last blog post on react. Dev was in May. So, I think you can be a little forgiven for finding it difficult to stay on top of what changes have happened.&lt;/p&gt;
&lt;p&gt;I&#39;m not even sure how you would. Because I don&#39;t think they get published as releases in GitHub.&lt;/p&gt;
&lt;p&gt;[41:45] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Well, no, the React docs should still be a public repo, um, it used to be React. Js slash React. Js dot org, they might have renamed the repo, but the repo exists, so I assume I could watch the repo for PRs.&lt;/p&gt;
&lt;p&gt;[41:59] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; That&#39;s a high noise source of input though, where&#39;s the bi monthly summary of here&#39;s all the stuff we&#39;ve shipped. So anyway whatever. They got more, they got some more DevRel folks. We&#39;ll see, we&#39;ll see what&#39;s going on. Anyway,&lt;/p&gt;
&lt;p&gt;[42:13] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; cool. Lightning round.&lt;/p&gt;
&lt;h2 id=&quot;️-requesterimpairment-an-ietf-joke&quot;&gt;⚡️ RequesterImpairment (an IETF joke??)&lt;/h2&gt;
&lt;p&gt;[42:16] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Lightning round. I don&#39;t quite comprehend the implications of this, but IETF, um, The task force that owns HTTP has put out a draft of an HTTP status code to report requester impairment.&lt;/p&gt;
&lt;p&gt;I don&#39;t quite know what that means. They talk a little bit about AI requesters.&lt;/p&gt;
&lt;p&gt;[42:38] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; It&#39;s a joke.&lt;/p&gt;
&lt;p&gt;[42:39] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Is it a joke? They put out a joke in December?&lt;/p&gt;
&lt;p&gt;[42:42] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Look at the status code.&lt;/p&gt;
&lt;p&gt;[42:44] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; RequesterImpairment 420. Okay, this is straight up a joke? It&#39;s a very serious looking joke.&lt;/p&gt;
&lt;p&gt;[42:50] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Have you ever seen HTTP status code 418? I&#39;m a little teapot.&lt;/p&gt;
&lt;p&gt;[42:54] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; But that was released on April Fool&#39;s Day, like 20 years ago.&lt;/p&gt;
&lt;p&gt;[42:59] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Yeah, I don&#39;t know why this one would have been released. But I&#39;m pretty sure this is a joke of some kind.&lt;/p&gt;
&lt;p&gt;[43:05] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; It smells like a joke. It&#39;s RequesterImpairment 420 Yeah. It smells like a joke, and I don&#39;t know how to interpret this. Maybe it&#39;s a joke.&lt;/p&gt;
&lt;p&gt;Move us on, take us away.&lt;/p&gt;
&lt;h2 id=&quot;️-jules-blom-on-flushsync&quot;&gt;⚡️ Jules Blom on FlushSync&lt;/h2&gt;
&lt;p&gt;[43:18] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; A blogger named Jules Blom, who has put out a number of posts in the last year that talk about some very specific technical nuances of React rendering, which is a topic that I always appreciate. And so Jules put out a post recently that talks about a relatively new React API called FlushSync.&lt;/p&gt;
&lt;p&gt;And this exists because of the change in how React batches updates. Prior to React 18, React would automatically batch renders if you called set state more than once in an event handler, but it would not do it if you did it in some async function. And so React 18 switches it so that React now always batches any updates that occur in the same event loop tick.&lt;/p&gt;
&lt;p&gt;But there might be times when you need to force a render immediately right now after a given setState call. So it&#39;s flipping the default behavior, and so now you need a new escape hatch from that behavior. So there&#39;s a new API called FlushSync, which says, okay you&#39;ve queued up one or more setState calls.&lt;/p&gt;
&lt;p&gt;Force React to actually render right now, and then continue from there. And I know Ryan Florence had a tweet about this recently, where he says he uses it instead of useEffect in a lot of cases. So you might have like a click handler that does a setState call. And then calls FlushSync to make sure it gets updated right away so that you can do some kind of like a focus or scroll change.&lt;/p&gt;
&lt;p&gt;So, this is a useful article talking about what it is and why you would want to use it.&lt;/p&gt;
&lt;h2 id=&quot;️-react-fights-you-can-have-with-your-team&quot;&gt;⚡️ React Fights You Can Have With Your Team&lt;/h2&gt;
&lt;p&gt;[44:56] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Thank you, next. I like this one. It&#39;s a little silly. A Christmas post. React fights you can have with your team. I was just reading this and all of these are fights that I have had with my team over the years. So default versus named exports.&lt;/p&gt;
&lt;p&gt;Do you call a file in a, a feature folder index tsx, or the same name as the folder? How do you name props, regular functions or arrow functions? I, it, it was, it was just a, a, a great comprehensive list of all sorts of fights that I&#39;ve had over the years on teams. So, appreciated it. Um, okay, I have a second one queued up here, so I&#39;m just gonna run with it.&lt;/p&gt;
&lt;h2 id=&quot;️-an-interview-with-kyle-mathews-on-gatsbys-story&quot;&gt;⚡️ An interview with Kyle Mathews on Gatsby&#39;s story&lt;/h2&gt;
&lt;p&gt;[45:33] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Um, there was a good podcast recently interviewing Kyle Matthews about building Gatsby. It just, just, it seemed like a very honest and open discussion of the lifespan of Gatsby from Inception to V2, V3, and Acquisition. Reactiflux and Gatsby share some ancestry. Kyle Matthews used to be pretty active here.&lt;/p&gt;
&lt;p&gt;At one point he had admin permissions over a subset of channels that Gatsby used as their official chat. So I have a soft spot in my heart for Gatsby. And it&#39;s nice to see some discussion of inside baseball, how did it work, how did it grow, why was it made. I, I, something I thought was pretty interesting is he explicitly talks about making it for himself for blogs and small sites.&lt;/p&gt;
&lt;p&gt;One of the big complaints is that Gatsby didn&#39;t really scale beyond those, so hearing him talk about how he made it for that for himself, it&#39;s like, okay, that kind of makes sense then. Yeah, worth a listen. It&#39;s like an hour long. It&#39;s a podcast. It&#39;s a reasonable time investment.&lt;/p&gt;
&lt;h2 id=&quot;️-tanstack-router-v1&quot;&gt;⚡️ TanStack Router v1&lt;/h2&gt;
&lt;p&gt;[46:41] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; All right, and last lightning round item is that the ever prolific Tanner Lindsley has released TanStack Router v1. I know Tanner has had a lot of opinions about Things like, how does a router integrate into a framework, type safety, and data fetching and loading.&lt;/p&gt;
&lt;p&gt;So, this, I could not sit here and list the differences between TanStackRouter and ReactRouter. But, Tanner has a track record of creating libraries that are very useful, very well thought out, and he puts a lot of effort into them. So, probably worth taking a look.&lt;/p&gt;
&lt;h2 id=&quot;what-will-happen-in-2024&quot;&gt;What will happen in 2024??&lt;/h2&gt;
&lt;p&gt;[47:19] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; And Mark, you had a great idea. For an end of episode discussion, what do we think will happen with React and the ecosystem in 2024?&lt;/p&gt;
&lt;p&gt;[47:29] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; The biggest one that I&#39;m so very much looking forward to and excited about is the React Forget compiler. So the initial mentions of it were well over two years ago. It was kind of quiet. We got tiny little hints and a couple updates. You know, over the last year and a half. And then finally, late this year, we got a couple big updates from the team members who were building the Forget compiler.&lt;/p&gt;
&lt;p&gt;Sathya did a talk at React India, and then Joe and Mofe did a talk at React Advanced in London. It sounds as if React Forget is real, it works, it is being used in production at a couple of different metasites, and it sounds like the hard part And now it&#39;s the other hard part of trying to fully productionize this and make it ready.&lt;/p&gt;
&lt;p&gt;You know the overall goal is not just about It&#39;s not just about removing the need to have dependency arrays in your use effects and your use callbacks or whatever. It&#39;s also about actually optimizing when it&#39;s re rendering. And there&#39;s been lots and lots of talk about signals across the JavaScript ecosystem in the last two years.&lt;/p&gt;
&lt;p&gt;You know, lots of different frameworks are adopting signals. And the React team has said You know, we, we might end up making the use of signals as like an internal primitive, but we don&#39;t really think that they provide a lot of value as a user level piece of code. And so their approach is, let&#39;s build a compiler.&lt;/p&gt;
&lt;p&gt;And you write your React code exactly the same way you always have. You don&#39;t have to think about anything special. You don&#39;t have to use special value get, set calls. You just write your components with plain data and eventually, someday, This magic compiler will make things faster. And it sounds as if someday is hopefully relatively sooner.&lt;/p&gt;
&lt;p&gt;Obviously there&#39;s no actual release date. You know, the, during the talk at London, Joe and Moffay said it&#39;ll be available when we think we&#39;ve got it fully productionized and are ready to support it. I&#39;m hopeful that it will actually come out in 2024.&lt;/p&gt;
&lt;p&gt;[49:42] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; I like that. Good prediction. Well, I don&#39;t know a prediction, but&lt;/p&gt;
&lt;p&gt;[49:45] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; Wishlist.&lt;/p&gt;
&lt;p&gt;[49:46] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; Wishlist, sure.&lt;/p&gt;
&lt;p&gt;I have always taken an approach of no expectations. I prefer to just let the news wash over me and See, I think, I think I find predictions less valuable than responsive, being responsive to what comes out. Updating a mental model periodically. I&#39;m very excited to see how server components continue to shake out.&lt;/p&gt;
&lt;p&gt;That&#39;s maybe a kind of a cop out answer, the obvious choice, but it&#39;s true. I, I, I, I think it&#39;s a pretty new paradigm for programming, um I just had my big rant earlier about respect for the core team and how they&#39;re pushing the industry forward. Yeah, I&#39;m really interested to see how that continues to shake out.&lt;/p&gt;
&lt;p&gt;It&#39;s really cool to see momentum build. In the community, in the ecosystem. I think it&#39;s complicated, I think it&#39;s hard. I think 2024 might be when we hit critical mass on that and start seeing a lot more powerful applications of server components more generally.&lt;/p&gt;
&lt;p&gt;[50:51] &lt;strong&gt;Mark Erikson:&lt;/strong&gt; another thing that will hopefully happen next year is another stable version of release of React.&lt;/p&gt;
&lt;p&gt;Because the current one is 18. 2, that came out well over a year and a half ago. You know, I&#39;ve voiced my complaints about React&#39;s versioning strategy a number of times this year. They put out the blog post about the canary release idea, which has resulted in a lot of arguments about, well, what does it mean that this feature is stable for frameworks, not actually stable and usable by anybody else?&lt;/p&gt;
&lt;p&gt;And I think, it kind of goes back to what I said earlier about, Pre release versions. It is very true that for most developers, like even myself included, a fully supported, stable, semver backed release It might as well not even exist, both in people&#39;s minds and in the willingness of people to actually use certain features.&lt;/p&gt;
&lt;p&gt;So there&#39;s been a lot of debate and frustration over the way that like, Next is using pre release and experimental versions of React in order to implement things like the app router. And I&#39;m very hopeful that we will actually get another stable version of React that Actually pushes things forward also in a selfish way because then it would actually have my source maps generation built in the latest Info that I have just trying to keep an eye on the update work team is actively talking about React 19.&lt;/p&gt;
&lt;p&gt;Andrew Clark has made a couple comments on Twitter I&#39;ve started to see some PRs go through in the React repo that are actively starting to clean up deprecated and dead features. Um, they removed a completely unknown variation of how you could define components as a module object. A couple months ago, there&#39;s actually a PR up right now that would remove the legacy context system.&lt;/p&gt;
&lt;p&gt;You know, the old this. Context in, in class components. I would not be surprised if we don&#39;t get an 18. 3 minor release. And instead, the next stable release is 19. 0, with a number of deprecations and removals and things cleared out. Very curious if that would also finally include the better web component support.&lt;/p&gt;
&lt;p&gt;It was PR&#39;d probably almost two years ago, and has been sitting in experimental builds. And has resulted in lots of people whining that it&#39;s not available yet. I would certainly hope React 19 would be out by this time next year. If and when it does come, I would expect it to be removing a lot of deprecated options.&lt;/p&gt;
&lt;p&gt;The question is, how long will it take to come out? And will there be any minor releases before that? I can also safely predict that the React subreddit and Reactiflux will continue to be flooded with questions of Should I use Next versus React? Should I use Next versus Remix? Should I use Next versus Vite?&lt;/p&gt;
&lt;p&gt;Should I use Redux versus Context? Da da da da da da da da da da.&lt;/p&gt;
&lt;p&gt;[54:09] &lt;strong&gt;Carl Vitullo:&lt;/strong&gt; The never ending cycle of questions. Yeah, we&#39;re, we&#39;re going to be doing a, a thank you to the React core team soon before the end of the year. Years and years ago, we used to do an annual like end of year thank you to the core team, which was really lovely.&lt;/p&gt;
&lt;p&gt;And we just fell off and stopped doing it. So we&#39;re going to be trying to revive that now. And it&#39;s been six years since the last time we did that. Last one was in 2017. It was a good excuse to go back, pull up the web archive, and see how the communities have grown. So I pulled up like this the subreddit, the React. Js subreddit, Reactiflux, and Thackoverflow.&lt;/p&gt;
&lt;p&gt;And it was pretty wild. All of those have 10x&#39;d in size. The 2017, there were 60, 000 questions on Stack Overflow. The subreddit was at 30, 000 members. Reactiflux was at 25, 000 members. And now, Reactiflux is at 220, 000 members. Subreddit&#39;s at 300, 000. And we&#39;ve got 600, 000 questions on Stack Overflow.&lt;/p&gt;
&lt;p&gt;Just absolutely ludicrous growth. Literally 10x. On each of those communities, over the last six years. Pretty wild. React&#39;s taking over the world. Or has taken over the world.&lt;/p&gt;
&lt;p&gt;All right, well thank you everyone for joining us on this end of year, weird liminal space between Christmas and New Year&#39;s when nothing counts and nothing is real.&lt;/p&gt;
&lt;p&gt;We&#39;ll be back on the last Wednesday of January. Here in the live stage of Reactiflux or back in your podcast feed as soon as we can. With the end of the year this one might Come out a couple days late. We&#39;ll see. I&#39;m not sure what my editor is gonna be up to. Ha ha. If you see anything newsworthy, definitely let us know in the Tech News and Reads channel of Reactiflux.&lt;/p&gt;
&lt;p&gt;We do source Links from there, definitely pull from discussion and things as well. Thank you so much for joining us. I&#39;ll see you next month.&lt;/p&gt;</description><link>https://www.reactiflux.com/transcripts/tmir-dec-2023</link><guid isPermaLink="false">reactiflux-tmir-dec-2023</guid><pubDate>Tue, 26 Dec 2023 16:00:00 GMT</pubDate><author>Reactiflux</author><enclosure url="https://reactiflux.com/logo-banner.png" type="image/jpeg"></enclosure></item></channel></rss>