JavaScript compiler that compiles ES2015+ code into backwards compatible JavaScript for older versions of browsers
Babel is a free and open-source JavaScript transcompiler that is mainly used to convert ECMAScript 2015+ (ES6+) code into backwards-compatible JavaScript code that can be run by older JavaScript engines. It allows … Wikipedia
Factsheet
Original author Sebastian McKenzie
Developer Contributors
Release September 28, 2014; 11 years ago (2014-09-28)
Original author Sebastian McKenzie
Developer Contributors
Release September 28, 2014; 11 years ago (2014-09-28)
🌐
Babel
babeljs.io
Babel
Babel 8.0.0 released!
🌐
Wikipedia
en.wikipedia.org β€Ί wiki β€Ί Babel_(transcompiler)
Babel (transcompiler) - Wikipedia
July 20, 2025 - Developers can use new JavaScript language features by using Babel to convert their source code into versions of JavaScript that a Web browser can process. Babel can also be used to compile TypeScript into JavaScript.
Discussions

Is Babel a compiler or transpiler?
I've been using Babel for a while now, and I've always been under the impression that Babel was a transpiler for converting my ES6 and ES7 JavaScript into ES5 JavaScript, as I was under the assumpt... More on stackoverflow.com
🌐 stackoverflow.com
Are there any cons to using Babel?
Modern browsers execute modern javascript faster than modern javascript transpiled to old standards. More on reddit.com
🌐 r/webdev
16
14
June 6, 2022
Why do we need `babel-compiler` in a bundle? - core - Meteor Forum
When running meteor build on a project I just created using meteor create, I end up with a node-js project with a size of 118mb - quite impressive for something clean. The biggest of those folders is programs/server/npm/node_modules/meteor/babel-compiler. I guess these are the npm packages ... More on forums.meteor.com
🌐 forums.meteor.com
1
10
February 3, 2020
Speedy Web Compiler – A Rust port of Babel and Closure Compiler
I actually like JS as a programming language for the web, I just don't like scripting languages in general for command line tools Β· JS is a universal binary format that tends to just work from my experience. You do occasionally run into issues if you're on an old node version, but other than ... More on news.ycombinator.com
🌐 news.ycombinator.com
125
382
December 24, 2018
🌐
GitHub
github.com β€Ί babel β€Ί babel
GitHub - babel/babel: 🐠 Babel is a compiler for writing next generation JavaScript.
May 27, 2026 - 🐠 Babel is a compiler for writing next generation JavaScript. - babel/babel
Author Β  babel
Top answer
1 of 4
65

The definitions of "transpiler" and "compiler" are blurry. Both of them do translate a program from one language to another language while keeping the behaviour.

We usually name it a "compiler" when it produces an executable binary. However, binary is just another language, which can be interpreted by a CPU. Every program is "executable" on the respective machine.

We usually name it a "compiler" when it produces a lower-level output than the input was, e.g. C to assembler. Or Java to Java bytecode. Or ES8 to ES5. Wait… is that really a different level?

We usually name it a "transpiler" when its output is on a similar level as the input, e.g. Python to JavaScript or the other way round. However, there always will be parts that use an abstraction available in one language that need to be "compiled" to a lower-level implementation in the other language.

So to answer your questions:

I believe a compiler is something very different from a transpiler.

No.

Is Babel a transpiler or a compiler, or perhaps offers both options?

Yes.

Or is the website's title 'Babel - The compiler for writing next generation JavaScript' simply incorrect?

No. That title focuses on next-generation features, i.e. higher-level abstractions that really need to be compiled into a very different output. Even though the output is still ordinary, mostly human-readable, JavaScript.

I am writing documentation relating to Babel, and I want to ensure my description is accurate

In that case, I'd use their own terminology from the official website. If you want to compare the tool to others, choose your own description.

2 of 4
18

Babel is a transpiler, which is a special type of compiler, so both terms are techincally correct. You may use either at your preference.

It's irrefutable that Babel is a source-to-source compiler (aka transpiler) since its source and target languages are both some flavor of JavaScript:

A source-to-source compiler, transcompiler or transpiler is a type of compiler that takes the source code of a program written in one programming language as its input and produces the equivalent source code in another programming language.

However, not everyone agrees that the distinction between the terms is helpful, so some people prefer simply, "compiler".

I personally like the distinction because, to me, it implies something about the difference in level of abstraction from machine langauge between the source (input) and target (output) languages. That is, typical "compilers" translate from higher-to-lower level languages, "decompilers" translate from lower-to-higher level languages, and "transpilers" translate between languages at similar levels of abstraction.

🌐
Medium
mohammadtaheri.medium.com β€Ί what-is-babel-and-how-does-it-work-2cd18311980d
What is Babel and How does it work? | by Mohammad Taheri | Medium
December 7, 2024 - Babel is a JavaScript to JavaScript compiler (More accurately it is a transpiler because a compiler has a different meaning).
🌐
GeeksforGeeks
geeksforgeeks.org β€Ί javascript β€Ί what-is-babel
What is Babel? - GeeksforGeeks
July 23, 2025 - Babel is a JavaScript compiler and toolchain designed to transform modern JavaScript code (ES2015+ and beyond) into a version that can run in older browsers or environments.
Find elsewhere
🌐
SourceForge
sourceforge.net β€Ί projects β€Ί babel.mirror
Babel download | SourceForge.net
June 27, 2026 - Babel is a toolchain that helps you write code in the latest version of JavaScript. It converts ECMAScript 2015+ code into a backwards compatible version of JavaScript that can be run by older JavaScript engines.
🌐
GeeksforGeeks
geeksforgeeks.org β€Ί reactjs β€Ί reactjs-babel-introduction
ReactJS Babel Introduction - GeeksforGeeks
ReactJS Babel is a JavaScript compiler that converts JSX and modern JavaScript syntax into browser-compatible code, allowing React applications to run across different environments.
Published Β  June 25, 2026
🌐
npm
npmjs.com β€Ί package β€Ί babel-plugin-react-compiler
babel-plugin-react-compiler - npm
October 7, 2025 - Babel plugin for React Compiler.. Latest version: 1.0.0, last published: 9 months ago. Start using babel-plugin-react-compiler in your project by running `npm i babel-plugin-react-compiler`. There are 97 other projects in the npm registry using babel-plugin-react-compiler.
      Β» npm install babel-plugin-react-compiler
    
Published Β  Oct 07, 2025
Version Β  1.0.0
🌐
Lenovo
lenovo.com β€Ί home
Babel JavaScript Compiler: Features, Plugins, Presets & Usage Guide | Lenovo US
Babel is a popular JavaScript compiler that enables developers to write modern JavaScript code while ensuring compatibility with older browsers or environments. It transforms ECMAScript code into a backward-compatible version that can run anywhere.
🌐
npm
npmjs.com β€Ί package β€Ί @babel β€Ί core
@babel/core - npm
May 25, 2026 - Babel compiler core.. Latest version: 8.0.1, last published: a month ago. Start using @babel/core in your project by running `npm i @babel/core`. There are 24154 other projects in the npm registry using @babel/core.
      Β» npm install @babel/core
    
Published Β  Jun 17, 2026
Version Β  8.0.1
🌐
Meteor
forums.meteor.com β€Ί core
Why do we need `babel-compiler` in a bundle? - core - Meteor Forum
February 3, 2020 - When running meteor build on a project I just created using meteor create, I end up with a node-js project with a size of 118mb - quite impressive for something clean. The biggest of those folders is programs/server/npm/node_modules/meteor/babel-compiler. I guess these are the npm packages ...
🌐
LogRocket
blog.logrocket.com β€Ί home β€Ί babel vs. typescript: choosing the right compiler for your project
Babel vs. TypeScript: Choosing the right compiler for your project - LogRocket Blog
June 4, 2024 - See how the two JavaScript compilers Babel and TypeScript compare through criteria such as performance, custom transformations, and more.
🌐
Medium
medium.com β€Ί geekculture β€Ί setting-up-babel-for-javascript-very-small-project-2c68800c4df3
Setting up Babel for JavaScript very small project | by Rodrigo Figueroa | Geek Culture | Medium
October 11, 2021 - Babel is a toolchain that is mainly used to convert ECMAScript 2015+ code into a backwards compatible version of JavaScript in current and older browsers or environments. Here are the main things Babel can do for you: In other words, it will ...
🌐
TypeScript
typescriptlang.org β€Ί docs β€Ί handbook β€Ί babel-with-typescript.html
TypeScript: Documentation - Using Babel with TypeScript
By using babel’s support for TypeScript, you get the ability to work with existing build pipelines and are more likely to have a faster JS emit time because Babel does not type check your code.
🌐
Hacker News
news.ycombinator.com β€Ί item
Speedy Web Compiler – A Rust port of Babel and Closure Compiler | Hacker News
December 24, 2018 - I actually like JS as a programming language for the web, I just don't like scripting languages in general for command line tools Β· JS is a universal binary format that tends to just work from my experience. You do occasionally run into issues if you're on an old node version, but other than ...
🌐
Storybook
storybook.js.org β€Ί docs β€Ί configure β€Ί integration β€Ί compilers
Compiler support | Storybook docs
Babel is a widely adopted JavaScript compiler providing a modular architecture and extensive plugin system to support a wide range of use cases, enabling access to the cutting-edge features of the tooling ecosystem.
🌐
DEV Community
dev.to β€Ί frontendbytes β€Ί understanding-babel-the-javascript-compiler-hip
Understanding Babel: The JavaScript Compiler - DEV Community
March 30, 2025 - Babel is a compiler (more accurately, a transpiler) that converts modern JavaScript (ES6+) into an older syntax that browsers can understand. It ensures backward compatibility by transforming modern code features like arrow functions, classes, ...