π¨ #208: Compiler, Next.js, Docusaurus, TanStack, nuqs, Storybook, StyleX, React Navigation, Shopify, Reanimated, Nitro, BottomTabs, CocoaPods, Maestro, Rolldown, Container Queries...
Hi everyone!
No major React announcements this week, probably due to the US presidential election.
But we still had a bunch of exciting React and React Native and great community articles. I'm particularly excited about the React Compiler direction, and the release of React Navigation 7 with a new screen preloading API. Shopify's React Native endorsement is also great news for our ecosystem. Of course, I'm happy to unveil what I've been working on for months on Docusaurus too!
Don't forget to answer the State of React 2024 survey. It's closing next week, and we still have less answers than last year so far. If you have an audience, please help spread the word, and add a ?source=my_name
parameter so that survey bias can be tracked.
π‘ Check this newsletter on Twitter - visual format π¨
As always, thanks for supporting us on your favorite platform:
- π¦ Bluesky
- βοΈ X / Twitter
- π LinkedIn
- π½ Reddit
Don't miss the next email!
πΈ Sponsorβ
AG Grid: The best React Table in the world
AG Grid is a fast, free and fully customisable React Table. Used by 90% of the Fortune 500, AG Grid is 100% open source with over 4 million npm downloads per month:
- π Free: Access 100s of features such as Sorting, Filtering, Pagination, Cell Editing and more, all for free - forever.
- π Fast: Display millions of cells out of the box, without compromising on performance.
- π¨ Customisable: Add your own components to cells, rows & columns and use the Theming API to build & customise Themes.
- π’ Enterprise Features: Purchase a licence for lifetime access to advanced features including Pivoting, Grouping, Master / Detail and Integrated Charts (powered by our React Charting Library, AG Charts). Try it for free - no trial license required.
Learn More: ag-grid.com
βοΈ Reactβ
π₯ Sathya Gunasekaran - What's next for the React Compiler?
I finally caught up with this great talk that announced the React compiler beta, but also unveiled a few other interesting. The compiler is not just about auto-memoization, but is a platform to build more optimizations on. 3 upcoming features presented:
- Type config: You can help the compiler do a better job by providing extra type information.
- JSX Inlining: The compiler can remove useless JSX runtime calls, replace them with pre-built JSX objects.
jsx('div')
becomes{type: 'div'}
. - JSX Outlining: The compiler can extract subcomponents automatically, that can then be optimized independently. This is particularly useful for list elements when using
array.map
and inlined JSX, the compiler can create an<Item>
component (see the talk screenshot, otherwise this PR explains it well).
- πΈ Omlet β Scan your repos and measure how and where components are used
- π Managing Advanced Search Param Filtering in the Next.js App Router: Great interactive article showing that lifting state to the URL is not so easy when using RSC-based routing. To obtain a good UX, you have to use startTransition and useOptimistic. The nuqs library can help simplify.
- π Two ways to the two Reacts: Interesting thoughts on the different visions that Next.js and TanStack Start are adopting to integrate modern React features. TanStack Start is more client-centric and less disruptive.
- π How to (not) reset a form after a Server Action in React: React Actions automatically reset the uncontrolled form inputs, but it might not be what you want on action errors.
- π Storybook Test sneak peek: Testing components and stories in your browsers.
- π Upgrading React with micro-frontend: Using a Module Federation React bridge to allow using different React versions.
- π React Router Brand Update: Updating the logo/wordmark for the upcoming v7 release.
- π How headless components became the future for building UI libraries: In particular focusing on Radix.
- π Integrating Large Language Models into Frontends
- π XState in React: Look Ma, no useState or useEffect!
- π How To Build And Deploy A Headless WordPress With Next.js?
- π On Crafting Painterly Shaders (React Three Fiber)
- π Preact - Simplifying Islands Architecture
- π¦ Docusaurus 3.6 - Docusaurus Faster: The project Iβve been working on for a few months now, upgrading Docusaurus to Rust tooling (Rspack, SWC, LightningCSS) makes it 3x faster to build your static site!
- π¦ next-validate-link - Validate Your Markdown Links with Ease: It understands Next.js (App Router) conventions and reports broken links/anchors found in MD/MDX files.
- π¦ StyleX 0.9.3 - Improves theming APIs and dynamic styles
- π¦ nuqs 2.1 - Type-safe search params - Vitest 2 support, parseAsISODate, serializer urlKeys and clearAsDefaults
- π¦ uikit 0.8 - Performant 3D user interfaces using React-Three-Fiber and Yoga
- π¦ Quicky - Deploy Next.js and Node.js to your own server
- π¦ Shopify Hydrogen - October 2024 release - Storefront API
- π¦ Monicon - Universal Icon Library
- π₯ Ethan Niser - The secret to why React feels so fast: More about functional programming than React but still worth watching to understand the underlying techniques that allow Concurrent React to split work into smaller chunks and regularly yield to the main thread.
- π₯ Delba - Next.js 'use cache' in 100 seconds
- ποΈ This Month in React - React Devtools, RN 0.76, Web Components...
Don't miss the next email!
πΈ Sponsorβ
Introducing @clerk/nextjs v6 - Next.js 15 compatible
The Next.js team has announced the stable release of Next.js 15, and Clerk is continuing the tradition of (nearly) same-day support for new major Next.js releases with the release of @clerk/nextjs
v6. With v6, the auth()
helper is now asynchronous, <ClerkProvider>
defaults to static rendering instead of dynamic, and support for partial pre-rendering has been introduced.
π± React-Nativeβ
React Navigation v7 is now out and should power the upcoming Expo Router v4 coming with Expo SDK 52, both in beta. My favorite highlights are:
- Screen preloading: You can prepare screens ahead of time prior to navigating to them and improve the perceived performance. This one is really exciting and might be able to use Concurrent React features in the future.
- Static API: Simplifies the navigator configuration, and makes it easier to work with TypeScript and deep linking.
We've just finished migrating the Shopify mobile app to React Native
Mustafa (Director of Engineering) announced on X that Shopify finished migrating their flagship app with 586 screens to React Native, with very positive results. I hope we'll get a detailed blog post soon.
- 1.8 millions of lines of code removed
- 86% of code sharing between iOS and Android
- 59% faster screen loading
- 44% faster app launch
- 63% faster webviews
- Reducing app crashes
- Improving apps store ratings
- πΈ Create a customizable PDF viewer in React using Puppeteer. Learn to generate styled PDFs easily with Node and any JavaScript framework.
- π¬ Replace CocoaPods with Tuist instead of Swift Package Manager: The creator of the iOS toolchain Tuist raises potential problems adopting SPM in React Native and suggests an alternative.
- π Getting started with Nitro
- π My plan to port Electron app CSS themes into React Native
- π The architecture of a conference application built with Expo
- π¦ Reanimated 3.16 - RN 0.76, new React-Compiler-safe get/set APIs, logging
- π¦ Nitro 0.14 - RN 0.76, getHybridObjectConstructor
- π¦ Bottom Tabs 0.3 - haptic feedback, Android back behavior props, preventDefault()
- π¦ Vision Camera 4.6 - RN 0.76, videoBitRate for Android, CameraX upgrade
- π¦ Skia 1.5.1 - ProMotion 120 fps
- π¦ Screens 3.35 - RN 0.76, add RSC βuse clientβ, dynamic frameworks, blurEffect
- π¦ Safe Area Context 4.14 - macOS support
- π¦ Maests - Write and compose Maestro flows in TypeScript
- π₯ Expo - How to run end to end tests on EAS Build
- π₯ Simon Grimm - Tailwind is going Mobile
- π₯ Catalin Miron - Wallpaper Reanimated Carousel
- π₯ Beto - Sending Over-the-Air (OTA) Updates with EAS Update
- ποΈ Rocket Ship 53 - Why Accessibility in React Native matters with Britta Evans-Fenton
π Otherβ
- π A Friendly Introduction to Container Queries
- π What's a Single-Page App?
- π Should masonry be part of CSS grid?
- π Your CSS reset should be layered
- π New to the web platform in October
- π¦ Lightning CSS 1.28
- π¦ Rolldown 0.14: The upcoming Rollup-compatible Rust bundler for Vite is feature-complete, v1 beta is expected by the end of the year.
π€ Funβ
See ya! π
Don't miss the next email!