HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
reactjs
rfcs
Web Development2018–2024
reactjs / rfcs

rfcs

RFCs for changes to React

31Distinct people
45Mentions
1Explicit recommenders
5.8KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

RFCs for changes to React

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

I imagine most of them could be, but this is an API which would require a lot of additions to the existing React.Component API, and would end up duplicating a bunch of…

rimunroe used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 7:02:50 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year45 dated mentions

Observed mentions: 2018-03-28 01:47:03 UTC to 2024-02-27 13:07:58 UTC.

0510152018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 11 mentions; 0 submissions, 11 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 14 mentions; 2 submissions, 12 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments20212022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 11 mentions; 9 submissions, 2 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2024

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC11011
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC202
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC14212
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC000
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC1192
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC606
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC101

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
React RFCs Many changes, including bug fixes and documentation improvements can be implemented and reviewed via the normal GitHub pull request workflow. Some changes though are "substantial", and we ask that these be put through a bit of a design process and produce a consensus among the React core team. The "RFC" (request for comments) process is intended to provide a consistent and controlled path for new features to enter the project. Active RFC List Contributor License Agreement (CLA) In order to accept your pull request, we need you to submit a CLA. You only need to do this once, so if you've done this for another Facebook open source project, you're good to go. If you are submitting a pull request for the first time, just let us know that you have completed the CLA and we can cross-check with your GitHub username. Complete your CLA here. When to follow this process You should consider using this process if you intend to make "substantial" changes to React or its documentation. Some examples that would benefit from an RFC are: A new feature that creates new API surface area, and would require a feature flag if introduced. The removal of features that already shipped as part of the release channel. The introduction of new idiomatic usage or conventions, even if they do not include code changes to React itself. Some changes do not require an RFC: Rephrasing, reorganizing or refactoring Addition or removal of warnings Additions that strictly improve objective, numerical quality criteria (speedup, better browser support) Additions only likely to be noticed by other implementors-of-React, invisible to users-of-React. What to expect It is hard to write an RFC that would get accepted. Nevertheless, this shouldn't discourage you from writing one. React has a very limited API surface area, and each feature needs to work seamlessly with all other features. Even among the team members who work on React full time every day, ramping up and gaining enough context to write a good RFC takes more than a year. In practice, React RFCs serve two purposes: React Team RFCs are submitted by React Team members after extensive (sometimes, multi-month or multi-year) design, discussion, and experimentation. In practice, they comprise the majority of the RFCs that got merged so far. The purpose of these RFCs is to preview the design for the community and to provide an opportunity for feedback. We read every comment on the RFCs we publish, respond to questions, and sometimes incorporate the feedback into the proposal. Since our time is limited, we don't tend to write an RFC for a React feature unless we're very confident that it fits the design. Although it might look like most React Team RFCs easily get accepted, in practice it's because 98% of ideas were left on the cutting room floor. The remaining 2% that we feel very confident and have team consensus on about are the ones that we announce as RFCs for community feedback. Community RFCs can be submitted by anyone. In practice, most community RFCs do not get merged. The most common reasons we reject an RFC is that it has significant design gaps or flaws, does not work cohesively with all the other features, or does not fall into our view of the scope of React. However, getting merged is not the only success criteria for an RFC. Even when the API design does not match the direction we'd like to take, we find RFC discussions very valuable for research and inspiration. We don't always review community RFCs in a timely manner, but whenever we start work on a related area, we check the RFCs in that area, and review the use cases and concerns that the community members have posted. When you send an RFC, your primary goal should not be necessarily to get it merged into React as is, but to generate a rich discussion with the community members. If your proposal later becomes accepted, that's great. But even if it doesn't, it won't be in vain. The resulting discussion often informs the next proposal in the same problem space, whether it comes from the community or from the React Team. Many library authors are reading the discussions, so RFCs often lead to community experimentation and userland solutions. We apply the same level of rigour both to React Team RFCs and Community RFCs. The primary difference between them is in the design phase: React Team RFCs tend to be submitted at the end of the design process whereas the Community RFCs tend to be submitted at the beginning as a way to kickstart it. What the process is In short, to get a major feature added to React, one usually first gets the RFC merged into the RFC repo as a markdown file. At that point the RFC is 'active' and may be implemented with the goal of eventual inclusion into React. Fork the RFC repo http://github.com/reactjs/rfcs Copy 0000-template.md to text/0000-my-feature.md (where 'my-feature' is descriptive. Don't assign an RFC number yet). Fill in the RFC. Put care into the details: RFCs that do not present convincing motivation, demonstrate understanding of the impact of the design, or are disingenuous about the drawbacks or alternatives tend to be poorly-received. Submit a pull request. As a pull request the RFC will receive design feedback from the larger community, and the author should be prepared to revise it in response. Build consensus and integrate feedback. RFCs that have broad support are much more likely to make progress than those that don't receive any comments. Eventually, the team will decide whether the RFC is a candidate for inclusion in React. Note that a team review may take a long time, and we suggest that you ask members of the community to review it first. RFCs that are candidates for inclusion in React will enter a "final comment period" lasting 3 calendar days. The beginning of this period will be signaled with a comment and tag on the RFCs pull request. An RFC can be modified based upon feedback from the team and community. Significant modifications may trigger a ne
Read the full README on GitHub

What Hacker News says

6 sources
rimunroe·Mar 18, 2023Recommendation phrase
I imagine most of them could be, but this is an API which would require a lot of additions to the existing React.Component API, and would end up duplicating a bunch of already-existing functionality for something which in the end would probably need to conform to the same rules hooks do, but with what certainly feel to me like clunkier ergonomics. You'd also still be left with the problems of class components like poor minifiability and unreliability for hot module replacement. I have to go to bed, but if you'd like to see a much better explanation about why hooks were adopted, I highly recommend the [checks notes] 1,401 comment-long discussion[1] on the PR for adopting the hooks RFC back in 2018, as this sort of design was brought up frequently. Especially worthwhile is Sebastian Markbåge's ending summary about why the team was going wit
Read the rest
In Introducing react.dev
>Conceptually, a component seems better represented by an object/class than a procedure/function. In other paradigms, it is! Our paradigm is exploring the functional take. I agree it's a bit unorthodox but we are very intentional about modeling it that way. It really has a bunch of powerful properties one might not expect. >And aren't classes just really functions under the hood anyways? The key difference is that in React, UI is a pure projection of current data (props/state). You're always supposed to "return" the UI. Sure a class is a function, but that function is invoked once. Its methods can be called many times, but having a pure render() method (like in class-based React) is really a class cosplaying as a function. Functions are more honest to what React is trying to be. Relevant part from Seb's Hooks RFC comment (https://github.c
Read the rest
om/reactjs/rfcs/pull/68#issuecomment-4393148...): > Classes may seem like the ideal thing to hold state since that's what they're designed for. However, React is more written like a declarative function that keeps getting executed over and over to simulate it being reactive. Those two things have an impedence mismatch and that keeps leaking when we think of these as classes. >Another issue is that classes in JS merge both methods and values on the same namespace. This makes it very hard to make optimizations because sometimes methods behave like static methods and sometimes behave like values that contain functions. The Hooks pattern encourages the use of more statically resolvable calls for helper functions. >In classes, each method has its own scope. It causes issues like us having to reinvent default props so that we can create a single shared resolved object across those. You also encourage sharing data between those methods using mutable fields on the class since the only shared thing is this. This is also problematic for concurrency. >Another issue is just that the conceptual mental model for React is just functions calling other functions recursively. There is a lot of value to express it in those terms to help build the correct mental model. For a concrete example of where classes as a model fails us, consider useTransition (https://react.dev/reference/react/useTransition). It lets you start rendering "in background" with a different state value. But if you get interrupted, the renders have the current value. This highlights that in React, the same piece of state can conceptually be thought of having more than a single value (kind of like being in parallel worlds). Classes don't model that well.
In Introducing react.dev

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.