React team at Meta

React Compiler: Rust edition is coming soon. We've ported the majority of the passes using AI. When the initial port finishes we'll do some updates to get the code in a state we're happy to maintain, then extensive testing and look at performance. More to come soon
28
97
1,129
116,627
There are so many takes on the "give the agent a DAG of tasks" idea. But the reality is that task lists were always an attempt to impose order against fundamentally chaotic systems. You find the dependencies by doing tasks as often as you realize them in advance.
2
11
3,316
Feels like subconsciously trying to retain control — "sure maybe i won't code but i'll retain control of the tasks". I think we have to let go of code and low-level tasks, direct the architecture and goals.
1
7
2,699
A thing that you can do, when seeing a technical choice you disagree with: pause. Take a breath. Be curious. Ask yourself, "why might they have done that?". Ask the authors why they did that? What context do they have that you don't?
4
13
98
19,115
For example it is probably not surprising that I disagree with many of the choices made by every React alternative (duh?). But instead of immediately dismissing those choices and learning nothing, I take some time to understand their goals and constraints.
32
2,805
For compiler nerds: a writeup of the core inference rules and approach that React Compiler uses to decide which groups of instructions to memoize together. If something isn't clear let me know! github.com/facebook/react/bl…
6
43
362
31,917
Joe Savona retweeted
We're thrilled to announce that @sethwebster @shrutikapoor08 @en_JS @zmofei @lydiahallie @jherr @lunaleaps will be speaking at React Conf 2025!
24
45
442
67,517
The thing I loved about Create React App was that you could quickly install, hack on a single component, and quickly see changes. It was a great way to learn React. *All of the frameworks we recommend provide that exact experience*. Install, hack on the root component, iterate.
3
27
4,722
Call me old fashioned, but I believe that people convicted of violently attacking police officers belong in jail.
8
3,564
19rc1 is out with a new feature, sibling pre-rendering, that is the best of both behaviors. Amazing work by @acdlite and @sebmarkbage to implement this feature and @rickyfm, Jack Pope, and the rest of the team for verifying and rolling it out github.com/facebook/react/is…
Some thoughts on the suspense changes from 19 RC. Most important: our bad. We got this one wrong, and we heard and sincerely appreciate your feedback. We'll hold the 19 release until we find a good fix.
4
30
233
49,729
This is harder than it seems (always is) because of the size of our community & many ways people use React. We need to balance info overload while getting a diverse, representative set of feedback.
1
33
9,780
We also don't want to privilege established players at the expense of making it hard for new libraries/frameworks/educators/voices to emerge. Rushing into a fix could backfire and lead us down the wrong path.
2
40
8,853
So: we're working on changes to get feedback from y'all earlier. We're exploring a number of ideas including evolving our previous working groups and RFC process. We will definitely also re-evaluate canary to ensure that more developers can try out changes & new features earlier.
3
2
73
21,958
The result was that we didn't get the feedback until the 19 RC. Our changelog did call this out (could have called it out more prominently, to be fair), and that's how folks knew to test the behavior. Once we heard the feedback we quickly discussed, leading to where we are.
2
39
7,144
Stepping back: there are a few things going on here. We need to continue flushing out our story for client data fetching. But there are many great options in this space that support the render-as-you-fetch pattern: more important is getting feedback from the community earlier.
2
38
6,130
When using this pattern, it was inefficient to try to render other siblings of a suspended child, since we would have to show the fallback in either case. So for React 19 we changed to show the fallback right away, then render again once a child un-suspends.
2
37
7,545
Where things went wrong is the next step. We hoped that we'd get feedback via the canary release, which has included this change for many months. But during that time period we've also learned that the canary channel isn't easy enough to consume and few were testing with canary.
2
45
9,425
We extensively discussed the tradeoffs of this change. We knew it could regress in a specific scenario: apps with many lazy-fetching children in a single Suspense boundary. We thought this case was uncommon enough (wrong in hindsight). We decided to ship and get feedback.
2
38
6,472