Last week, Facebook launched Create React App, a new project that helps React
developers get started with their new projects. Turns out, that was only part
of the story. Create React App was also the first project to enter the Facebook
Incubator on GitHub.
The Facebook Incubator is the company’s new
process for releasing open-source
projects and ensuring
that they do well in the long run. The best way to think of it is as a beta
stage or proving ground for new open source projects from Facebook.
As Facebook’s head of open source James Pearce told
me, the idea here is to better manage the life cycle of these projects. He
notes that Facebook has now open-sourced almost 400 projects and has hundreds
of thousands of followers on GitHub. “We want to make sure we are managing this
program at scale in the most effective way we can,” he said. To do that,
Facebook decided that it would push most new projects through this program
first to see how the community reacts to them and what the adoption
is like.
Pearce
stressed that all of the projects in the Incubator — just like in Facebook’s top-level repository —
are projects the company also uses internally and that have teams actively
working on them. You shouldn’t think of projects in the Incubator as a
repository for weaker projects, he noted.
To graduate
from the Incubator, projects will of course have to demonstrate traction in the
community, but Pearce told me that the company will also look at other
surrounding aspects. Is the project being used by others? Does it have good
documentation? How hard is it to integrate the project with other tools? How
engaged can Facebook be with the community?
“If we see
there is resonance in the industry, it’s a good sign that it’ll graduate,” he
said.
Pearce did stress documentation is an important
factor at various times during our conversation, and that’s definitely an
aspect of open source that is often neglected. He told me that Facebook
has a dedicated team of tech writers who work on this for its projects (with
engineers helping out as well) and that the company is also looking at the new Stack Overflow Documentation service for potentially hosting some of its
documentation projects, as well.
While the
Incubator is clearly meant to help get projects started on the right foot,
Pearce argued that it’s not just about optimizing for the launch and growth
phases but also about managing the life cycle of a project in the long
run.
Not every
project turns out to be a success, after all, and occasionally Facebook
ends up sunsetting some of the tools it open-sourced. That will still happen
now that the Incubator system is in place, but the team obviously hopes it will
be able to correct some of the issues with a project before it moves to the
main repository.
Pearce told
me that Create React App is a good example for a project in the Incubator
because Facebook wasn’t sure what the community would think about it, but
he also noted that there will still be some projects that will skip the
Incubator project.
“Had we
launched React Native now, we probably would’ve skipped the Incubator,” he
said. The same goes for projects that Facebook is donating to larger
organizations like the Open Compute Project.
Pearce
tells me that the Incubator isn’t going through its own incubation phase (“that’s
too meta for me”), so we can probably expect this new system of releasing
open-source software from Facebook to stay in place for the foreseeable future.
For More Updates Log-on to Spokes Technologies