MentorHenry Zhu (hzoo)
Project Website
Project Repository
Suitable for Beginners?no
TagsJS JavaScript ES6 AST Compilers Babel Transpilers Minifier
Applications (1st Choice)2
Applications (2nd Choice)1
Code of Conduct
LicenseMIT license (MIT)

Project Description

Babel is a community-driven tool that helps you write the latest version of JavaScript (used at Facebook, Google, Netflix, etc). More users here.

When your supported environments don't support certain features natively, it will help you compile it down to a supported version.

In short, developers want to take advantage of the latest features/syntax in JavaScript. Because the version of JavaScript depends on the client's browser, we can't rely on the fact they are using an up to date browser. Babel is a tool that helps compile the version of JavaScript a developer writes in to the least common denominator version of the browsers a site supports.

For example: if you support an older browser such as Internet Explorer 9, it won't have any of the features in ECMAScript 2016 (ES6), so Babel will transform your code into ES5 which is supported.

Project's Requirements

  • You'll want to have knowledge of JavaScript since Babel is a Node project and is a tool about transforming JavaScript into JavaScript.
  • You want to know some ES6+ (you can learn it on the fly).
  • It would be useful to have some knowledge of compilers/ASTs.
  • It would be super helpful if you've already used Babel on a project or through another tool.
  • Having a Github account and knowing how to make pull requests helps (but we can guide you through everything)

FYI: I didn't know any of this when I started but I've had the last 1-2 years to learn as I went!

You can reach out to me on twitter or on our slack under the username @hzoo

EDIT: I created a slack channel called #summer-of-code as well to discuss!

I'm based in NYC (so EST) so having a similar timezone is nice, but other mentors cab be around the world so it's not a big deal.

Tasks And Features

There are plenty of issues/bugs/etc to go through as well as plently of stuff to work on for our docs/website.

For long lasting and important tasks:

All the Future Stuff described in The State of Babel blog post such as:
- babel-init command to setup a project
- babel --settings/--debug
- Helping implement various proposals like null prop operator, private fields, decorators.
- Refactor: Moving out parser plugins into separate files
- Writing out codemods for all the plugins (or help convert to babel preset)
- code optimizations in our output
- better smoke test infrastructure
- improvements to development/publishing with lerna
- improve babel-bot for easier maintenance
- various spec compliancy fixes


You must be logged in to comment on this project.

Laura RGSoC, Wednesday, February 1, 16:46 UTC

Hey Henry, we think this would be a great project for RGSoC. I'm happy to accept your proposal! ✨