This Week In React #141: Next.js, Storybook, React Visualized, Remix, Chakra, Modern.js, Reselect, Benchmarks, Expo...
Tags: reactnative, reactjs
Published: 2023-04-13 07:41:53

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

Hi everyone!

We just passed a milestone: you are now **over 20,000 subscribers**! 🥳️

Thanks to all of you for giving me your attention every week and for helping me grow this project! If you want to give me a hand: **word-of-mouth** works well. I'm setting up a **referral program** that will soon allow me to know my best ambassadors, and to thank or reward them.

Having a critical mass of readers is important: it allows to find [sponsors](https://thisweekinreact.com/sponsor) and compensate for the fact that I spend 50% of my time on it. After 3 years of effort, I've finally reached sustainability: it will give me the freedom to test new ideas without taking too many risks.

Otherwise, this week is marked by the release of Next.js 13.3 and Storybook 7.0. React Visualized is a very nice resource for beginners. I discovered Modern.js. Some good articles about React, Remix and Chakra UI. Calm on React-Native side.

For React-Native developers, don't miss the [App.js](https://appjs.co/) conference in Krakow on May 10-12. It was a [very good experience](https://twitter.com/sebastienlorber/status/1536636851230060544) for me last year 👌. They offer us [-20% on workshops](https://ti.to/appjs/2023/discount/ThisWeekinReact20).

---

💡 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


[![React-admin](https://thisweekinreact.com/emails/issues/141/react_admin.png)](https://marmelab.com/react-admin/?utm_source=newsletter&utm_term=this-week-in-react)

**[React-admin - The Open-Source Framework for B2B apps](https://marmelab.com/react-admin/?utm_source=newsletter&utm_term=this-week-in-react)**

Single-Page-Apps are still the best choice to create admin panels, B2B apps, and ERP systems on top of REST/GraphQL APIs. [React-admin](https://marmelab.com/react-admin/?utm_source=newsletter&utm_term=this-week-in-react) is **the open-source framework of reference for building SPAs**.

React-admin offers a library of 150+ business-oriented components. It's not a UI kit: it leverages the best UI kit for React, MUI. React-admin boosts developer productivity by assembling the best-in-class libraries, managing all the repetitive stuff you shouldn’t have to deal with.

Its strongest point? The best developer experience you'll ever have, backed by an awesome documentation and a vibrant community. [And it only takes 30 minutes to get started](https://marmelab.com/react-admin/Tutorial.html) 🚀

React-admin has been actively **maintained for 5 years**, and has already convinced more than 20,000 developers worldwide. Come try it, it is free, forever! 😁

---

## ⚛️ React
[![Next.js 13.3](https://thisweekinreact.com/emails/issues/141/nextjs13.3.jpg)](https://nextjs.org/blog/next-13-3)

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

Some very nice new features in this new Next.js release. The new App Router will soon be considered as stable.

- File-Based Metadata API: new file system conventions to generate sitemaps, robots, favicons... See also this [visual thread](https://twitter.com/delba_oliveira/status/1645840553597362176).
- Dynamic Open Graph Images: integration of `@vercel/og` and Satori directly in Next.js to generate social cards via JSX and CSS/Tailwind.
- Static Export: Next.js can run Server Components at build time and produce a static export of your app that does not require a server runtime.
- Parallel Routes: the layout component can define multiple slots that will be filled by different pages.
- Interception Routes: allows to implement "Instagram" type routing patterns, a photo can be opened in a modal or in full screen depending on where you come from.
- Many other improvements.

---

[![React, Visualized](https://thisweekinreact.com/emails/issues/141/visualized.jpg)](https://react.gg/visualized)

**[React, Visualized](https://react.gg/visualized)**

A very nice visual and interactive resource to discover React. To share with beginner React devs within your team.

---

- 👀 [Modern.js](https://modernjs.dev/en): ByteDance devs don't only offer rspack, but also a complete React meta-framework, and a whole ecosystem of tools. Keep an eye on this!
- 👀 [Next.js RFC - `next/third-parties`](https://github.com/vercel/next.js/discussions/48256): the goal is to create wrappers on top of `next/script` to facilitate the integration of popular libraries like Google Analytics.
- 👀 [Next.js PR - Add Zod and router state validation](https://github.com/vercel/next.js/pull/46962)
- 👀 [Reselect PR - Add experimental new memoizers: autotrack, weakmap, and signalis](https://github.com/reduxjs/reselect/pull/605)
- 📜 [Storybook 7.0](https://storybook.js.org/blog/storybook-7-0/): the blog post has just been published! Big release that we already talked about several times.
- 📜 [The future of Chakra UI](https://www.adebayosegun.com/blog/the-future-of-chakra-ui): Chakra UI wants to switch to zero-runtime CSS-in-JS to be compatible with Server Components. Aims to be a universal library with a good DX. They are creating Panda for CSS-in-JS, and Ark to help with the integration of agnostic Zag.js state machines.
- 📜 [Fighting inter-component HTML bloat](https://elisehe.in/2023/03/27/minimal-html-in-design-systems.html): a good article that advises to avoid creating useless DOM wrapper elements in a React context. Suggests some interesting solutions that I didn't know, like Radix `asChild`.
- 📜 [Server-side render dates across timezones with Remix](https://www.jacobparis.com/guides/remix-ssr-dates): cookie-based solution to solve React hydration issues related to a different timezone between client and SSR.
- 📜 [Framework popularity on Netlify](https://www.netlify.com/blog/framework-popularity-on-netlify/): stats on the use of many React frameworks at Netlify. Glad to see Docusaurus there!
- 📜 [Generate open graph social preview images with Remix](https://www.jacobparis.com/guides/remix-og): as `@vercel/og` only runs on Vercel, this solution gives a similar result using Satori and svg2img.
- 📜 [Why & How We Retired Elm at Culture Amp](https://kevinyank.com/posts/on-endings-why-how-we-retired-elm-at-culture-amp/): feedback on the choice to use Elm or React over time.
- 📜 [The Most Common Mistakes When Using React](https://claritydev.net/blog/the-most-common-mistakes-when-using-react)
- 📜 [Improving React Testing Library Tests](https://claritydev.net/blog/improving-react-testing-library-tests)
- 📜 [NextJS - SPA or MPA?](https://www.code-insights.dev/posts/nextjs-spa-or-mpa)
- 📦 [React Aria Components alpha](https://twitter.com/devongovett/status/1643988004577619971): to facilitate the use of React-Aria and other React-Aria + React-Spectrum updates.
- 📦 [Astro 2.2](https://astro.build/blog/astro-220/): `assetPrefix` to use a CDN and changes on the `image()` helper for the collections schema.
- 📦 [Next-Auth v4.22](https://twitter.com/nextauthjs/status/1645004172725551104): support Route Handlers support.
- 📦 [next-seo v6](https://github.com/garmeeh/next-seo/releases/tag/v6.0.0): recommande d'utiliser les nouvelles API Next.js avec le App Router.
- 📦 [Deno SaaS Kit](https://github.com/denoland/saaskit): official Deno boilerplate to create SaaS, based on Fresh and Preact.
- 🎥 [Secret React Server Component Patterns They Don't Want You To Know](https://www.youtube.com/watch?v=ciQdQkT0bZk): interesting for those who want to know more about Wakuwork and its RSC capabilities not present in Next.js 13.
- 🎥 [Why React breaks your app – on purpose](https://www.youtube.com/watch?v=1UOAI7pFDek): explains why React renders the app twice with Strict Mode.
- 🎥 [React Server Components without NextJS - A 1 minute guide](https://twitter.com/BHolmesDev/status/1643990398824763393): great short RSC overview.

---

## 💸 Sponsor

[![Tina.io is a headless CMS for Markdown-powered sites](https://thisweekinreact.com/emails/issues/140/tinacms.jpg)](https://tina.io/?utm_source=newsletter&utm_term=this-week-in-react)

**[Tina.io is a headless CMS for Markdown-powered sites](https://tina.io/?utm_source=newsletter&utm_term=this-week-in-react)**

- Editing UI for your Markdown files
- UI for MDX components
- Supports static (SSG) and server-side rendering (SSR)
- Option for visual editing (live-preview)
- Build with reusable blocks

Test a starter site

- [Docusaurus](https://github.com/tinacms/tinasaurus) (Github)
- [Next.js + Tailwind with visual editing](https://github.com/tinacms/tina-cloud-starter) (Github)

Or run  `npx create-tina-app@latest` then visit `localhost:3000/admin`

Watch the [4-min demo video](https://www.youtube.com/watch?v=zRkeKSZjlyw)

---

## 📱 React-Native

- 📜 [Managing environment variables securely in React Native](https://www.bam.tech/article/managing-environment-variables-securely-in-react-native)
- 📜 [Expo - M1/M2 Migration Timeline for EAS Build](https://blog.expo.dev/m1-m2-migration-timeline-for-eas-build-22bd6c49f1b3)
- 👀 [The New Architecture Performance Benchmarks](https://github.com/reactwg/react-native-new-architecture/discussions/123): the new architecture is just slightly faster than the old one on this synthetic benchmark. Note: performance is not the only reason to adopt the new architecture. Some performance issues fixed on v0.72.
- 👀 [Soon: Environment Variables in Expo](https://twitter.com/Baconbrix/status/1644731840132169728)
- 👀 [Expo-MDX supports global components](https://twitter.com/Baconbrix/status/1645477524606943248)
- 📦 [React-Native 0.72.0-RC.1](https://github.com/facebook/react-native/releases/tag/v0.72.0-rc.1)
- 📦 [react-native-keyboard-controller 1.5](https://twitter.com/ziusko/status/1645322969453932576): interactive keyboard, ability to dismiss the keyboard with a gesture.
- 📦 [react-native-quick-sqlite](https://twitter.com/mrousavy/status/1643991438450114563): package now maintained by Margelo.
- 🐦 ["Hermes recently surpassed JavaScriptCore as the most popular JavaScript engine in EAS Build!"](https://twitter.com/expo/status/1645540179724353536)
- 🎥 [How to Create an Expo App with React-Native Firebase](https://www.youtube.com/watch?v=mZlKwRV4MC8)
- 🎥 [freeCodeCamp React-Native Course](https://www.youtube.com/watch?v=obH0Po_RdWk)
- 👥 [App.js](https://appjs.co/) (Krakow, May 10-12) is offering us [-20% on workshops](https://ti.to/appjs/2023/discount/ThisWeekinReact20) (code "ThisWeekinReact20").
- 👥 [Chain React](https://chainreactconf.com/) (Portland, May 18-19) is offering us -10% on entries (code "thisweekinreact").

---

## 🧑‍💻 Jobs

🧑‍💼 [**Passionfroot - Senior Full-stack Engineer (Remix) - €160k+, Berlin/remote**](https://passionfroot.recruitee.com/o/senior-fullstack-engineer)

Passionfroot's mission is to empower the independent businesses of tomorrow via YouTube, Podcasts, Social Media, and Newsletters. Join us in building a tool that will empower creators globally to build scalable, sustainable businesses.

🧑‍💼 [**Callstack - Senior React Native Developer - Fully Remote, PLN 21-32k net on B2B, monthly**](https://www.callstack.com/senior-react-native-developer)

Do you want to work on the world's most used apps? Would you like to co-create the React Native technology? Join the Callstack team of React & React Native leaders. Check our website for more details. We are looking forward to seeing your application - show us what you've got!

🧑‍💼 [**G2i - 100% Remote React Native Jobs**](https://twitter.com/gabe_g2i/status/1563204813881425926?s=20&t=ArRLC77BpRwXXCdx8fnUqw)

We have several roles open for developers focused on React Native! Pay is ~160k plus 10% bonus. You must have production experience with RN and be based in the US. DM [@gabe_g2i](https://twitter.com/gabe_g2i) to learn more and don't forget to mention This Week in React.

💡 [How to publish an offer?](https://thisweekinreact.com/sponsor)

---

## 🔀 Other

- [JSPM CLI Relaunch](https://jspm.org/jspm-cli): package management betting on import maps.
- [lazyrepo - Caching task runner for npm/pnpm/yarn monorepos](https://github.com/ds300/lazyrepo)
- [AWS Lambda introduces response payload streaming](https://aws.amazon.com/fr/about-aws/whats-new/2023/04/aws-lambda-response-payload-streaming/)
- [Vercel - Improved Node.js compatibility for Edge Middleware and Edge Functions](https://vercel.com/changelog/improved-node-js-compatibility-for-edge-middleware-and-edge-functions)
- [W3C - First public draft - Badging API](https://www.w3.org/blog/news/archives/9878)
- [Node.js 19.9](https://nodejs.org/en/blog/release/v19.9.0)
- [Vitest 0.30](https://twitter.com/sheremet_va/status/1645063635712999427)

---

## 🤭 Fun

[![React was a mistake](https://thisweekinreact.com/emails/issues/141/meme.jpg)](https://twitter.com/sebastienlorber/status/1645823352693506048)

See ya! 👋