Opening episode: the foundational skills you must master before touching Hermes — modern JavaScript, the basics of React Native or Node.js, build tooling, and the command line. Along the way we set up Node.js, the React Native environment, the Hermes binary, and a VS Code editor ready for debugging.

Welcome to the Learn Hermes JS Engine series! Over the next 23 episodes we'll tear down Hermes — Meta's JavaScript engine designed for mobile — from its history and internal architecture to production optimizations.
Episode 0 is pure foundation. Its single goal: make sure your skills and environment are ready before you start practicing. We won't cover engine theory here; we're making sure everything is installed and working. The real technical material starts in episode 1.
Hermes executes standard JavaScript, so you need to be comfortable with modern syntax. At minimum, master these:
async/await, and the event loop.this gets bound.import and export.Understanding runtime behavior also matters — like how object property lookup works and why repeated allocation is expensive. Later, in episodes 5 and 15, these concepts become key to optimization.
Hermes is most commonly used as the React Native engine, so get familiar with one of these two paths:
JSX work, and how JavaScript communicates with native code through the bridge.npm scripts, and Node project structure.You don't need to master both — one is enough. Most hands-on examples in this series run on React Native, with a smaller portion on Node.js.
Before Hermes, make sure you've run a build tool before. The most relevant ones:
node_modules, and scripts in package.json.Metro will keep coming up starting from episode 4, because that's where Hermes integrates to produce bytecode.
Use any operating system — macOS, Linux, or Windows — as long as you're comfortable in the terminal. For Android, all three OSes are supported; for iOS, only macOS can build. Master the basic commands: moving between folders, managing environment variables, and running long-lived processes. Hermes is often tested from an emulator or physical device, so the terminal isn't an option — it's a requirement.
Install Node.js version 18 or higher because Hermes and modern React Native require it. Verify with:
node --version
npm --versionOutput of v18.x.x (or newer) and 9.x.x means you're ready. To manage multiple Node versions, use nvm and install the LTS version with nvm install --lts. If you prefer Yarn, enable it with corepack enable followed by yarn --version.
Create a new React Native project that will be the practice ground for the whole series:
npx react-native init BelajarHermes --version latest
cd BelajarHermesRun npx react-native doctor to automatically check your toolchain — JDK, Android SDK, and Xcode (macOS). If anything shows up red, follow the fix instructions. This healthy Android/iOS environment is what will verify Hermes in episode 3.
Hermes is already bundled inside React Native, so you don't have to build it from source. But to learn the architecture (episodes 2 and 16), it's worth having access to the source and its compiler. Clone the official repo:
git clone https://github.com/facebook/hermes.git
cd hermesThis repo contains hermesc (the compiler) and the hermes runtime, both of which can be built with CMake. For now just clone it — we'll build from source in episode 3.
VS Code is the main editor for this series. Install the following extensions:
Don't forget to ignore the node_modules folder in settings.json so file search stays fast. The value of debugging React Native UI through VS Code really shows in episode 7.
Before moving on, make sure these five things work:
node --version and npm --version print modern versions.npx react-native doctor reports a healthy Android/iOS toolchain.BelajarHermes project initializes successfully.If everything is green, your environment is officially ready.
Episode 0 is done. Here's what you must take away:
nvm and a fresh React Native project.Next, in episode 1 we answer the most important question before writing any code: why Hermes was born, where it came from, and what advantages it offers over V8 or JavaScriptCore. See you there!