Open-source project
nao-sabemos-js/You-Dont-Know-JS avatar
nao-sabemos-js/You-Dont-Know-JS

You Don't Know JS in Portuguese: The Complete PT-BR Translation of Kyle Simpson's Book Series

📗📒 (PT-Br translation) JS Book Series.

5,852 stars848 forksJavaScriptNOASSERTION

At a glance

What is it?
nao-sabemos-js/You-Dont-Know-JS is a community-maintained, author-authorized Portuguese-Brazilian translation of Kyle Simpson's six-book You Don't Know JS series, covering the first edition in its entirety and free to read directly on GitHub.
Who is it for?
This repository is the right resource for Portuguese-speaking JavaScript developers who want to study the foundational mechanisms of the language through the first edition of You Don't Know JS without reading in English. It is not a substitute for the second edition, which Kyle Simpson published separately under the title 'You Don't Know JS Yet' and which covers ES2015 and beyond with updated content.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 107 days ago.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What This Repository Is and Who It Is For

This repository is a volunteer-run, author-authorized Portuguese-Brazilian translation of the You Don't Know JS book series by Kyle Simpson. Kyle Simpson granted translation rights, and the project was started by Cezar Augusto. The translation is non-commercial and intended solely for the Brazilian and Portuguese-speaking developer community.

The primary audience is Portuguese-speaking JavaScript developers who want to study the deeper mechanisms of JS, including scope, closures, prototype chains, asynchronous patterns, and ES6 features, without reading the English original. The books are free to read on GitHub; the English print editions are sold through O'Reilly.

The Six Books and What Each Covers

The first edition of the You Don't Know JS series consists of six books, all of which are fully translated in this repository:

1. Iniciando (Up & Going): An introduction to JavaScript fundamentals for developers new to the language. 2. Escopos & Closures (Scope & Closures): A detailed treatment of how JavaScript's scope chain works, including hoisting and closure behavior. 3. this & Prototipagem de Objetos (this & Object Prototypes): How the `this` keyword is bound, and how JavaScript's prototype-based inheritance actually works as opposed to class-based models. 4. Tipos & Gramática (Types & Grammar): JavaScript's type system including coercion, which is one of the most misunderstood aspects of the language. 5. Async & Performance: Callback patterns, promises, generators, and the event loop mechanics behind asynchronous JavaScript. 6. ES6 & Além (ES6 & Beyond): The features introduced in ES2015 and the trajectory of the language at that point.

The README notes that the first edition is now complete. The copyright statement in the README is dated 2013 to 2015, which reflects when Kyle Simpson originally wrote this edition.

Reading and Navigating the Repository

Each book has its own top-level directory in the repository:

- `up & going/` - `scope & closures/` - `this & object prototypes/` - `types & grammar/` - `async & performance/` - `es6 & beyond/`

Each directory contains a `README.md` with the book's translated table of contents and chapter links. Chapters are individual Markdown files. To start reading, clone the repository and open any chapter file in a Markdown viewer, or browse directly on GitHub.

bash
git clone https://github.com/nao-sabemos-js/You-Dont-Know-JS.git

There is no build step, no package to install, and no tooling required. The `WORDREFERENCE.md` file at the root defines translation conventions: specific English JS terms and how they are rendered in Portuguese throughout the series. Contributors are expected to follow these conventions to keep the text consistent.

License and Redistribution Restrictions

The content is licensed under Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported (CC BY-NC-ND 3.0). All rights are reserved to Kyle Simpson and O'Reilly. The README states explicitly that the content cannot be made available outside GitHub under any form, including sale or redistribution.

The ND (NoDerivs) clause means that contributors may not create derivative works; only direct translation of the original text is permitted. The NC (NonCommercial) clause prohibits any commercial use. These constraints are tighter than the MIT or Apache-2.0 licenses common in software repositories. Anyone building a tutorial website, an educational product, or an offline PDF distribution must obtain separate permission from Kyle Simpson and O'Reilly.

Limitations: First Edition Only, No Exercises, No Tests

This translation covers only the first edition of the series. Kyle Simpson published a substantially revised second edition, titled 'You Don't Know JS Yet', beginning around 2020. That second edition has updated content, new chapters, and different organization. This repository does not track or translate the second edition.

The repository also contains no exercises, quizzes, or code execution environment. It is a reading resource only. Readers who want to test their understanding against exercises need to look elsewhere, such as the companion exercises on Frontend Masters or Kyle Simpson's other published materials.

Contribution activity reflects a translation project rather than an evolving software library. The last push to the repository was on 2026-06-15, which likely corresponds to a correction or minor update rather than new content, given that the first edition is described as complete.

Comparing with the Original English Repository

The original You Don't Know JS repository by Kyle Simpson (getify/You-Dont-Know-JS on GitHub) hosts the first edition content in English and now also contains early drafts of the second edition 'You Don't Know JS Yet'. The original repository has more activity, more open issues, and a wider community of contributors.

This PT-BR translation repository is narrower in scope: it focuses on preserving the first-edition translation and accepting corrections. Non-Portuguese readers will find no added value here over the original. For developers who are learning Portuguese and JavaScript simultaneously, this repository offers the text in a more accessible language, but it does not include any additional explanation, commentary, or annotation beyond what Kyle Simpson wrote.

Other language translations of You Don't Know JS exist as separate repositories. The nao-sabemos-js/You-Dont-Know-JS repository specifically covers PT-BR (Brazilian Portuguese), and the README clarifies that the translation was initiated by Cezar Augusto under explicit authorization from Kyle Simpson.

Contributing to the Translation

The repository accepts pull requests for translation corrections and improvements. The CONTRIBUTING.md file explains the process. Grammar improvements are mentioned as welcome in the README, though the author notes they are often caught in the normal publication process and are not the highest priority.

Any contributor who submits content grants Kyle Simpson a non-exclusive license for that contribution to be included in the series as he and O'Reilly see fit, per the terms stated in the README. The translation is entirely volunteer work; there is no compensation for contributors.

The `CONTRIBUTORS.md` file tracks acknowledgments for people who have contributed to the translation. The `.all-contributorsrc` file is the machine-readable version used by the all-contributors specification to generate the contributor table.

Editorial conclusion

This repository is the right resource for Portuguese-speaking JavaScript developers who want to study the foundational mechanisms of the language through the first edition of You Don't Know JS without reading in English. It is not a substitute for the second edition, which Kyle Simpson published separately under the title 'You Don't Know JS Yet' and which covers ES2015 and beyond with updated content. Readers who have already consumed the first edition in English will not find new content here. Before contributing, read `CONTRIBUTING.md` and `WORDREFERENCE.md`, which standardize translation terminology to keep the text consistent across chapters.

Frequently asked questions

What is the You Don't Know JS series?

You Don't Know JS is a six-book series by Kyle Simpson that covers the core mechanisms of JavaScript in depth: scopes and closures, the prototype system, the `this` keyword, type coercion, asynchronous patterns, and ES6 features. The first edition is available free on GitHub; the English print editions are published by O'Reilly.

Is this PT-BR translation of You Don't Know JS free to read?

Yes, the translated content is free to read on GitHub. The license is Creative Commons Attribution-NonCommercial-NoDerivs 3.0. This means it cannot be redistributed outside GitHub or sold in any form; all rights remain with Kyle Simpson and O'Reilly.

Does this repository include the second edition of You Don't Know JS Yet?

No. This repository translates only the first edition of the series, which the README states is complete. The second edition, titled 'You Don't Know JS Yet', is a separate publication by Kyle Simpson and is not covered here.

Official sources

  1. Issues
  2. nao-sabemos-js/You-Dont-Know-JS on GitHub
  3. Project website
  4. README
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.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/nao-sabemos-js-you-dont-know-js.svg)](https://hysenlabs.com/projects/nao-sabemos-js-you-dont-know-js)