Skip to Content

What is the React team?

What is the React team?

The React team is the group of engineers at Facebook who maintain and develop React, a popular open-source JavaScript library for building user interfaces. React was originally created in 2011 by Jordan Walke, a software engineer at Facebook.

How did React start?

In 2011, Facebook faced challenges in building and maintaining its complex user interfaces at scale. Its website consisted of dynamically generated HTML pages, which made the code difficult to maintain. Jordan Walke, a software engineer at Facebook, started building React to solve these problems.

Walke wanted a library that allowed Facebook engineers to build encapsulated components that managed their own state, could be composed to make complex UIs, and were rendered efficiently and consistently across platforms. This led to the creation of React’s component model and virtual DOM diffing algorithm.

The first React commit on GitHub was in May 2013. It was being used in Facebook’s News Feed in early 2013 and was open sourced at JSConf US in May 2013. The open source release allowed developers outside of Facebook to start building with React.

Who works on React?

The React team is part of Facebook’s Engineering organization. It consists of full-time engineers at Facebook as well as people from the open source community who contribute regularly.

Some of the key people involved with React include:

  • Jordan Walke – Created React at Facebook in 2011
  • Tom Occhino – Engineering manager for React at Facebook
  • Dan Abramov – Software engineer at Facebook, well known for Create React App starter kit and Redux library
  • Sophie Alpert – Engineering manager at Facebook, leads React Native team
  • Rachel Nabors – Former React documentation team lead
  • Sebastian Markbåge – Lead of React team at Facebook
  • Lin Clark – Part of React education team, creator of React DevTools Profiler

In addition to the core team at Facebook, hundreds of engineers across Facebook use React and contribute bug fixes and improvements. The React community on GitHub has over 2,000 contributors from companies like Netflix, Twitter, Airbnb, and more.

How is work on React coordinated?

The React team uses several channels to coordinate work on React:

  • GitHub – All React code changes and discussions happen via GitHub issues and pull requests.
  • Meeting notes – The team publishes weekly meeting notes summarizing high-level roadmap.
  • RFC process – Larger changes go through a Request for Comments (RFC) process with community input.
  • Blog – Release announcements, roadmaps, and other news are published on the React blog.
  • Twitter – Many team members tweet about React updates and changes.
  • Conferences – Team members speak about React at conferences and meetups.

By engaging widely with the community, the React team is able to gather feedback and address issues transparently. The processes they follow allow both Facebook engineers and the open source community to collaborate effectively.

What does the React team work on?

The React team maintains and develops the core React library. This includes a few major areas of focus:

  • New features – Adding support for new capabilities like hooks, Suspense for data fetching, etc.
  • Performance – Improving runtime performance and bundle size.
  • Bug fixes – Fixing regressions and other critical bugs.
  • Documentation – Keeping docs updated with new changes and easier to understand.
  • Tooling – Improving the React Developer Tools browser extensions.
  • Accessibility – Making React accessible for users of assistive technology.

They also work on related projects like React DOM, React Native, Relay, and Jest. The team aims to provide a consistent programming model across these projects.

For new features, the team goes through a proposal process to gather feedback and ensure the changes align with React’s philosophy. There is extensive work done on performance, reducing memory usage, and minimizing bundle size with each release.

How are decisions made?

The React team uses a consensus-based decision making process for major changes and new features. This involves:

  1. Discussion in GitHub issues to gauge initial reactions.
  2. Drafting a formal proposal with examples and use cases.
  3. Sending the proposal to the react-core-notes mailing list for feedback.
  4. Iterating on the design based on feedback.
  5. Eventually reaching consensus from the core team to accept the proposal.

Sometimes proposals get rejected if consensus cannot be reached. But this process allows major changes like hooks to gather input from the whole team and community.

For day-to-day bug fixes and improvements, the team uses a streamlined process. Simple pull requests get reviewed by a few team members before merging. Bigger changes go through the full proposal process.

By involving both Facebook engineers and community members in these processes, the React team is able to make technical decisions in the open that meet the needs of most users.

How is work prioritized?

The React team uses a few key principles to prioritize work:

  • Fix critical bugs and regressions first.
  • Keep React accessible to the broadest audience.
  • Enable new features that solve common problems.
  • Improve documentation and legibility of warnings/errors.
  • Optimize performance and bundle size.

Bugs that crash applications or introduce major regressions always get highest priority. The team aims to keep React itself accessible for the widest range of users. So changes that would prevent usage of React commonly get deferred.

For new features, the team looks at addressing common problems faced by a large number of developers. There is also a focus on keeping bundles small and performance fast to work well on mobile devices.

The React blog roadmap and RFC process provide visibility into upcoming priorities. But priorities can shift based on team bandwidth, severity of issues, and impact on the community.

How are releases managed?

React follows a regular release cadence with both major and minor versions:

  • Major versions – Every 6 months
  • Minor versions – Every 2 weeks
  • Patch releases – As needed for critical bugs

Major versions like 0.14, 0.15, 0.16 can contain breaking changes. Minor versions like 0.14.8, 0.14.9 are used for updates that are backwards compatible. Patch releases happen rarely to fix urgent bugs.

Releases go through extensive testing before publishing. The minor releases occur in a branch called “master”. Major versions get their own release branches like “0.14-stable”. Patch releases are done from these branches.

This predictable release cycle allows the community to steadily integrate updates from the React team. The extensive testing ensures stability of the platform for production usage.

How can I contribute?

As an open source project, React welcomes contributions from the community. There are a few ways you can get involved:

  • Proposing new features and enhancements
  • Fixing bugs and improving documentation
  • Improving developer tools like React DevTools
  • Organizing meetups and conferences
  • Teaching others how to use React

The GitHub issues page is a good place to start. You can filter issues labeled “good first issue” to find bugs and improvements you can work on.

Be sure to follow the contribution guidelines when sending pull requests. Core team members and community members review contributions regularly.

You can also join the reactjs Facebook group or subreddit to connect with the community and get help with React.

Does Facebook make money from React?

No, Facebook does not directly make money from React. It is an open source project licensed under the MIT license.

Facebook created React to solve internal problems building web applications. By open sourcing React, they allowed others to benefit from the technology as well.

There are several benefits Facebook gets from open sourcing React:

  • Better engineering recruiting
  • More contribution and feedback
  • Goodwill from the community
  • Promotion of Facebook brand

The reputation boost helps Facebook recruit talented engineers globally. The community also submits bug fixes and improvements back to React. But React itself is not a revenue-generating product.

Why was React open sourced?

There were a few key reasons Facebook decided to open source React in 2013:

  • React addressed core problems in web development – Managing state, optimizing updates, cross-browser consistency.
  • Could benefit community outside Facebook facing similar problems.
  • Engineering teams could collaborate better across stacks.
  • Open sourcing improves code quality with community feedback.
  • Allows React usage outside just Facebook products.

The React team saw the potential for React to help developers beyond just Facebook. And engineers across Facebook needed to work on shared components consistently.

Open sourcing allowed the community to help improve React. It also enabled expanding its usage across the web beyond just Facebook products.

Conclusion

The React team is the group of engineers at Facebook responsible for maintaining and developing React and related projects. React was created in 2011 by Jordan Walke to solve core challenges in building complex UIs at scale. It was open sourced in 2013 and is now one of the most popular JavaScript libraries.

The team coordinates work through GitHub issues, mailing lists, RFCs, and more. They make technical decisions transparently with input from the community. The release process follows a regular cadence focused on stability.

As an open source project, React welcomes contributions from anyone interested. There are many ways community members can get involved and help out.

While Facebook created and maintains React, it is not a revenue-generating product for them directly. By open sourcing React, Facebook aimed to help advance web development for everyone.