Open-source project
Asabeneh/30-Days-Of-JavaScript avatar
Asabeneh/30-Days-Of-JavaScript

Asabeneh/30-Days-Of-JavaScript: a Markdown curriculum, not a course platform

30 days of JavaScript programming challenge is a step-by-step guide to learn JavaScript programming language in 30 days. This challenge may take more than 100 days, please just follow your own pace. These videos may help too: https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw

46,847 stars10,457 forksJavaScriptLicense varies

At a glance

What is it?
The repository is thirty folders of lesson text plus mini projects, with translations into ten other languages and no build step. It suits self-directed beginners who want reading and exercises; it does not suit anyone expecting graded feedback or a maintained framework.
Who is it for?
Adopt it if you are a self-directed beginner who will actually open the day folders and do the exercises, or a teacher who wants Markdown lesson text to adapt. Do not adopt it if you need graded feedback, a certificate, or a single stable PDF, because the repository ships none of those and the README only points to the day files and the author's video channel.
Can I use it commercially?
Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
Is it still maintained?
Yes. The repository last received commits 33 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 27, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What 30 Days Of JavaScript actually is, and who it is for

This is a curriculum stored as Markdown files in a Git repository. The README is a table of contents: thirty rows, each linking to a folder such as 02_Day_Data_types or 21_Day_DOM. There is no application to run, no package to install, and no service behind it. The deliverable is reading material plus exercises.

The README states the pacing directly: the challenge "may take more than 100 days, please just follow your own pace." That sentence matters more than the title. The thirty-day framing is a schedule suggestion, not a constraint the material enforces.

The audience is someone starting from zero who wants a single ordered path through the language. The sequence is deliberate: data types, booleans and operators, conditionals, arrays, loops, functions, objects, then higher order functions, sets and maps, destructuring, regular expressions, console methods, error handling, classes, JSON, web storages, promises, closures, clean code, DOM, event listeners, and finally seven project days. Nothing before day 21 touches the browser DOM, which is a defensible choice for a language-first course and a frustrating one if you came to JavaScript to build a page.

It is not for someone who already writes JavaScript professionally. Days 2 through 15 cover material a working developer knows, and the repository has no advanced track to skip to.

How the repository is organised: folders, Markdown, and translations

Each day is a top-level directory. The lesson body lives in a Markdown file inside it, and exercises typically follow the explanation in the same file. The repository listing shows 01_Day_Introduction through 30_Day_Mini_project_final, plus shared data/ and images/ directories and an index.html at the root.

The last seven days switch from concept lessons to project briefs. Day 24 is a solar system, days 25 and 26 are two parts of a world countries data visualisation, day 27 is a portfolio, day 28 a leaderboard, day 29 animating characters, and day 30 is titled Final Projects. The topics list on the repository mentions Angular, React, Redux, Vue, TypeScript, D3 and Node, but those are repository topics, not lesson folders. Do not read that list as a promise of framework tutorials; the day folders are plain JavaScript from start to finish. That mismatch between the topic tags and the actual folder contents is the single most misleading thing about the repository page.

Translations sit in sibling directories named Azerbaijani, French, Italian, Korea, Polish, Portuguese, RU, Spanish, Turkish and Vietnamese. The README's language row links to each. These are community translations of the same Markdown, so they can lag the English text. If a translated day looks shorter than the English one, that is the likely reason, not a different syllabus.

Installing nothing: how to start the 30 Days Of JavaScript challenge

There is no install step because there is no software. The README gives no setup instructions beyond the links to the day files, so the practical route is to clone the repository and read it locally, or to read it on GitHub. Cloning keeps the images and data files next to the lessons, which matters for the project days that load the data/ directory.

bash
git clone https://github.com/Asabeneh/30-Days-Of-JavaScript.git

After that, open the day you are on. The first substantive lesson is day 2, not day 1; 01_Day_Introduction holds introductory material and the README itself links day 1 back to ./readMe.md. Inside 02_Day_Data_types sits the Markdown file for that day.

bash
cd 30-Days-Of-JavaScript

Read the day file in any text editor or Markdown viewer. The exercises are inside it, written as instructions rather than as a runnable test file, so you run your own snippets. The browser console is enough for that, and it is the tool the DOM days assume; the repository topics also mention Node, though the README does not document a Node workflow.

Nothing in the repository checks your answers. There is no test runner, no CI, and no solutions directory in the top-level listing.

No grading, no solutions folder, and the leetcode confusion

The repository gives exercises but not answers. The top-level listing contains no solutions directory, and the README does not mention one. That is the main structural weakness: when an exercise is ambiguous or you cannot tell why your loop prints the wrong thing, the material stops and you are on your own. A course with a test suite would catch that; this one is text.

This also explains a recurring search behaviour around the project. People look for "30 days of javascript solutions" and "30 days of javascript leetcode" as if the two were the same resource. They are not. LeetCode's 30 Days of JavaScript is a separate, judged exercise set with automated checks, and this repository is a reading curriculum with no judge. If you want pass/fail feedback on each problem, this is the wrong tool, and the searches that conflate the two will send you to the wrong place. Conversely, if you want explanation and narrative before the problem, LeetCode's format gives you a problem statement and little else.

The second limitation is drift. The last push to the repository was on 2026-08-27, so it is not abandoned, but the lesson text is not versioned against an ECMAScript edition. Nothing in the README states which language features the material assumes, so you cannot tell from the repository page whether a given day has been revised for newer syntax. Treat the content as a stable 2020-era introduction, which is what the author's date line in the introduction file suggests.

Choosing between this and another JavaScript curriculum

The closest alternative in shape is javascript.info, a structured, continuously edited JavaScript textbook published as a website. The difference is editorial model. javascript.info is a maintained reference with a single canonical text and interactive runnable examples embedded in the page; 30-Days-Of-JavaScript is a set of Markdown files you clone, with the examples left for you to type into a console. The website gives you a search box and cross-links between topics; the repository gives you a folder per day and a table of contents.

A second alternative is LeetCode's 30 Days of JavaScript, mentioned above. Its approach is the inverse: short problem statements, an in-browser editor, and automated tests that decide whether you passed. If your failure mode is starting courses and never finishing, the judged format applies pressure that Markdown cannot. If your failure mode is not understanding why code works, the explanation-first format here is the better fit.

The honest summary is that this repository competes on ordering and prose, not on tooling. It has no editor, no runner, no progress tracking, and no feedback loop. What it has is a single opinionated path from data types to a portfolio project, and translations that make that path available to readers who do not want to learn JavaScript in English.

Maintenance, licensing, and what a fork costs you

The repository is not archived and the last push was on 2026-08-27, so it receives changes. There are no releases, which fits a project with nothing to ship: the master branch is the product, and a clone taken today is the current state. Upgrading means pulling the branch again, which for a repository this shape is the whole procedure.

The cost is not technical, it is editorial: because the lessons are plain Markdown with no build step, a pull can change any day's text without any signal in a version number. If you forked the repository to teach from, you inherit the job of diffing the day files you use.

On licensing, the repository listing shows no licence file at the top level, and the README does not state a licence. That is a real constraint, not a formality. Without a stated licence, the default copyright position applies, and you should not assume you can republish the lessons, bundle them into a paid course, or strip the attribution. The README does ask readers to support the project through GitHub Sponsors or PayPal, which tells you the author treats it as their own work. Check the repository for a licence before any reuse beyond personal study; this article cannot tell you what that licence permits, because none is declared in the files available.

Editorial conclusion

Adopt it if you are a self-directed beginner who will actually open the day folders and do the exercises, or a teacher who wants Markdown lesson text to adapt. Do not adopt it if you need graded feedback, a certificate, or a single stable PDF, because the repository ships none of those and the README only points to the day files and the author's video channel. Before committing, open two day folders and check that the depth matches your level, and check the licence situation for your own use, since no licence file appears in the repository listing.

Frequently asked questions

Is one month enough to learn JavaScript with 30 Days Of JavaScript?

The README answers this itself: the challenge may take more than 100 days, and it asks readers to follow their own pace. The thirty-day label describes the number of lessons, not a deadline the material enforces.

Can 30 Days Of JavaScript walk me through building 30 JavaScript projects in 30 days?

No. The repository has seven project days at the end, from a solar system to a portfolio, leaderboard and animating characters, while the earlier days are concept lessons with exercises. The project count is seven, not thirty.

Is JavaScript still worth learning in 2026?

The repository does not discuss the language's job market or its future, so it cannot answer this. What it shows is a curriculum that still ends in browser-facing work such as DOM manipulation, event listeners and data visualisation projects.

How can I get the date that is 30 days ago in JavaScript?

The repository has no lesson dedicated to date arithmetic in the day list; day 3 covers Booleans, Operators and Date, which is where date handling is introduced. It does not document a thirty-days-ago recipe in the README.

Official sources

  1. Asabeneh/30-Days-Of-JavaScript on GitHub
  2. Issues
  3. README
For maintainers

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/asabeneh-30-days-of-javascript.svg)](https://hysenlabs.com/projects/asabeneh-30-days-of-javascript)
Community notes

Community notes