An interactive, browser-based codelab covering ECMAScript features from ES2015 through ES2025 63 hands-on lessons, zero setup, running real JavaScript in the browser.
Live demo: eslabs.web.app
Motivation
The ECMAScript specification is comprehensive but dense. Newcomers and even experienced developers often struggle to discover and internalize new language features across releases. There is currently no official interactive learning resource maintained by or endorsed by TC39.
An interactive codelab could serve as:
- A learning companion to the spec β each feature gets a runnable example, an exercise, and a solution
- A discovery tool β developers can browse features by ES version (ES2015βES2025) and try them immediately
- A bridge between proposals and adoption β making it easier for the community to understand what landed and how to use it
What ESLabs covers
| Version | Lessons | Highlights |
|---|---|---|
| ES2025 | 4 | Set Methods, Iterator Helpers, Promise.try, RegExp Modifiers |
| ES2024 | 4 | Object.groupBy, Promise.withResolvers, RegExp v-flag |
| ES2023 | 4 | findFromLast, Immutable Array methods, Hashbang |
| ES2022 | 5 | Class Fields, .at(), structuredClone, Top-level await |
| ES2021 | 4 | Logical Assignment, replaceAll, Promise.any |
| ES2020 | 5 | Optional Chaining, Nullish Coalescing, BigInt |
| ES2019 | 4 | flat/flatMap, Object.fromEntries, trimStart/End |
| ES2018 | 3 | Object Rest/Spread, Async Iteration, Promise.finally |
| ES2017 | 3 | async/await, Object.entries/values, padStart/End |
| ES2016 | 2 | Array.includes, Exponentiation |
| ES2015 | 25 | let/const, Arrow Functions, Classes, Promises, Generators, Proxy, Reflect, and more |
Technical details
- Pure client-side (HTML + vanilla JS + Monaco Editor)
- Sandboxed execution via
new Function()with console interception - No build step, no framework dependencies
- Web Components architecture (
<es-codelab>,<es-sidebar>, etc.) - Exercise validation with expected output matching
Ask
Would TC39 be interested in hosting or endorsing an interactive codelab as an official community resource? Happy to collaborate on aligning content with the spec, adding new features as proposals advance, and maintaining it under the TC39 org if there is interest.
Disclaimer: ESLabs is an independent community project by Hemanth HM and is not currently affiliated with TC39 or Ecma International.