learn-javascript is a book you run locally, in nine languages
A book that teaches JavaScript 📗💻📖
At a glance
- What is it?
- Learn JavaScript is a beginner book about programming and JavaScript that is also a working piece of software, since the text lives in a GitBook-style source tree that you clone, install and serve. It is written with twenty chapters split into a fundamentals part, a browser programming part and a miscellaneous part, with exercises at the end of each section, and the same content is maintained in English, French, Nepali, Turkish, Chinese, German, Spanish, Indonesian and Tamil.
- Who is it for?
- learn-javascript is worth taking if you are learning JavaScript from scratch or teaching it, because the exercises at the end of every section and the worked examples make it usable as a course rather than a reference, and the translations mean it is not English only. It is the wrong tool for a developer who already writes JavaScript, since the book starts at the fundamentals and stops before most of what a working developer needs.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 50 days ago.
- What is it written in?
- Mainly HTML, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 21, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A book that is also a repository you can serve
The project's description is a book that teaches JavaScript, and the interesting part is that the book is the build output of a small application. The installation instructions are five steps, to clone the repository, move into the learn-javascript directory, install dependencies with yarn or npm install, run yarn start, and visit http://localhost:4000 for a preview. The repository root holds the content in language directories, en for English, fr for French, np for Nepali, tr for Turkish, cn for Chinese, de for German, es for Spanish, id for Indonesian and ta for Tamil, with a LANGS.md file that documents the supported languages, and the structure table in the README shows the shape of an English directory, with a _book directory for the compiled version of the contents and a _layouts directory for the rendering templates. That layout is the GitBook convention, which is what makes the project easy to read, easy to translate and easy to serve locally without a build service.
Twenty chapters in three movements
The structure of the content is described in the overview, and it is a sensible arc. The first part, the initial 14 chapters, covers the fundamental concepts of JavaScript, and the chapters are designed to build a strong foundation so that readers regardless of prior experience grasp the core principles of the language. The second part, the subsequent four chapters, moves into web browser programming with JavaScript, and the point the README makes is that this section is not only theoretical, it also covers real-world applications so the reader understands how JavaScript functions in the context of web development. The final two chapters are described as miscellaneous topics that are pivotal in mastering JavaScript. The audience is stated in the same place, ranging from novice learners taking their first steps into programming to developers who want to sharpen their JavaScript specifically, and each chapter includes exercises to reinforce the learning.
Two typographic conventions, and they carry the exercises
The book has a small set of typographic conventions, and they are the same conventions the exercises use. Text written in a monospaced font represents an element of a program, and that can be a self-contained fragment or a reference to part of a nearby program, so a reader always knows whether a piece of code is the whole program or an extract:
const numbers = [45, 4, 9, 16, 25];
let txt = "";
for (let x in numbers) {
txt += numbers[x];
}And when the expected output of a program is written, it comes after the program preceded by two slashes and a Result:
console.log(txt);
// Result: txt = '45491625'That second convention is what makes the exercises checkable, because a reader can run the program and compare the output with the stated result without a reference answer. The advice in the README is blunt about how to use the book, to read and write the code diligently without rushing through the examples, to attempt the exercises before checking the solutions, and to consider running the code in a JavaScript interpreter to make sure it works.
The exercises are the reason the book works
The inclusion of practical exercises at the end of each section is what the overview singles out, and the emphasis is on applying the acquired knowledge to reinforce the skills rather than on reading. The combination the README describes is theoretical explanations, real-world examples, and hands-on exercises, and it frames that combination as a well-rounded educational approach for beginners. The contributor note in the same section is worth quoting for its plainness, that by adding emojis and organizing the content you can make the text more engaging and visually appealing, which is an unusually direct instruction for a published book and a hint at who the writing is aimed at. The other support material is a Leanpub page for the Beginners Guide edition, so the book also exists as a paid format for readers who want it off the web, and the repository links a Twitter share button, a CodeTriage badge and an OpenSSF Best Practices badge, which is the standard set of badges for a project that expects pull requests.
The build is honkit, and the plugins are forked
The tooling is GitBook's successor, honkit, and the scripts in package.json are the whole of it, with start running honkit serve, build running honkit build, and pdf, epub and mobi for the three export formats, plus a commit script that runs commitizen with the conventional changelog config. The plugin list is where the customisation lives, and several entries point at forks rather than the published packages, including an ace-editor plugin, an in-topic table of contents, a sharing plugin, a sidebar advertisement plugin and the creative theme pinned to a specific commit, which are all under the author's own account. There is also a set of standard plugins doing real work, with the exercises plugin, the hints plugin, the chapter fold, the edit link, the favicon, the hide-published-with, the sitemap and the i18nsettings plugin for the language switching that the nine language directories need. The versions are pinned, with honkit at 4.0.4, and there is an override and a resolution for lodash, which is the usual way to silence a transitive advisory in a toolchain like this one.
Docker for the preview, and a Node version to be aware of
There is a Dockerfile and a docker-compose.yml, so the preview can be run without touching the host. The compose file has a single book service built from the Dockerfile, with the tty and restart flags, ports 4000 and 35729 published, the working directory mounted at /usr/src/app, a named volume for node_modules so the installed dependencies survive a rebuild, and the command npm start. The Dockerfile is on node:16, installs the dependencies with npm install, installs honkit globally at the pinned 4.0.4 and copies the source in. The 35729 port is the one GitBook and honkit use for the live reload socket, which is why it is published alongside the HTTP port, and the named volume for node_modules is the detail that makes the container usable for editing, since the host directory is mounted and the installed packages live in the volume rather than in your working tree. The Node 16 base image is worth noticing, since it is older than what a current Node install would be.
Two licence statements, and who this is for
There is a licence inconsistency worth flagging, and it is the kind of thing that only shows up when someone does the paperwork. The README badge and the repository LICENSE file state Apache 2.0, while the package.json in the same repository declares the package as CC-BY-SA-4.0, which is a different licence with a share-alike obligation. For a book that is copied and translated, the difference matters, so it is worth checking which one the project intends before you reuse the text. The rest of the state is healthy. The releases are numbered 1.8 from 2025-08-30, 1.9 from 2025-10-17 and 1.10 from 2026-01-01, and the last push to the repository was on 2026-09-03, so the book is still being worked on. The repository carries a code of conduct, a contributing guide, a Dockerfile, the book.json configuration, an assets directory, a books/ directory, a .gitbook/ directory and a .bookignore, which is the full set of files a GitBook project needs and nothing that suggests a larger application behind it.
Editorial conclusion
learn-javascript is worth taking if you are learning JavaScript from scratch or teaching it, because the exercises at the end of every section and the worked examples make it usable as a course rather than a reference, and the translations mean it is not English only. It is the wrong tool for a developer who already writes JavaScript, since the book starts at the fundamentals and stops before most of what a working developer needs. Before you adopt it, note the two licence statements, Apache 2.0 in the repository and CC-BY-SA 4.0 in the package metadata, and check the tooling age, since the Dockerfile is built on node 16 while the local preview expects a modern Node.
Frequently asked questions
How do I read the Learn JavaScript book?
Clone the repository, move into the learn-javascript directory, install dependencies with yarn or npm install, run yarn start and visit http://localhost:4000. The same content is served for several languages, with en for English and fr, np, tr, cn, de, es, id and ta for the others, and LANGS.md documents them.
How is the book structured?
In three parts. The first fourteen chapters cover the fundamental concepts of JavaScript, the next four cover web browser programming with JavaScript including real-world applications, and the final two cover miscellaneous topics. Each chapter includes exercises to reinforce the learning.
What does the book look like as a published edition?
The README links a Leanpub page for the Beginners Guide edition, so the book is also sold in that format. The repository itself is the source of the web version, built with honkit, the successor to GitBook, with the scripts for serving, building, and exporting to PDF, EPUB and MOBI.
What licence is the Learn JavaScript book under?
The repository README badge and the LICENSE file state Apache 2.0, while the package.json declares the package as CC-BY-SA-4.0, so the two statements in the repository differ and are worth checking before you reuse or translate the text. The project is maintained by Suman Kunwar and the last push was on 2026-09-03.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/sumn2u-learn-javascript)Was this useful?