# 33-js-concepts keeps its explanations on a website, not in the repository

> A curated index of 33 JavaScript concepts where the repository is a table of contents: every entry is a one-sentence summary plus a link to 33jsconcepts.com, and the actual teaching material lives in a Mintlify docs site. Useful as a syllabus, useless as a reference you can grep.

**leonardomso/33-js-concepts** — 33 JavaScript concepts every developer should know. Understand how to intercept object operations, create reactive systems, implement validation, and build powerful metaprogramming patterns.

- Repository: https://github.com/leonardomso/33-js-concepts
- Website: https://33jsconcepts.com/
- Stars: 66,535 · Forks: 9,127
- Language: JavaScript
- License: MIT
- Published: 2026-08-08 · Updated: 2026-08-18 · Language: en
- Canonical page: https://hysenlabs.com/projects/leonardomso-33-js-concepts

## Every concept in the README is a link out, not a lesson

The repository's entire contribution to your understanding is a sentence per concept and a URL. The Fundamentals group reads as a list of summaries, each one promising more than the line delivers: Primitive Types is described as covering JavaScript's 7 primitive types along with immutability, typeof quirks and autoboxing, and Primitives vs Objects promises an explanation of call-by-sharing semantics and how V8 actually stores values. None of that is in the file. The top-level entries confirm the shape: README.md, TRANSLATIONS.md, CONTRIBUTING.md, CODE_OF_CONDUCT.md, a docs/ directory, index.js, tests/, vitest.config.js and opencode.jsonc, with no per-concept source. So the repo is a table of contents with a marketing tone, and the consequence for a reader is immediate. You cannot grep it, you cannot read it offline, and the sentences will not tell you whether the explanation behind the link is any good.

## The curriculum's shape reveals what the author thinks JavaScript is hard

The grouping is the interesting part, because it is an argument about where difficulty lives even though nobody claims it is one. Fundamentals takes six slots on primitives, coercion, equality, scope and the call stack, which is a lot of budget on the parts of the language that surprise people rather than the parts they use daily. Web Platform then covers DOM, Fetch and Web Workers, and Object-Oriented JavaScript takes four, on factories versus classes, the 5 binding rules for this, the prototype chain, and inheritance. Async gets four of its own, moving from callbacks through Promises and async/await to generators, and Functional Programming gets five, on higher-order functions, purity, the map/reduce/filter trio, recursion, and currying with composition. A final Advanced Topics group covers JavaScript engines, and the manifest's keyword list reaches past the language into design patterns, data structures and algorithms, and names interview preparation as an intended use. The judgement embedded in that ordering is that the confusion is concentrated in coercion, in this, in prototypes and in async ordering, where the Promises entry is explicitly framed around why Promises were invented in the first place, as an answer to callback hell. If your team is weak somewhere else, say TypeScript's structural typing or bundler resolution, this list will not notice it, which is the limit of a fixed list of 33.

## The docs site is Mintlify, and that is how you read the material

The content is built with Mintlify, and the manifest shows the two commands that drive it, both of which change into the docs directory first:

```bash
cd docs && npx mintlify dev
cd docs && npx mintlify build
```

This tells you something a README about JavaScript usually does not, which is that the teaching material has a build step and a rendering stack. Each concept page you land on from the README is generated from that directory, and the URL scheme follows the same slugs, so a concept called primitive-types becomes /concepts/primitive-types. The consequence is a hard dependency on a hosted site for the entire value of the project. There is no offline copy, no PDF, and no vendored text, and the repository's own description promises articles, videos and interactive code examples that are not present in the tree, so what you are reading is always the live site at whatever state its build is in.

## The tests run in jsdom, which is a simulated DOM

The development dependencies are vitest at 4.1.8, its coverage plugin, and jsdom at 27.4.0, with the scripts being vitest run, vitest in watch mode, and a coverage variant. The presence of jsdom is a fair signal about what the tests exercise, and it is worth being precise about the limit it implies. jsdom provides a simulated document so that DOM-shaped code can be exercised under Node, and it is a good tool for that. It is not a browser, which matters because three of the 33 concepts are about the DOM, the Fetch API and Web Workers, all of which behave differently once a real engine, a real network stack and a real scheduler are involved. So the test suite can protect the repository's own logic while telling you nothing about whether the browser behaviour it describes still matches current engines. The coverage script exists, vitest run --coverage against the v8 provider, which tells you the same thing from a different angle: coverage here measures a documentation repository's own scripts, not the correctness of the 33 explanations. For a reader, the useful conclusion is that this project's testing effort is aimed at keeping the site building, which is the right thing to test here, and should not be read as any claim that the JavaScript guidance is verified.

## There are no releases, and version 1.0.0 has never been tagged

The repository has no GitHub releases, and the manifest sits at version 1.0.0 with main pointing at index.js. That is a static documentation site rather than a consumable package, so there is nothing to install and no semver contract to rely on, which is fair. The consequence is that the usual questions have no answer. You cannot pin a version of the curriculum, you cannot diff two states of it, and you cannot say in a pull request that you are upgrading from a known baseline. The last push was 2026-09-10, so the repository is being touched, and the code of conduct, contributing guide and translations file all signal an active project. What is missing is any published release trail, so if you fork the curriculum for internal use, expect to track the upstream repository by commit rather than by version.

## GitHub's 2018 recognition is the only status claim, and it is eight years old

The README carries a banner saying the project was recognised by GitHub as one of the top open source projects of 2018. That is the only external endorsement anywhere in the repository, and it is a snapshot of a moment rather than a current measure. There is no user count, no contributor total, no download figure and no benchmark, and the absence is arguably a point in the project's favour, since a curriculum that sold itself on numbers would be quoting them. Still, the practical reading for someone deciding whether to trust this list is that its one credential is from 2018, that the last push was 2026-09-10, and that nothing in the repository measures whether the 33 concepts are still the 33 a working developer needs. Popularity in 2018 is not evidence about 2026.

## Translations and the agent config files show how the project is maintained

TRANSLATIONS.md is a tracked file rather than a translation platform, so the repository expects community help for other languages instead of managing localisation itself, and CODE_OF_CONDUCT.md sits alongside CONTRIBUTING.md as the project's governance surface. The tree also contains .claude/, .opencode/ and an opencode.jsonc, which are agent configuration directories checked into the repository rather than ignored. That is a small but telling signal about how AI tooling has entered the workflow of what is otherwise a hand-written curriculum. It also means part of the repository's content is configuration consumed by tools rather than prose read by people, so anyone auditing the project, or vendoring it internally, has to decide what to do with those directories as well as with the docs.

## Conclusion

Adopt this as a checklist, not a library. It earns its place when you are structuring an internal curriculum or checking whether a junior's gaps are in coercion, prototypes or the event loop, because the 33 headings are a ready-made syllabus with no opinions to argue with. Do not expect to learn from the repository: the lesson text is on a website, the repo carries no releases to pin, and the version in package.json has never been cut as a tag. Before adopting it, confirm the docs site is reachable from your network and decide whether a single-writer curriculum that GitHub recognised in 2018 is the authority you want behind your team's JavaScript baseline.

## FAQ

### What is 3 JS used for?

It is a curated index of 33 JavaScript concepts for developers, grouped into fundamentals, functions and execution, the web platform, object-oriented JavaScript, async, functional programming and advanced topics. Each entry gives a one-sentence summary and links to a full explanation hosted at 33jsconcepts.com rather than containing the lesson itself.

### How do I run the 33-js-concepts docs site locally?

The manifest defines two docs scripts, cd docs && npx mintlify dev for local development and cd docs && npx mintlify build for a production build. Both change into the docs directory first, and the site is built with Mintlify.

### Does 33-js-concepts ship as an npm package I can install?

Not meaningfully. The repository has no GitHub releases and the manifest version is 1.0.0 with main pointing at index.js, and its development dependencies are the test tooling plus jsdom. The value is the hosted documentation at 33jsconcepts.com rather than a consumable library.

### What does the repository actually contain, given that every concept is a link?

The tree holds README.md, TRANSLATIONS.md, CONTRIBUTING.md, CODE_OF_CONDUCT.md, LICENSE, a docs/ directory, index.js, tests/, vitest.config.js, opencode.jsonc and the agent config directories .claude/ and .opencode/. There are no per-concept source files, so the lesson text is not in the repository.

## Sources

- [Official documentation](https://33jsconcepts.com/)
- [Official README](https://github.com/leonardomso/33-js-concepts#readme)
- [Project repository](https://github.com/leonardomso/33-js-concepts)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/leonardomso-33-js-concepts
