Open-source project
bradtraversy/50projects50days avatar
bradtraversy/50projects50days

50projects50days: A Course Repository That Doubles as a CSS and JavaScript Pattern Library

GitHub describes it as 50+ mini web projects using HTML, CSS & JS. The repository metadata lists CSS as its primary language. The metadata lists the MIT license. This article stays within the project description and details documented in the GitHub repository README.

40,647 stars9,701 forksCSSMIT

At a glance

What is it?
Brad Traversy's 50projects50days is a collection of 50+ self-contained HTML, CSS, and JavaScript mini-projects. It is a teaching resource first and a codebase second, with each folder holding a single, dependency-free example you can open in a browser.
Who is it for?
Adopt 50projects50days if you are learning CSS transitions, JavaScript DOM manipulation, or how to structure a single-page widget without a framework. Do not use it as a component library for a production app; the projects are intentionally isolated and rarely share code.
Can I use it commercially?
Yes. MIT 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?
Probably not. The repository last received commits 20 months ago, on February 26, 2025.
What is it written in?
Mainly CSS, according to GitHub's language statistics.

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

From daily snapshots

Star history

  • bradtraversy/50projects50days40,647 ★ · +25
Star history
Repository2026-08-132026-11-13
bradtraversy/50projects50days40.6k40.6k

25 Stars in the last 92 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

What This Repository Actually Provides

The repository is the companion code for Brad Traversy's course, 50 Projects in 50 Days. It contains over 50 folders, each holding a single mini web project. The projects range from Expanding Cards, a clickable card layout, to a Drawing App, a canvas-based sketch tool. The primary language is CSS, which reflects the emphasis on styling and animation. The README lists every project with a link to a live demo hosted at 50projects50days.com. This is not a library or a framework. It is a set of examples, each self-contained, that you can open and inspect. The target audience is developers who want to see how common UI patterns are built with plain HTML, CSS, and JavaScript. If you are looking for a drop-in component, this is not it. If you want to learn by reading and modifying small, working pieces, it fits that role.

How the Projects Are Structured

Each project lives in its own directory, named with a kebab-case slug like expanding-cards or progress-steps. The README table maps each folder to a live demo URL. The projects are independent: the root has no package.json or build configuration. This structure means you can copy a folder and run it by opening the HTML file in a browser. The design choices are pedagogical. For example, the Form Wave project animates input labels, and the Blurry Loading project animates a blur effect. Each one demonstrates a specific technique rather than a complete application.

Getting It Running: No Build Step, Just Open a File

Because the repository has no build tooling, running a project is straightforward. Clone the repository, navigate to a project folder, and open the index.html file in a browser. The live demos at 50projects50days.com give you a preview without cloning. The root has no package.json, so there is no npm install step at the top level. This is a deliberate contrast to modern front-end workflows. The trade-off is that you do not learn how to set up a bundler or manage dependencies. You also do not get hot reloading or a dev server. For a beginner, this simplicity is an advantage. For someone used to modern tooling, it feels bare.

The Real Limitation: It Is a Course, Not a Codebase

The biggest limitation is that the projects are not designed to be reused. They are isolated examples, each with its own styling and logic. The root has no shared code directory and no test suite. If you want to combine a progress steps widget with a rotating navigation, you will have to manually merge the code. Another issue is that the code style is likely inconsistent from project to project, since each was written to demonstrate a concept. This is fine for learning, but it means the repository is the wrong tool if you need a consistent, maintainable component library for a real application.

A Real Alternative: Framework Component Libraries

If you need reusable UI components for a production site, a framework-based library like React Bootstrap or MUI takes a different approach. Those libraries provide pre-built, accessible components with a consistent API and theming system. They rely on JavaScript frameworks and a build pipeline, which is the opposite of this repository's plain HTML and CSS. The trade-off is clear: component libraries save time and ensure consistency, but they hide the underlying mechanics. This repository shows you the mechanics, which is valuable for learning but not for shipping. If you already know the mechanics and need to build quickly, the alternative is better. If you are still learning, this repository is the better starting point.

Maintenance and License Implications

The repository is not archived and has an MIT license, which permits free use, modification, and distribution with attribution. The last push was on 2025-02-26, more than a year before this review. The course itself may receive updates, but the repository has no releases listed. This means you can fork it and maintain your own version if needed. The maintenance cost for a learner is low: you clone once and read. For someone who wants to use the code in a project, the cost is higher because you must copy and adapt each piece, and you must check for browser compatibility yourself. The license is permissive, but the code is not packaged as a dependency, so you will be copying files. That is acceptable under MIT, but you should keep the original copyright notice if you redistribute the code.

Editorial conclusion

Adopt 50projects50days if you are learning CSS transitions, JavaScript DOM manipulation, or how to structure a single-page widget without a framework. Do not use it as a component library for a production app; the projects are intentionally isolated and rarely share code. Before relying on any snippet, verify the browser support for the specific CSS or JavaScript feature it demonstrates. With an MIT license and no build step, it is a low-risk way to study working examples, but treat each project as a lesson, not a reusable module.

Frequently asked questions

How many projects are in 50projects50days?

The root holds 52 directories: 51 finished project folders plus one directory named `_project_starter_`. The README table numbers the projects from 01 upward, and the repository description calls it 50-plus mini web projects using HTML, CSS and JS.

Do I need to install anything to run 50 Projects in 50 Days?

There is nothing to install. The root contains no package.json, no build configuration and no lockfile, only .gitignore, LICENSE, README.md and the project folders, so each project is static files you open directly.

Why does a 50 Projects in 50 Days demo not work for me?

The live demos at 50projects50days.com are a separate deployment from the repository, so compare the project folder in the repository with the demo to see what differs.

Can I use these projects in my own website?

Yes, the repository is released under the MIT License, so you can take the code into your own project. Lift the folder rather than the demo link: the live demos at 50projects50days.com are a separate deployment, and the README table records no commit for any of them.

Is 50 Projects in 50 Days still being updated?

The repository is not archived, but the last push was on 2025-02-26 and there are no GitHub releases and no changelog file at the root. The README points to the course at traversymedia.com rather than tracking the exercises' status itself.

Official sources

  1. Official README
  2. Project repository
  3. README
  4. Releases
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/bradtraversy-50projects50days.svg)](https://hysenlabs.com/projects/bradtraversy-50projects50days)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/bradtraversy-50projects50days.svg)](https://hysenlabs.com/projects/bradtraversy-50projects50days)

Was this useful?