This Week In React #109: React Labs, Linaria, React-Aria, Design System, Ladle, Sandpack, Redwood, React-Native, Moon...
React
React Labs: What We've Been Working On – June 2022
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
Airbnb’s Trip to Linaria
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
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
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
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:
📖 You Might Not Need an Effect: new doc page in beta
📦 Sandpack 1.0: React components to build interactive code playground, from CodeSandbox. New design, theming, SSR support, React 18, file explorer...
📦 Ladle 1.0: Storybook alternative based on Vite, built for Uber. Can now customize Vite config + addons for accessibility and accessing story source.
📦 uipkg: new plugin to export Figma designs to React.
📦 Remix-routers: adapt Remix router to other frameworks (for now only Vue)
📦 React-Teleporter 3.0: React 18 support
📦 SWR 2.0 Beta 4: resource preloading API
📦 React-cmdk: A command palette for React
📦 Redwood 2.0: 3 months after v1.0? Don't panic! It's just a few breaking changes, Redwood respects semantic versioning.
📦 React 18.2: SSR bugfixes
📦 Vitext: Next.js alternative based on Vite?
💸 Sponsors
💡 How to sponsor this newsletter
TechTree - Introducing This Week in React Bounty Board
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.
A Global Virtual Conference for Full-Stack Developers 🌎
Meteor Impact, Meteor’s most significant online conference, will be back this year and held by Jan Dvořák (aka Storyteller). 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 to stay updated with the latest news and updates.
React-Native
Helping migrate React Native libraries to the New Architecture
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
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:
🧵 Metro + web: Metro web usage is increasing: Airbnb, Stripe, Expo...
📦 React-Native-Owl 1.0: visual regression testing lib for React-Native reaching v1 milestone
📦 React-Native-Performance Config Plugin (not the same 😅)
Partners
Start React Native: learn everything about gestures and animations with William Candillon
Adventures in Nodeland: Matteo writes about his journey as a Node.js TSC member and maintainer of 500+ modules on npm, including Fastify and Pino!
TypeScript Weekly: the best TypeScript links every week, right in your inbox
Tailwind Weekly: all things Tailwind CSS, new issue every Saturday
G2i: pre-vetted remote React & React-Native developers you can trust on contract or full-time basis
Infinite Red: US React-Native experts making your idea a reality
Software Mansion: the co-creators of React Native and the technological core of many tech companies
Other
The cost of convenience
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
Seems to be a new competitor to Nx and Turborepo, this time written in Rust 😏
Extras: