# The Odin Project Curriculum: Open-Source Full-Stack Web Development

> The Odin Project curriculum is an open-source, community-maintained collection of lessons and projects for learning full-stack web development, covering foundations, JavaScript, React, Node.js, Ruby, Ruby on Rails, databases, Git, and career prep. It is the content layer behind theodinproject.com, structured so that contributors can improve lessons directly through pull requests.

**TheOdinProject/curriculum** — The open curriculum for learning web development

- Repository: https://github.com/TheOdinProject/curriculum
- Website: https://www.theodinproject.com/
- Stars: 13,100 · Forks: 16,788
- Language: JavaScript
- License: NOASSERTION
- Published: 2026-09-21 · Updated: 2026-09-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/theodinproject-curriculum

## What This Repository Contains and What It Does Not

This repository holds the Markdown lesson files that power theodinproject.com. It is not the web application itself. The README is explicit on this point: the actual TOP app that pulls in this content and runs the front-end and back-end lives in a separate repository at TheOdinProject/theodinproject.

What this repository provides is the curriculum content: lesson text, project briefs, and links to curated external resources. Each lesson is a Markdown file. Contributions here change what learners read at theodinproject.com. Bug fixes, resource additions, and rewrites of unclear lessons all go through this repository. Entirely new lessons require prior approval through the contribution process described in CONTRIBUTING.md.

## Course Structure and What Each Path Covers

The repository is divided into directories that correspond to courses on the platform. The top-level directories visible in the repository are: `foundations/`, `javascript/`, `react/`, `nodeJS/`, `ruby/`, `ruby_on_rails/`, `intermediate_html_css/`, `advanced_html_css/`, `databases/`, `git/`, `getting_hired/`, and `shared/`. There is also an `archive/` directory for retired content.

The Foundations course is the entry point for all learners regardless of which language path they intend to follow. It covers basic HTML and CSS, Git, JavaScript fundamentals, and the command line. After Foundations, learners branch into a JavaScript-focused path (covering JS, React, Node.js, and databases) or a Ruby-focused path (covering Ruby, Rails, and databases). The `getting_hired/` course covers portfolio preparation and job search skills.

Each course directory contains lessons structured as Markdown files. Lessons combine original written explanations with curated links to external resources such as documentation, blog posts, and videos. The combination means lesson quality depends on both the original writing and the external resources selected.

## How to Access and Use the Curriculum

Learners use the curriculum through the website at https://www.theodinproject.com/, not by cloning this repository. Cloning is for contributors who want to submit improvements, not for learners who want to read the content.

The `package.json` at the repository root is for tooling only. The lint script runs `markdownlint-cli2` to check lesson file formatting. The `fix` script auto-corrects markdownlint issues. These tools are for contributors, not for learners.

```bash
npm run lint
```

```bash
npm run fix
```

For learners, the correct workflow is to open theodinproject.com, create an account, and follow the curriculum path through the web interface. The platform tracks completed lessons and allows learners to mark projects as done.

## Contributing: What Is Accepted and What Requires Approval

The README lists the contribution types that are accepted without prior approval: correcting typos and grammar errors, rewriting parts of existing lessons for clarity, fixing broken links, and adding new resource links that improve a lesson. These are the contributions that happen most frequently.

Writing an entirely new lesson requires prior approval. The contributing guide in CONTRIBUTING.md describes the process. The repository also has a LAYOUT_STYLE_GUIDE.md that documents how lessons should be formatted: heading levels, project structure, the format for knowledge check questions, and how external resources should be linked.

The development tooling enforces Markdown formatting through `markdownlint-cli2`. Pull requests that fail the lint check will not pass CI. Contributors should run `npm run lint` locally before submitting and use `npm run fix` for auto-correctable issues.

The community channel is the TOP Discord server at https://discord.gg/fbFCkYabZB.

## What This Curriculum Leaves Out

The curriculum does not cover every technology in the web development landscape. TypeScript, for example, does not have its own dedicated course path in the current repository layout, though it may appear within specific lessons. Mobile development, GraphQL, DevOps, and cloud infrastructure are outside the current scope of the curriculum directories.

The curriculum is text and project-based. There are no built-in interactive exercises, no automated test runners for learner code, and no built-in video content. All of that is either on the theodinproject.com platform (which is outside this repository) or in external resources linked from lessons. Learners who need structured video instruction or real-time feedback on code should evaluate whether a platform with those features fits better.

The license in `package.json` is CC BY-NC-SA 4.0. The curriculum text can be shared and adapted for non-commercial purposes with attribution, but commercial use requires separate permission.

## Maintenance and Contribution Activity

The last push to this repository was on 2026-09-26, The repository has no tagged releases, which is consistent with a curriculum that is continuously updated rather than versioned. Contributors open pull requests to improve individual lessons, and the maintainer team reviews and merges them.

The repository has been created by Erik Trautman and is maintained by the broader Odin Project community. The open-source model means the curriculum can incorporate corrections and improvements from learners who encountered unclear explanations or outdated resources. This is both a strength and a risk: quality depends on the volume and quality of contributions and the attention of the review team.

## Conclusion

The Odin Project curriculum suits self-directed learners who want a structured, project-heavy path through full-stack web development without paying for a bootcamp. It is not a video course or an interactive coding environment: lessons link out to curated external resources, and progress tracking happens on the theodinproject.com platform, not in this repository. Developers who want to contribute should read CONTRIBUTING.md and LAYOUT_STYLE_GUIDE.md before opening a pull request, since new lessons require approval before work begins.

## FAQ

### How do I access The Odin Project curriculum?

The curriculum is available on the web at https://www.theodinproject.com/. Cloning this GitHub repository is for contributors who want to improve lessons, not for learners who want to read the content.

### What programming languages and frameworks does the curriculum cover?

The curriculum covers HTML, CSS, JavaScript, React, Node.js, Ruby, and Ruby on Rails, plus Git, databases, and job search preparation. The repository directories for these paths are visible at the top level of the repository.

### Can I use The Odin Project curriculum content in my own course or project?

The license listed in package.json is CC BY-NC-SA 4.0, which permits sharing and adapting the content for non-commercial purposes with attribution and under the same license. Commercial use is not covered by this license.

## Sources

- [Issues](https://github.com/TheOdinProject/curriculum/issues)
- [Project website](https://www.theodinproject.com/)
- [README](https://github.com/TheOdinProject/curriculum/blob/main/README.md)
- [TheOdinProject/curriculum on GitHub](https://github.com/TheOdinProject/curriculum)

---

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