This Week In React #168: TanStack, RSC, preload, shadcn-ui, Catalyst, rsc-cache, WishList, VisionOS, Hermes, release-profiler...
Tags: react, reactnative
Published: 2024-01-08 11:11:57

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

Hi everyone!

Merry Christmas and Happy New Year! 🥂

The newsletter is back for another year. Despite the holiday season we still had some interesting news, notably regarding the TanStack. Developers probably took this opportunity to work on their own open-source side projects 😄!

Don't forget to answer the [State of React Native 2023 survey](https://stateofreactnative.com/), it's your last chance!

Once again, this issue now has 2 authors [Benedikt](https://twitter.com/bndkt) is helping me.

I hope to find time to write a full 2023 retrospective of the newsletter. Until then, if you are curious, I write monthly reports on my [Indie Hackers page](https://www.indiehackers.com/product/french-react-newsletter) for 2 years now.

---

💡 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

[![A newsletter helping flex your product muscle](https://thisweekinreact.com/emails/issues/168/posthog.png)](https://newsletter.posthog.com/?utm_source=twir&utm_campaign=twir)

**[A newsletter helping flex your product muscle](https://newsletter.posthog.com/?utm_source=twir&utm_campaign=twir)**

[**Product for Engineers**](https://newsletter.posthog.com/?utm_source=twir&utm_campaign=twir) is PostHog’s newsletter dedicated to helping engineers improve their product skills. Learn what questions to ask users, how to build new features users love, and the path to product market fit. [**Subscribe for free**](https://newsletter.posthog.com/?utm_source=twir&utm_campaign=twir) to get curated advice on building great products, lessons (and mistakes) from building PostHog, and deep dives into the strategies of top startups.

---

## ⚛️ React

[![TanStack Router 1.0](https://thisweekinreact.com/emails/issues/168/tanstack-router.jpg)](https://tanstack.com/router/v1)

**[TanStack Router 1.0](https://tanstack.com/router/v1)**

The highly anticipated TanStack Router launched as stable 1.0 with a nice [🐦 trailer](https://twitter.com/tannerlinsley/status/1738709130213560497), just in time for Christmas. This new router pushes the boundary of what is possible in terms of type-safety, url state management (search params) and caching, among other things.

The [SSR guide](https://tanstack.com/router/v1/docs/guide/ssr) reference a `@tanstack/react-start` package, probably a teaser for an upcoming [🐦 TanStack Start framework](https://twitter.com/sebastienlorber/status/1742589454563369123)

Other recent TanStack packages that you might have missed:

- 📦 [TanStack Config - Tool for publishing and maintaining high-quality JavaScript packages](https://github.com/TanStack/config)
- 📦 [TanStack Store - Framework agnostic, type-safe store with reactive framework adapters](https://tanstack.com/store/latest)

---

- 💸 [From Dreamweaver to JSX: The Evolution of Visual Dev Tools for the Web](https://mightymeld.com/blog/browser-dev-tools-understand-code?utm_source=thisweekinreact&utm_medium=newsletter&utm_campaign=link1)
- 👀 [React Docs PR - React-DOM static resource loading functions](https://github.com/reactjs/react.dev/pull/6459)
- 👀 [Next.js PR - Next.js is exploring moving to Lightning CSS](https://github.com/vercel/next.js/pull/58712)
- 👀 [Remix PR - SPA Mode](https://github.com/remix-run/remix/pull/8338)
- 🐦 [useMemo to become a better version of context selectors](https://twitter.com/sebastienlorber/status/1741218919732429108): It turns out [selectors do not compose well](https://twitter.com/dan_abramov2/status/1741200483862151663), and the plan is to improve useMemo to kind of act like a selector!
- 🐦 [SkipRenderOnClient - interesting trick to optimize hydration performance](https://twitter.com/sebastienlorber/status/1742528219318738955)
- 🐦 [Million.js joins Y Combinator](https://twitter.com/aidenybai/status/1737929698221682789)
- 📜 [React Server Components: the Good, the Bad, and the Ugly](https://www.mayank.co/blog/react-server-components/): Critical, but well-informed take on the status quo of using RSC.
- 📜 [Thoughts on Remix](https://www.viget.com/articles/thoughts-on-remix/): Balanced view on Remix - where it came from, their philosophy and how it compares to Next.js.
- 📜 [More Than You Need to Know About ReactDOM.­flushSync](https://julesblom.com/writing/flushsync): Detailed and interactive look at React-DOM `flushSync()` method, a rarely used but sometimes crucial method enabling you to opt-out of React state update batching.
- 📜 [Remix + MDX - How this site is built](https://remix-blog-mdx.fly.dev/): Vite features and plugins work together to power Remix + MDX.
- 📜 [The View Transition API: A New Way to Animate Page Transitions](https://marmelab.com/blog/2023/12/21/view-transitions.html): Also shows how to use it in React Router and Remix.
- 📜 [What should we ship?](https://rauno.me/craft/vercel): Detailed blog post about the vercel.com relaunch.
- 📜 [Future of Storybook in 2024](https://storybook.js.org/blog/future-of-storybook-2024/): The themes for Storybook in 2024 will be application development (as opposed to isolated component development), enhanced support for non-React frameworks, and improved story generation (using AI).
- 📜 [How to make Storybook 2-4x faster - v7.6 comes with perf improvement options, enabled by default in v8.0](https://storybook.js.org/blog/optimize-storybook-7-6/)
- 📜 [Next.js 14 Parallel Routes](https://www.builder.io/blog/nextjs-14-parallel-routes): Simultaneously render multiple pages within the same layout (useful for dashboards).
- 📜 [Next.js 14 Intercepting Routes](https://www.builder.io/blog/nextjs-14-intercepting-routes)
- 📜 [Understanding React’s useFormState and useFormStatus Hooks](https://blog.logrocket.com/understanding-react-useformstate-useformstatus-hooks/)
- 📜 [Diving into Server Actions in Next.js 14](https://blog.logrocket.com/diving-into-server-actions-next-js-14/)
- 📦 [rsc-cache - cache expensive RSCs, with Next.js integration](https://github.com/fredkiss3/rsc-cache)
- 📦 [Catalyst - Modern UI kit for React](https://tailwindcss.com/blog/introducing-catalyst): New official React UI kit from the Tailwind team. It's a paid product requiring a Tailwind UI license. There's also a free Headless UI update, now in v2.0 alpha.
- 📦 [Tokenami - Atomic CSS in the style attribute](https://github.com/tokenami/tokenami): Modern type-safe styling solution with theming, responsive variant support. Supports React and Solid.
- 📦 [shadcn-ui 0.5 - new components (Carousel, Drawer, Pagination, Resizable, Sonner) and CLI improvements](https://ui.shadcn.com/docs/changelog)
- 📦 [StyleX 0.4.1 - ESLint and Rollup plugin improvements, autocomplete, performance, reduced runtime size, support for CSS layers...](https://stylexjs.com/blog/v0.4.1)
- 📦 [Storybook 8.0.0 alpha 4 - no react peer dependency anymore](https://github.com/storybookjs/storybook/releases/tag/v8.0.0-alpha.4)
- 📦 [TWC - Create reusable Tailwind CSS + React components](https://react-twc.vercel.app/)
- 📦 [MDXTS - Build interactive, type-safe content and documentation in MDX, TypeScript, and React](https://www.mdxts.dev/)
- 📦 [Plate - Rich-text editor framework for React, customizable, including a plugin system](https://platejs.org/)
- 📦 [next-route-handler-pipe - Function pipelines for Next.js route handlers](https://github.com/KolbySisk/next-route-handler-pipe)

---

## 💸 Sponsor

[![ShipFast - Ship your startup in days, not weeks](https://thisweekinreact.com/emails/issues/168/shipfast.jpg)](https://shipfa.st/?via=twir)

**[ShipFast - Ship your startup in days, not weeks](https://shipfa.st/?via=twir)**

The Next.js boilerplate with all you need to build your SaaS, AI tool, or any other web app and make your first $ online fast.

- App Router or Page Router
- JavaScript or TypeScript
- Money-back guarantee, refundable within 7 days

---

## 📱 React-Native

- 💸 [Galaxies.dev - Master React Native & Save 25% on PRO with code GALAXIES24](https://galaxies.dev?utm_source=thisweekinreact.com)
- 📊 [State of React Native 2023 survey - Last-call, closing on Friday 5](https://stateofreactnative.com/)
- 👀 [RFC: Moving away from Obj-C on Apple platforms](https://github.com/react-native-community/discussions-and-proposals/pull/747): Moving to Swift will only start after the move to the New Architecture has been completed.
- 👀 [hermes-jsi-demos - Use Hermes with JSI on desktop without any frameworks](https://github.com/tmikov/hermes-jsi-demos)
- 👀 [jsi-rs - Write ultra fast React Native modules in Rust](https://github.com/laptou/jsi-rs/)
- 🐦 [Expo SDK 50 optimizing bundle size with platform shaking](https://twitter.com/Baconbrix/status/1740487401414275120)
- 🐦 [Chain React 2024 announced for July 17-19](https://twitter.com/ChainReactConf/status/1737578373415928100)
- 🐦 [Top React Native Tweets of 2023](https://twitter.com/infinite_red/status/1737890233201623526)
- 📜 [WishList Release scrapped](https://margelo.notion.site/WishList-Summit-b20c24d1f0da4889a0513dfa929be5ed): After a year of development, Margelo decided not to release their library aimed at solving performance problems for lists in React Native.
- 📜 [Bringing React Native libraries to Apple Vision Pro](https://www.oskarkwasniewski.dev/blog/bringing-react-native-libraries-to-apple-vision-pro): the new out-of-tree VisionOS platform will support JS libs automatically. Most native libs will simply need to add a `visionos` platform to the podspec.
- 📜 [How to Properly Read Xcode Error](https://levelup.gitconnected.com/how-to-properly-read-xcode-error-7b979692333d)
- 📜 [JavaScript Achieves Breakthrough Performance with Static Hermes](https://medium.com/@elves.silva.vieira/javascript-achieves-breakthrough-performance-with-static-hermes-6286b0ac8ef7)
- 📦 [react-native-release-profiler - passively profile JS/Hermes in production and release builds](https://github.com/margelo/react-native-release-profiler)
- 📦 [expo-video-metadata](https://github.com/hirbod/expo-video-metadata): Retrieve information such as duration, dimensions, orientation, and codec for local and remote video files.
- 📦 [react-native-macos 0.73.1](https://www.npmjs.com/package/react-native-macos/v/0.73.1)
- 📦 [react-native-windows 0.73.2](https://github.com/microsoft/react-native-windows/releases/tag/react-native-windows_v0.73.2)
- 📦 [Bootstrap a universal File-based Expo app with Tailwind styles](https://github.com/expo/examples/tree/master/with-router-tailwind): New create-expo-app template using Expo Router v3 and NativeWind v4.
- 🎙 [React Native Show 32 - React Native for Apple Vision Pro and visionOS](https://www.callstack.com/podcasts/react-native-for-apple-vision-pro-and-visionos)
- 🎙️ [RNR 284 - React Native Rewind - 2023 in Review](https://reactnativeradio.com/episodes/rnr-284-react-native-rewind-2023-in-review)
- 🎙️ [Rocket Ship 23 - Why you should use React Native in 2024](https://podcast.galaxies.dev/episodes/023-why-you-should-use-react-native-in-2024)

---

## 🔀 Other

- 👀 [TypeScript 5.4 PR - Add auto-import for the package.json imports field](https://github.com/microsoft/TypeScript/pull/55015)
- 📜 [Frontend predictions for 2024](https://buttondown.email/whatever_jamie/archive/frontend-predictions-for-2024/)
- 📜 [JavaScript Frameworks - Heading into 2024](https://dev.to/this-is-learning/javascript-frameworks-heading-into-2024-i3l)
- 📜 [Alternate Futures for “Web Components”](https://blog.carlana.net/post/2023/web-component-alternative-futures/)
- 📜 [Why JavaScript promises aren't technically monads](https://rybicki.io/blog/2023/12/23/promises-arent-monads.html)
- 📜 [Shadow DOM and the problem of encapsulation](https://nolanlawson.com/2023/12/30/shadow-dom-and-the-problem-of-encapsulation/)
- 📦 [ESLint v9.0.0-alpha.0](https://eslint.org/blog/2023/12/eslint-v9.0.0-alpha.0-released/)
- 📦 [quick-lint-js. 3.0 - TypeScript bug finder](https://quick-lint-js.com/blog/version-3.0/)

---

## 🤭 Fun

[![alt](https://thisweekinreact.com/emails/issues/168/meme.jpg)](https://twitter.com/webdevcody/status/1737138310605083051)


See ya! 👋