This Week In React #164: Next.js, Remix, RSCs, React-Forget, MDX, Expo Orbit, Ignite, Victory XL, Reanimated, TypeScript...
Tags: react, reactnative
Published: 2023-11-30 14:38:28

---
series: This Week In React
canonical_url: https://thisweekinreact.com/newsletter/164
---

Hi everyone!

It's been a long time, I hope you haven't missed me too much 😄

I've been on paternity leave and enjoyed my little Louise 👨‍🍼😍.

Apparently my absence hasn't slowed down the growth of this newsletter, which has just [passed 30,000 subscribers](https://www.indiehackers.com/product/french-react-newsletter/30-000-subscribers--NkKag3m683I_z7J3TCI)! 🥳️

This is the first time I've taken such a long break (5 weeks), and it's hard to get back at it. You know I like to be exhaustive, but it's impossible for me to read and comment on everything that's happened since the last issue 😅. In short, this email is going to contain a lot of interesting links, but not necessarily commented on. I'll do better next week, I promise!

In the future, I'd like to make this more professional, and publish every single week consistently. I'm [looking for someone to help me](https://thisweekinreact.com/job). If you're interested, please apply (paid).


---

💡 Subscribe to the [official newsletter](https://thisweekinreact.com?utm_source=dev_crosspost) to receive an email every week!

[![banner](https://thisweekinreact.com/img/TWIR_POST.png)](https://thisweekinreact.com?utm_source=dev_crosspost)

---

## 💸 Sponsor

[![Frontendmasters](https://thisweekinreact.com/emails/issues/158/frontendmasters.jpg)](https://frontendmasters.com/learn/react/?utm_source=newsletter&utm_medium=thisweekinreact&utm_campaign=reactpath)

**[FrontendMasters – Complete React.js Learning Path to Senior React Developer](https://frontendmasters.com/learn/react/?utm_source=newsletter&utm_medium=thisweekinreact&utm_campaign=reactpath)**

Learn React.js from the ground up to advanced topics like performance, testing, and code quality. Start by building a real-world app in the Complete Introduction to React. Continue with Intermediate React, integrating the most popular tools from the ecosystem. Then learn performance, TypeScript, and even Next.js, the fullstack React framework!

---

## ⚛️ React

[![Next.js 14](https://thisweekinreact.com/emails/issues/164/nextjs-14.jpg)](https://nextjs.org/blog/next-14)

[**Next.js 14**](https://nextjs.org/blog/next-14)

Next.js 14 has been announced at Next.js conf, including:

- Server Actions stable
- Turbopack almost stable
- Introducing Partial Pre-Rendering (experimental)
- New learning resource

See also:

- 🎥 [Playlist YouTube Next.js conf](https://www.youtube.com/playlist?list=PLBnKlKpPeagl57K9bCw_IXShWQXePnXjY)
- 📜 [Next.js 14 on Vercel](https://vercel.com/changelog/next-js-14)
- 📜 [A look at Partial Prerendering with Next.js 14 on Vercel.](https://vercel.com/blog/partial-prerendering-with-next-js-creating-a-new-default-rendering-model)

---

- 🐦 [Server Actions are available in React Canary](https://twitter.com/reactjs/status/1716573234160967762)
- 🐦 [Andrew Clark - "React 19 coming soon"](https://twitter.com/acdlite/status/1719474730363662473)
- 🐦 [Ryan Florence - "React Server Components on the Remix roadmap"](https://twitter.com/ryanflorence/status/1729274387671760936)
- 👀 [React PR - `<Offscreen>` renamed as `<Activity>`](https://github.com/facebook/react/pull/27640): Dan Abramov explains the `<Offscreen>` name was misleading for this upcoming Concurrent React feature.
- 👀 [React PR - Generate sourcemaps for production build artifacts](https://github.com/facebook/react/pull/26446): great news to improve the DX of many tools permitting to debug on your prod bundle, such as Sentry or Replay.
- 👀 [React Canary Changelog](https://github.com/facebook/react/blob/main/CHANGELOG-canary.md): as planned, React canary releases have started to be documented properly.
- 📖 [React docs - "use server"](https://react.dev/reference/react/use-server)
- 📖 [React docs - Taint API](https://react.dev/reference/react/experimental_taintObjectReference): new experimental API to avoid sending sensitive data to the client in a RSC context.
- 📖 [Redux Toolkit 2.0 + Redux core 5.0 Migration Guide](https://deploy-preview-3089--redux-starter-kit-docs.netlify.app/migrations/migrating-1.x-to-2.x): new versions of RTK, React-Redux and Redux core are in RC.
- 📜 [Vercel - How to Think About Security in Next.js](https://nextjs.org/blog/security-nextjs-server-components-actions): gives great advices to avoid security issues related to RSCs and Server Actions, in particular how to avoid exposing sensitive data. Recommends to validate unsafe inputs, to add Access Control checks, to use a Data Access Layer, to test the new React Taint API...
- 📜 [Why we use AWS instead of Vercel to host our Next.js app](https://graphite.dev/blog/why-we-use-aws-instead-of-vercel): Graphite decided to use EC2 containers instead of an edge runtime. Surprisingly performance remains similar.
- 📜 [Why useSyncExternalStore Is Not Used in Jotai](https://blog.axlight.com/posts/why-use-sync-external-store-is-not-used-in-jotai/): on the difficulty to make both useTransition and useSyncExternalStore work at the same time.
- 📜 [Event Types in React and TypeScript](https://www.totaltypescript.com/event-types-in-react-and-typescript): useful techniques if you can't remember types to use for your event handlers.
- 📜 [Why You Need React Query](https://tkdodo.eu/blog/why-you-want-react-query): gives great reasons to avoid implementing your own data fetching based on useEffect, it's more complex than it looks like.
- 📜 [React Server Components, without a framework?](https://timtech.blog/posts/react-server-components-rsc-no-framework/): great technical article to understand how RSCs work under the hood. Migrates a simple CRA app to a custom RSC setup.
- 📜 [Remix ❤️ Vite](https://remix.run/blog/remix-heart-vite): with Remix 2.2, it's now possible to use Remix as a Vite plugin. This comes with interesting benefits.
- 📜 [Why I'm Using Next.js](https://leerob.io/blog/using-nextjs)
- 📜 [Why I Won't Use Next.js](https://www.epicweb.dev/why-i-wont-use-nextjs)
- 📜 [What do we know about React Forget](https://www.code-insights.dev/posts/what-do-we-konw-about-react-forget)
- 📜 [Using Selectlist in React](https://polypane.app/blog/using-selectlist-in-react/)
- 📜 [A Complete Guide To Using Cookies in Next.js](https://www.propelauth.com/post/cookies-in-next-js)
- 📜 [Pierre's Next.js Cache Strategy](https://pierre.co/share/fe34c8b7-4054-4e07-b108-c6c8230cfab1)
- 📜 [React Server Components - Introduction and Background](https://jessedit.tech/articles/react-server-components/1-background/)
- 📜 [On Mixing Client and Server](https://matt-rickard.com/on-mixing-client-and-server)
- 📜 [Building a drawer component - Vaul](https://emilkowal.ski/ui/building-a-drawer-component)
- 📜 [Typed server-safe DOM event listeners in Remix](https://alemtuzlak.hashnode.dev/typed-server-safe-dom-event-listeners-in-remix)
- 📜 [Exploring Remix with Vite](https://alemtuzlak.hashnode.dev/exploring-remix-with-vite)
- 📜 [Building the most ambitious sites on the Web with Vercel and Next.js 14](https://vercel.com/blog/building-the-most-ambitious-sites-on-the-web-with-vercel-and-next-js-14)
- 📜 [re-re-reselect — Simplifying React state management](https://causal.app/blog/re-re-reselect)
- 📜 [Refreshing the Next.js App Router When Your Markdown Content Changes](https://www.steveruiz.me/posts/nextjs-refresh-content)
- 📜 [Guide to React Suspense and use hook for busy bees](https://sinja.io/blog/guide-to-react-suspense)
- 📜 [Concurrency in React 18 for busy bees](https://sinja.io/blog/guide-to-concurrency-in-react-18)
- 📜 [React-Admin - Turning Open-Source Into Profit: Our Journey](https://marmelab.com/blog/2023/11/08/open-source-profit-1.html)
- 📜 [Keep that cursor still!](https://giacomocerquone.com/keep-input-cursor-still/)
- 📜 [Testing against every Next.js canary release](https://francoisbest.com/posts/2023/testing-against-every-nextjs-canary-release)
- 📜 [Against Single Element React Components](https://www.jameskerr.blog/posts/against-single-element-react-components/)
- 📜 [How React works](https://incepter.github.io/how-react-works/)
- 📜 [Out of Order Streaming from Scratch](https://gal.hagever.com/posts/out-of-order-streaming-from-scratch)
- 📜 [daily.dev - Moving back to React](https://daily.dev/blog/moving-back-to-react)
- 📜 [Headless Component: a pattern for composing React UIs](https://martinfowler.com/articles/headless-component.html)
- 📜 [When NOT to use shadcn/ui?](https://mwskwong.com/blog/when-not-to-use-shadcn-ui)
- 📜 [React Query Auth Token Refresh](https://elazizi.com/posts/react-query-auth-token-refresh/)
- 📦 [Docusaurus v3.0 - MDX 3, TS/ESM configs, unlisted...](https://docusaurus.io/blog/releases/3.0)
- 📦 [React Aria Components RC](https://react-spectrum.adobe.com/releases/2023-11-8.html)
- 📦 [MDX v3 - Updating Node, await support...](https://mdxjs.com/blog/v3/)
- 📦 [Remix v2.3](https://github.com/remix-run/remix/blob/main/CHANGELOG.md#v230)
- 📦 [Astro 4.0 beta](https://astro.build/blog/astro-4-beta/?tw)
- 📦 [Storybook 7.5 - Vite 5, Next.js improvements, faster...](https://storybook.js.org/blog/storybook-7-5/)
- 🎥 [React Forget Compiler - Understanding Idiomatic React](https://portal.gitnation.org/contents/understanding-idiomatic-react)

---

## 💸 Sponsor

[![No-Code Form Builder for React](https://thisweekinreact.com/emails/issues/164/surveyjs.jpg)](https://surveyjs.io/?utm_source=thisweekinreact&utm_medium=email)

**[No-Code Form Builder for React](https://surveyjs.io/?utm_source=thisweekinreact&utm_medium=email)**

SurveyJS is a product suite of open-source JavaScript libraries that allow you to **build a** **robust form management system** fully integrated into your IT infrastructure.

You can create and easily modify multiple **JSON-based forms in a drag-and-drop form builder with an integrated Theme Editor**. Adjust various UI theme settings to achieve unique form looks. Render custom forms in your React application, collect responses from users, and **maintain full control over the data flow**. These libraries do not directly interact with server code or databases. Visit [https://surveyjs.io/](https://surveyjs.io/) to try out our free full-scale demo and find multiple code examples.

---

## 📱 React-Native

- 💸 [Moropo - We'll Get Your App to 60% UI Test Coverage in 6 Weeks or You Don't Pay](https://www.moropo.com/automation-offer?utm_source=newsletter&utm_medium=emails&utm_campaign=twir-20231129)
- 🐦 [Amazon using React-Native for years, including the main Amazon Shopping app](https://twitter.com/reactnative/status/1722025802974277983)
- 🐦 [Static Hermes demo - JS performance comparable to C++](https://twitter.com/tmikov/status/1720103356738474060)
- 👀 [RFC - Golden Template for create-react-native-library](https://github.com/react-native-community/discussions-and-proposals/pull/721)
- 👀 [RFC - Introducing reactNativeManifest to package.json](https://github.com/react-native-community/discussions-and-proposals/pull/717)
- 📖 [Develop an app with Expo - Overview](https://docs.expo.dev/workflow/overview/)
- 📜 [Universal Links are Important](https://evanbacon.dev/blog/universal-links)
- 📜 [Apple Home Screen Widgets with Expo CNG](https://evanbacon.dev/blog/apple-home-screen-widgets)
- 📜 [Securing your React Native app with SSL Pinning](https://www.bam.tech/article/securing-your-react-native-app-with-ssl-pinning)
- 📜 [Our journey from React Native to Expo for mobile app development at Alan](https://medium.com/alan/our-journey-from-react-native-to-expo-for-mobile-app-development-at-alan-%EF%B8%8F-3b1569e8ab7c)
- 📜 [Node.js mobile rebooted](https://nodejs-mobile.github.io/blog/reboot)
- 📜 [Victory Native Turns 40](https://formidable.com/blog/2023/victory-native-turns-40/)
- 📦 [Expo Orbit v1 - macOS menu bar app](https://expo.dev/changelog/2023/11-14-orbit-v1)
- 📦 [React-Native 0.73 RC.6](https://github.com/facebook/react-native/releases/tag/v0.73.0-rc.6)
- 📦 [Reanimated 3.6 - Multithreading, Layout animations on web...](https://github.com/software-mansion/react-native-reanimated/releases/tag/3.6.0)
- 📦 [Ignite 9.0 - More Expo-focused than ever](https://shift.infinite.red/announcing-ignite-9-0-exp-ress-o-89ab5801937d)
- 📦 [react-native-testing-library 12.4 - Built-in Jest matchers](https://github.com/callstack/react-native-testing-library/releases/tag/v12.4.0)
- 📦 [react-native-ai - full stack framework for building cross-platform mobile AI apps](https://github.com/dabit3/react-native-ai)
- 🎥 [The road to a better developer experience](https://www.youtube.com/watch?v=YA0PMPm12SU): Krzysztof presented a demo of a very promising React-Native IDE taking the form of a VSCode extension. See also this [🐦 thread](https://twitter.com/kzzzf/status/1722973994368762335).

---

## 🔀 Other

- 📊 [State of JavaScript 2023 - Survey is open](https://survey.devographics.com/en-US/survey/state-of-js/2023)
- 📜 [An Interactive Guide to CSS Grid](https://www.joshwcomeau.com/css/interactive-guide-to-grid/)
- 📦 [TypeScript 5.3 - import attributes, narrowing...](https://devblogs.microsoft.com/typescript/announcing-typescript-5-3/)
- 📦 [Rspack 0.4 - Rsbuild 0.1](https://www.rspack.dev/blog/announcing-0.4.html)
- 📦 [Yarn 4.0 - Hardened mode](https://yarnpkg.com/blog/release/4.0)
- 📦 [Deno v1.38 - HTML doc generator and HMR](https://deno.com/blog/v1.38)
- 📦 [Vite 5.0 - Rollup 4 and cleanups](https://vitejs.dev/blog/announcing-vite5)
- 📦 [Prettier 3.1 - new ternary formatting](https://prettier.io/blog/2023/11/13/3.1.0)
- 📦 [Biome 1.4 - Formatter 96% compatible with Prettier](https://biomejs.dev/blog/biome-wins-prettier-challenge)
- 📦 [Mock Service Worker 2.0](https://github.com/mswjs/msw/releases/tag/v2.0.0)
- 📦 [Hono 3.10 - Support for Async Components in JSX + Suspense](https://github.com/honojs/hono/releases/tag/v3.10.0)

---

## 🤭 Fun

[![alt](https://thisweekinreact.com/emails/issues/164/meme.jpg)](https://twitter.com/sebastienlorber/status/1719831082235801974)


See ya! 👋