π¨ #165: StyleX, CSS Hooks, PandaCSS, Tailwind, Redux, Astro, Next.js, Remix, Storybook, React-Native 0.73, State of React-Native, Skia text layouts, Expo EAS...
Salut Γ tous !
Cette semaine, j'ai trouvé l'actualité CSS particulièrement intéressante. StyleX, CSS Hooks, Panda, Tailwind, CSS4...
CotΓ© React-Native, le sondage State of RN est ouvert. Un nouveau mode "bridgeless" sera introduit dans la version 0.73 (qui vient juste de sortir lol).
2 confΓ©rences React arrivent Γ Paris dΓ©but 2024, on aura l'occasion d'en reparler!
π‘ Consulter cette newsletter sur Twitter - format visuel π¨

Pour me soutenir:
- π Recommande la newsletter! Γa m'aide vraiment beaucoup!
- πΈ Sponsorise la newsletter ou sponsorise-moi
- π§΅ Retweet le dernier thread Twitter
- π¨ RΓ©ponds Γ cet email
- π¬ Rejoins le chat Discord
Ne manque pas le prochain email !

πΈ Sponsorβ
In-App Subscriptions Made Easy
RevenueCat gives you everything you need to monetize, analyze, and grow your app business. Effortlessly control customer access and entitlements, manage data, and experiment with pricing. See why over 30,000 apps trust RevenueCat to power their in-app purchase infrastructure.

βοΈ Reactβ
La solution CSS-in-JS de Meta est enfin open-sourcΓ©e, aprΓ¨s de longues annΓ©es d'attente. Elle est utilisΓ©e sur des apps consΓ©quentes comme Facebook, Instagram ou WhatsApp. Elle n'est pas strictement couplΓ©e Γ React. Le CSS atomique va Γͺtre extrait au build, et il y a un lΓ©ger runtime pour concatΓ©ner les classes. Le support TypeScript est bien pensΓ©. L'API est minimaliste et repose principalement sur 2 fonctions create et props. Γ voir comment cette nouvelle solution se positionnera dans un Γ©cosystΓ¨me dΓ©jΓ assez concurrentiel face Γ Tailwind ou Panda.
Voir aussi:
- π₯ Jack Herrington - StyleX: Meta's Solution To CSS At Scale
- π₯ Theo T3 - Facebook Tried Tailwind, Then Built This Instead

Librairie CSS avec bindings React, qui propose un vΓ©ritable retour aux sources via les inline styles. Dans From CSS madness to CSS Hooks, l'auteur explique comment il utilise un trick CSS variables pour pouvoir supporter les features manquantes comme media-queries, pseudo-selectors...
Personnellement, j'ai toujours prΓ©fΓ©rΓ© la DX des inline styles, mais en pratique, cela est trop limitΓ© et pas toujours performant. Γ voir si cette innovation tiendra la route en pratique. En tout cas, elle suscite l'engouement de Mark Dalgleish (π¦ tweet). Adam Wathan n'aurait probablement pas créé Tailwind si les inline styles avaient un meilleur support (π¦ tweet).

- πΈ Developer Nation Survey - What's next for developers in 2024 and beyond? Take the survey and win prizes!
- π Remix RFC - Client Data (clientLoader, clientAction): de nouveaux exports devraient bientΓ΄t Γͺtre supportΓ©s par Remix, et faciliter la migration des apps React-Router vers Remix pour ceux qui le souhaitent
- π¦ Using TanStack React Query v5 + Router preview
- π How does xxx compare to Panda CSS: bonne prΓ©sentation de Panda CSS par son mainteneur, qui prΓ©sente aussi ses limites actuelles. Une solution CSS-in-JS moderne basΓ©e sur l'analyse statique et compatible Server Components. Il y a un lΓ©ger runtime JS, mais le CSS atomic reste extrait au build donc cela n'est pas un gros problΓ¨me.
- π Tailwind has a scalability problem. How can we solve that?: propose d'utiliser
cva(Class Variance Authority) pour rendre le code Tailwind plus digeste dans un contexte React. - π Guide to fast websites with Next.js: Tips for maximizing server speeds and minimizing client burden: guest-post sur le blog Vercel d'une agence qui explique les techniques Next.js utilisΓ©es pour obtenir de trΓ¨s bonnes performances.
- π Fastest Way of Passing State to JavaScript, Re-visited: les apps React/Redux basΓ©es sur SSR doivent envoyer le state cotΓ© client pour l'hydratation. Il existe plusieurs techniques plus ou moins performantes.
- π Keep Your Loader Data Fresh in Remix: montre comment appeler le hook
useRevalidatorquand la connection revient ou le tab reprend le focus. - π Build your own StorybookGPT: explique comment utiliser l'IA pour gΓ©nΓ©rer vos stories automatiquement.
- π Introducing React components for the Maps JavaScript API: Google sponsorise enfin officiellement le dΓ©veloppement d'une lib React pour Google Maps.
- π Slack - Building Custom Animations in the Workflow Builder: retour d'expΓ©rience de Slack sur l'implementation de features drag-and-drop avec
react-beautiful-dnd. - π How Relay Enables Optimal Data Fetching
- π TanStack Router β modern React for the rest of us
- π Handling HTML within React i18next translations
- π A minimal dependency-free translation system for Next.js
- π An Introduction To Full Stack Composability
- π¦ Redux Toolkit 2.0, Redux 5.0, React-Redux 9.0, Reselect 5.0, Redux-Thunk 3.0: grosse update synchronisΓ©e de tous les packages Redux avec des nouvelles features (
combineSlices), des amΓ©liorations de taille, performance, typing, et retrait des features deprecated. - π¦ Astro 4.0 - Dev Toolbar, i18n routing, Incremental Content Caching, View Transition APIs...
- π¦ Storybook 7.6 - switch to SWC, faster, react-docgen upgrade, controls improvement, doctor CLI...
- π¦ Remix Dev Tools 3.5 - Vite support
- π¦ Starlight 0.14 - Plugin API
- π¦ Jotai 2.6 - use
<Provider>in React Server Components - π₯ React Server Components Panel Discussion - React Summit US 2023
- π₯ Lee Robinson - Introduction to Next.js and React
Ne manque pas le prochain email !

πΈ Sponsorβ
Breakpoints and console.log is the past, time travel is the future
15x faster JavaScript debugging than with breakpoints and console.log.
Wallaby.js runs your tests immediately as you type, with runtime values, errors, and code coverage displayed in real-time right next to your code.
Designed specifically for testing, Wallaby features include a Time Travel Debugger, the ability to only run opened test files, and more.

π± React-Nativeβ
- π¦React Native 0.73 - Debugging Improvements, Stable Symlink Support, and more: Γ§a vient a peine de sortir, on en parle la semaine prochaine π
- π State of React Native 2023: le sondage React-Native revient pour la 2Γ¨me annΓ©e. Vos rΓ©ponses ont un impact, et vont permettre de prioriser les amΓ©liorations les plus demandΓ©es.
- π¦ "Inspect Element" in iOS Safari with ο£Ώ Actions and Expo Config Plugins
- π Expo Router docs - Migrate from Expo Webpack
- π¬ React-Native 0.73 - Introducing Bridgeless Mode: React-Native 0.73 propose un nouveau flag qui permet de ne plus du tout initialiser le bridge de l'ancienne architecture, qui restait utilisΓ© pour certaines features: error handling, event emitters, timers... Un "interop layer" devrait faciliter la transition, mais certains appels API doivent Γͺtre migrΓ©s manuellement.
- π¬ React-Native 0.74 - Will bump Android
minSdkto v6 (API 23) - π Shopify - Getting Started with React Native Skia: une bonne intro Γ React-Native-Skia, pourquoi l'utiliser, son intΓ©gration avec Reanimated, ses effets intΓ©grΓ©s, son support web...
- π How to change root view background color in React Native for iOS?
- π Expo EAS - Speed up your development workflow with Automatic GitHub builds
- π Expo EAS - Introducing Build Annotations
- π¦ React-Native-Skia - Text layouts / Paragraph support
- π¦ React-Native-VisionOS: maintenant disponible sur npm (π¦ demo)
- ποΈ React Native Radio 281 - Real Life React Native : Benedikt MΓΌller of Share My Stack

π«π· En franΓ§aisβ
π‘Tu peux m'envoyer ton contenu: sebastien@thisweekinreact.com !

π Autreβ
- π§΅ Evan You about "bundle-less doesn't scale" discussions
- π Updates from the 99th TC39 meeting - Array Grouping stage 4, Promise.withResolvers stage 4
- π Prettier's CLI: A Performance Deep Dive
- π Biome formatter wins the Prettier challenge
- π Letβs learn how modern JavaScript frameworks work by building one
- π Web Components Eliminate JavaScript Framework Lock-in
- π Track Frontend JavaScript exceptions with Playwright fixtures
- π¦ XState 5.0 - Everything is an actor
- π¦ Fresh 1.6 - Tailwind CSS plugin, simplified typings and more
- π¦ Vitest 1.0
- π¦ Hono 3.11 - Error Boundary
- π₯ CSS4 Is Coming

π€ Funβ
A plus π
Ne manque pas le prochain email !








