Compiler · Aug 10, 2020

BuckleScript is Rebranding

A new unified brand name for the BuckleScript platform
ReScript Team
Core Development

Important: This is an archived blog post, kept for historic reasons. Please note that this information might be terribly outdated.

Refactoring our Brand

We're pleased to announce that BuckleScript is getting a brand new name: ReScript.

BuckleScript started with the idea that programmers deserve a great typed language that compiles to fast and readable JavaScript. This idea took root and, over the years, we've gradually started tackling the surrounding challenges, such as:

  • a fast and reliable build system much needed in front-end development,

  • various JS interop features that spawned an ecosystem of well typed libraries,

  • a production-ready standard library,

  • and recently, a fresh, solid syntax.

These developments have attracted many people into our community. But one bigger challenge persisted: newcomers dropped out at the sheer amount of extra incongruent tools and learning overhead from having to understand OCaml concepts, Reason concepts, and BuckleScript's own concepts. Take, for example, what's required to make a ReasonReact app:

  • Knowledge of React.

  • Knowledge of JS.

  • Knowledge of ReasonReact's specific idioms (that we've tried hard to keep to a minimum).

  • Knowledge of OCaml idioms, on top of which BuckleScript is built.

  • Knowledge of BuckleScript's JS interop and the build system.

  • Knowledge of the Reason syntax.

Ironically, the more documentation we pile up, the more mental overhead newcomers suffered. During the various BuckleScript & Reason meetups, we've frequently seen folks' enthusiasm crushed at the sheer prospect of making a web app while keeping 5+ tabs' worth of documentations open. This was discouraging, both for said eager developers and for us maintainers.

The adoption barrier is real, and it's about time we finally solve it.

Today, we'll start to truly unify the various BuckleScript-related projects under a single name: ReScript. This includes:

  • The compiler, the build system and the syntax unified and shipping under a single install. Likewise for future efforts such as editor plugin.

  • A single documentation site which covers the above:

  • Streamlined communication through said website, a new dedicated forum and a new Twitter account.

  • The renaming of various tools, always in a backward-compatible way.

In short, all JS-related tools are now called ReScript. Previously, due to the messy situation, most real-world BuckleScript adoption came from a few heroic community members suffering through the technical and social risk of spreading our tech to their coworkers. From today onward, you can simply tell to your coworkers: "this is ReScript", and point to them a clear starting point instead of sending them to various incompatible sources, with a risk of losing goodwill and credibility.

It's worth emphasizing that while this rebranding seems to be very disruptive, in reality it's mostly a bunch of name changes for the same tech. To reiterate our stance on existing userland code:

  • Please read our previous post on backward compatibility with pure OCaml & Reason syntax.

  • The current Reason website will keep existing, with proper redirects to our new one when relevant. Existing Reason-to-JS users' code keep working, as per above post. Reason itself will continue tackling the parts BuckleScript didn't tackle before, such as native.

  • The various BuckleScript binaries will keep working. Instead of renaming those, we'd create new binaries instead.

  • The BuckleScript docs will redirect to the new site without breaking links.

Thank you for your support and keep shipping. A brighter future awaits us!

Stay safe,

The ReScript team (Hongbo, Cheng, Cristiano, Maxim, Patrick, Ricky).

Want to read more?
Back to Overview