This Week In React #109: React Labs, Linaria, React-Aria, Design System, Ladle, Sandpack, Redwood, React-Native, Moon...
Tags: react, reactnative, typescript, javascript
Published: 2022-06-22 09:43:57

---
series: This Week In React
---

Hi everyone!

Another week with lots of content, including 2 official articles on the React and React-Native blogs.

The React ecosystem continues to grow, and my curation workflow is getting better too. Result: I have more and more links to share 😅

By the way, I'm curious, is being exhaustive a bug or a feature? 😄 You can answer me by email or on the [Twitter poll](https://twitter.com/Tiagojdf/status/1539295280578940928?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter).

The problem is also that Gmail truncates my newsletter 😬. This is partly because of my Revue provider and its long tracking links. I'm thinking of migrating to ConvertKit soon.

🙏 **Support the newsletter:**

-   😘 **Recommend it to your friends**: it really helps!
-   💸 [**Sponsor This Week In React**](https://gist.github.com/slorber/cb732fb5d0a002c4d73236a9baeba7bb?utm_campaign=thisweekinreact&utm_medium=email&utm_source=Revue%20newsletter)
-   😍 [**Write testimonials on Twitter**](https://twitter.com/sebastienlorber/timelines/1448942785814466561?utm_campaign=thisweekinreact&utm_medium=email&utm_source=Revue%20newsletter)
-   🧵 [**Retweet the latest Twitter thread**](https://slo.im/thread?utm_campaign=thisweekinreact&utm_medium=email&utm_source=Revue%20newsletter)
-   📨 Reply to this [**email**](mailto:lorber.sebastien@gmail.com?utm_campaign=thisweekinreact&utm_medium=email&utm_source=Revue%20newsletter): feedback is welcome
-   👥 Follow on [**LinkedIn**](https://www.linkedin.com/company/this-week-in-react/?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)

**If you like this newsletter, subscribe in priority there**:

-   🇬🇧 [ThisWeekInReact.com](https://thisweekinreact.com/md)
-   🇫🇷 [ReactHebdo.fr](https://reacthebdo.fr/)


[![](https://user-images.githubusercontent.com/749374/153181021-8fdb0ece-270a-4cf2-980b-4557d04316ad.png)](https://thisweekinreact.com/md)

---

## React

[**React Labs: What We've Been Working On -- June 2022**](https://reactjs.org/blog/2022/06/15/react-labs-what-we-have-been-working-on-june-2022.html?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)

React Labs is a new series of articles: the React team wants to share more regularly its progress. Read the whole article: it contains a lot of very interesting information, in particular:

-   Server Components: async/await model, no more `.server.js` extension, Webpack/Vite unification...
-   React Optimizing Compiler (React Forget) rewritten, seems to progress well.
-   the Offscreen API offering new very interesting capabilities (instant transitions ❤️️)

See also [Dan Abramov comments on Reddit](http://reddit.com/r/reactjs/comments/vd0w6g/react_labs_what_weve_been_working_on_june_2022/ickr47j/?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)

[**Airbnb's Trip to Linaria**](https://medium.com/airbnb-engineering/airbnbs-trip-to-linaria-dc169230bd12?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)

Airbnb explains how they went from Sass to react-with-styles and then Linaria. It is a no-runtime CSS-in-JS framework with static CSS extraction. They explain their choice, migration strategy, and give a positive feedback on the tool they contribute to.

[**React Aria - Date and Time Pickers for All**](https://react-spectrum.adobe.com/blog/date-and-time-pickers-for-all.html?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)

React Aria has just announced the release of Date and Time Picker components and hooks. As you can expect, there is a real focus on accessibility, flexibility and internationalization. We can feel that there is a lot of work behind these components from the Adobe teams.

[**Notes on maintaining an internal React component library**](https://www.gabe.pizza/notes-on-component-libraries/?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)

Gabe works on Walrus, Digital Ocean's internal React design system. He offers a very detailed feedback on the maintenance of a React design system over time. He shares interesting lessons on the human aspect as well as on the design of props, the encapsulation of components or the management of version upgrades.

[**Capture Phase Event Handling in React**](https://kyleshevlin.com/capture-phase-event-handling-in-react?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)

We often use the "bubbling" phase of DOM events, but it is sometimes useful to use the "capture" phase which is not very well known. We can use for example `onClickCapture` with React.

**Extras:**

-   📜 [5 Big Takeaways from Remix Conf](https://www.simplethread.com/5-big-takeaways-from-remix-conf/?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   📜 [What is XState used for?](https://stately.ai/blog/what-is-xstate-used-for?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   📜 [The Case for Use.GPU](https://acko.net/blog/the-case-for-use-gpu/?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   📜 [Why Use useReducer?](https://kyleshevlin.com/why-use-use-reducer?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   📜 [React Element vs Component](https://www.robinwieruch.de/react-element-component/?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   📜 [Inversion of Control and JSX Injection via Context API](https://theroadtoenterprise.com/blog/react-inversion-of-control-and-jsx-injection-via-context-api?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   📖 [You Might Not Need an Effect](https://twitter.com/dan_abramov/status/1539034955094933504?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter): new doc page in beta
-   📦 [Sandpack 1.0](https://codesandbox.io/post/announcing-sandpack-v1?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter): React components to build interactive code playground, from CodeSandbox. New design, theming, SSR support, React 18, file explorer...
-   📦 [Ladle 1.0](https://ladle.dev/blog/ladle-v1?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter): Storybook alternative based on Vite, built for Uber. Can now customize Vite config + addons for accessibility and accessing story source.
-   📦 [uipkg](https://uipkg.com/?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter): new plugin to export Figma designs to React.
-   📦 [Remix-routers](https://github.com/brophdawg11/remix-routers?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter): adapt Remix router to other frameworks (for now only Vue)
-   📦 [React-Teleporter 3.0](https://github.com/gregberge/react-teleporter/releases/tag/v3.0.0?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter): React 18 support
-   📦 [SWR 2.0 Beta 4](https://twitter.com/shuding_/status/1538165993448652800?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter): resource preloading API
-   📦 [React-cmdk](https://github.com/albingroen/react-cmdk?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter): A command palette for React
-   📦 [Redwood 2.0](https://twitter.com/RedwoodJS/status/1537798365609615363?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter): 3 months after v1.0? Don't panic! It's just a few breaking changes, Redwood respects semantic versioning.
-   📦 [React 18.2](https://twitter.com/dan_abramov/status/1536822549245575168?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter): SSR bugfixes
-   📦 [Vitext](https://github.com/aslemammad/vitext?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter): Next.js alternative based on Vite?
-   🐦 [React-Three-Fiber + Html embed](https://twitter.com/sebastienlorber/status/1539235102143795200?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   👥 [React-conferences](https://github.com/nvh95/react-conferences?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   🧵 [React Summit Sketches](https://twitter.com/flexbox_/status/1538874305596928005?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)

---

## 💸 Sponsors

💡 [How to sponsor this newsletter](https://gist.github.com/slorber/cb732fb5d0a002c4d73236a9baeba7bb?utm_campaign=thisweekinreact&utm_medium=email&utm_source=Revue%20newsletter)

[TechTree - Introducing This Week in React Bounty Board](https://techtree.dev/t/sHBrozirH3xSY8jP3M7gGv?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)

TechTree is building the first **social-economic platform for developers** - a place to help you unlock the real value of your knowledge and network!

The first major feature on TechTree is Bounties, a tool to help you **earn money by referring your friends** to open roles at top VC backed tech startups or find a job that might be right for you!

To help show you around, I have gone ahead and created my very own Bounty board - **a selection of remote, React related roles for you to apply to or refer your network to**. There has been over $300k worth of Bounties claimed on TechTree so far!

Looking to hire React developers? You can post Bounties of your own to be featured on my Bounty board! Read more and get started [here](https://www.notion.so/techtreedev/Share-your-jobs-on-my-Bounty-board-c51d2d97d9f3421bab103c42097907ae?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter).

[A Global Virtual Conference for Full-Stack Developers 🌎](https://social.meteor.com/impact2022?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)

**Meteor Impact**, Meteor's most significant online conference, will be back this year and held by Jan Dvořák (aka [Storyteller](https://social.meteor.com/StorytellerCZ?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)). Meteor Software and Pathable will support the event, amongst other sponsors.

Last year's conference was a significant success, with over **490+ attendees** and **40 talks**, and we're planning to make this year's event even bigger and better!

Make sure you save these dates: **October 13th** and **14th**, 2022.

If you want to stay up to date with information regarding Meteor Impact, you can [sign up here](https://social.meteor.com/impact2022?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter) to stay updated with the latest news and updates.

---

## React-Native

[**Helping migrate React Native libraries to the New Architecture**](https://reactnative.dev/blog/2022/06/16/resources-migrating-your-react-native-library-to-the-new-architecture?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)

The React-Native team explains how they will help us adopt the new architecture. There will be documentation, support via the working group, but also GitHub repos with many examples of applications and migration branches. Note that React-Native 0.69 (with React 18) should be available soon: the features of Concurrent React will be available only for users on the new architecture.

[**@shopify/react-native-performance**](https://github.com/Shopify/react-native-performance?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)

Packages created by Shopify to profile the performance of your apps. First-class React-Navigation and FlatList profiling support.

⚠️ Warning: 3 popular packages now have the same name 😅

**Extras:**

-   📜 [Writing fastlane scripts in Javascript](https://reaper.is/writing/20220616-fastlane-in-javascript?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   🧵 [Metro + web](https://twitter.com/sebastienlorber/status/1538925340193595395?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter): Metro web usage is increasing: Airbnb, Stripe, Expo...
-   📦 [React-Native-Owl 1.0](https://twitter.com/kadikraman/status/1537040838424944640?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter): visual regression testing lib for React-Native reaching v1 milestone
-   📦 [React-Native-Performance Config Plugin](https://twitter.com/almouro/status/1539260205162176513?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter) (not the same 😅)
-   📦 [Siri Shortcuts Config Plugin](https://twitter.com/Baconbrix/status/1537102639586021378?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   📦 [React-Native-Firebase v15](https://twitter.com/fastsquatch/status/1538715138236235776?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   🎙️ [RNR 239 - Shrink your app with ProGuard](https://reactnativeradio.com/episodes/rnr-239-shrink-your-app-with-proguard-james-hamilton?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   🎙️ [The React Native Show Coffee Talk #3 - Open Source](https://www.callstack.com/podcasts/coffee-talk-3-open-source?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   🎙️ [The React Native Show #13 - Migration to React Native](https://www.callstack.com/podcasts/migration-to-react-native?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)

---

## Other

[**The cost of convenience**](https://surma.dev/things/cost-of-convenience/?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)

An interesting reflection on frontend abstractions and their cost... Proposes an interesting mental model to differentiate a framework from a library (IoC - Hollywood principle - "Don't call us, we'll call you"). All this illustrated with some React examples.

[**Moon - A build system for the JavaScript ecosystem**](https://moonrepo.dev/?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)

Seems to be a new competitor to Nx and Turborepo, this time written in Rust 😏

**Extras:**

-   [TypeScript 4.8 Beta](https://devblogs.microsoft.com/typescript/announcing-typescript-4-8-beta/?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   [Why You Might Prefer Map Over Object In JavaScript](https://www.zhenghao.io/posts/object-vs-map?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   [Sponsoring dependencies: The next step in open source sustainability](https://humanwhocodes.com/blog/2022/06/sponsoring-dependencies-open-source-sustainability/?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   [CSS - Complex vs Compound Selectors](https://www.miriamsuzanne.com/2022/06/15/complex-compound/?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   [Socket for GitHub 1.0](https://socket.dev/blog/socket-for-github-1.0?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   [State of Open Source Security 2022](https://snyk.io/reports/open-source-security/?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   [CSS - Backdrop Filter finally in Firefox 103](https://twitter.com/sebastienlorber/status/1539190607922479109?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   [V8 - Discontinuing release blog posts](https://v8.dev/blog/discontinuing-release-posts?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   [Bringing forward the End-of-Life Date for Node.js 16](https://nodejs.org/en/blog/announcements/nodejs16-eol/?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   [CSS - New syntax for range media queries in Chrome 104](https://developer.chrome.com/blog/media-query-range-syntax/?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   [Software Engineering - The Soft Parts](https://addyosmani.com/blog/software-engineering-soft-parts/?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   [Lerna 5.1](https://twitter.com/NxDevTools/status/1537110739403493378?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   [Boa v0.15](https://boa-dev.github.io/posts/2022-06-10-boa-release-15/?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   [zx 7.0](https://github.com/google/zx/releases/tag/7.0.0?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   [Tauri 1.0](https://tauri.app/blog/tauri_1_0?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   [Deno 1.23](https://twitter.com/deno_land/status/1537405732349411328?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)
-   [Deno raises $21M](https://deno.com/blog/series-a?utm_campaign=This%20Week%20In%20React&utm_medium=email&utm_source=Revue%20newsletter)


<img width="530" alt="CleanShot 2022-06-22 at 11 42 01@2x" src="https://user-images.githubusercontent.com/749374/174998031-272e34a8-2a3c-4176-9009-97284b5a11a7.png">