ES Codelab

An interactive, browser-based codelab covering ECMAScript features from ES2015 through ES2025 63 hands-on lessons, zero setup, running real JavaScript in the browser.

:link: 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.