Build Your Own X: The 480k-Star Curriculum That Teaches by Rebuilding

A single Markdown file of curated tutorials became GitHub's most starred repository, proved the Feynman method at mass scale, and turned into a venture-backed company.

codecrafters-io/build-your-own-x ยท 12 min read

A wide workbench covered with partially assembled technology artifacts: a tiny operating system kernel on a circuit board, a half-built web browser, a database engine with exposed gears, a small programming language interpreter, and blueprints scattered everywhere. Tools and reference manuals surround the projects. The scene radiates focused energy and curiosity.
The workbench philosophy: you learn how technology works by taking it apart and putting it back together.
Key Takeaways

One Markdown File to Rule Them All

In May 2018, developer Daniel Stefanovic pushed a single README.md to GitHub. The premise was simple: collect the best tutorials that teach you how to build real technologies from scratch. Not toy examples. Not library integrations. Full implementations that force you to understand every layer.

The repo opens with a Richard Feynman quote: "What I cannot create, I do not understand." That line became the project's thesis and its rallying cry. Eight years later, the repository holds 480,000+ stars, making it the most starred project on all of GitHub.

The entire thing is one file. No framework. No app. No build step. Just a carefully organized list of links in Markdown, each pointing to a tutorial that walks you through implementing something real.

"What I cannot create, I do not understand."

-- Richard Feynman, as quoted in the repository's opening line

What Gets Curated (and What Doesn't)

Build-your-own-x has a strict editorial line. Every included tutorial must guide the reader through building a technology from scratch. Tutorials that teach you how to use a library or integrate an API are rejected. The bar is "could you explain every line of what you built?"

The categories cover a staggering range. Systems programming dominates with operating systems (18 tutorials), emulators (13), and shells (7). Web technologies include front-end frameworks (14 tutorials recreating React, Angular, Redux), web servers (10), and even full web browsers (2). Infrastructure tutorials walk you through building Docker, Git, databases, BitTorrent clients, and blockchains.

Then there are the categories that surprise newcomers: programming languages (28 compiler and interpreter tutorials), regex engines (9), physics engines (6), 3D renderers (11), and a growing AI section covering neural networks, LLMs, diffusion models, and RAG systems from scratch.

An organized library or museum of technology. Shelves labeled with different categories hold miniature versions of the technologies: a tiny Docker whale, a small Git tree, a neural network web, a blockchain chain, a compiler funnel. Each shelf is neatly labeled and progressively more complex from bottom to top.
Over 30 categories of build-from-scratch tutorials, from operating systems to neural networks.

The Language Buffet

One of the collection's quiet strengths is its language diversity. The same concept appears in multiple languages. Want to build a BitTorrent client? Pick from C#, Go, Nim, Node.js, or Python. A blockchain? Choose from 12 different languages including ATS, Crystal, Kotlin, and Scala.

This is not accidental. It reflects how experienced developers actually learn. You pick a project that interests you, then use it as a vehicle to learn a new language. Building a Redis clone in Rust teaches you Rust's ownership model in a way no textbook can. Implementing a shell in Go teaches goroutines through real concurrency problems.

Python and JavaScript dominate the tutorial count, but C and C++ own the systems categories. Rust has been steadily climbing, with tutorials for operating systems, browsers, DNS servers, text editors, chat servers, and game engines. Go covers infrastructure particularly well with Docker, databases, and networking projects.

A polyglot feast. Multiple hands reach toward a central project blueprint from different directions. Each hand holds a different tool representing a programming language: a wrench labeled Rust, pliers labeled Python, a hammer labeled C, a screwdriver labeled Go, wire cutters labeled JavaScript. The blueprint in the center shows a generic technology schematic.
The same project in six languages: the polyglot approach to deep learning.

Why "Build From Scratch" Works

The Feynman learning method has a specific mechanism. When you build something from scratch, you hit knowledge gaps that reading documentation alone never reveals. You discover why hash tables need collision handling by watching your implementation break. You learn why TCP needs a three-way handshake by building a network stack that fails without one.

This approach inverts the typical tutorial structure. Most programming courses start with theory and work toward practice. Build-from-scratch tutorials start with a goal and force you to discover the theory yourself. The "aha" moments are deeper because you earned them through debugging.

The approach also produces transferable understanding. After building a simple database from scratch using B+ trees, you understand why PostgreSQL makes certain design decisions. After implementing a virtual DOM, React's reconciliation algorithm stops looking like magic. The tutorials create a mental model that applies far beyond the specific project.

"It's a great way to learn."

-- The repository's own understated description of its entire philosophy

The Greatest Hits

Some tutorials in the collection have achieved legendary status in the programming community. "Build Your Own Text Editor" (the kilo tutorial in C) is a masterclass in terminal programming that walks you through building a complete editor in about 1,000 lines. "Writing an OS in Rust" by Philipp Oppermann became the go-to resource for operating system development in Rust.

"Crafting Interpreters" by Robert Nystrom, listed in the programming languages section, evolved from a web tutorial into a published book and is widely considered one of the best technical books of the decade. "Let's Build a Simple Database" teaches B-tree implementation through a SQLite clone. "Browser Engineering" walks you through building a web browser in Python, covering layout engines, rendering, and JavaScript execution.

The neural network section has exploded in recent years. Andrej Karpathy's "Neural Networks: Zero to Hero" video series and Sebastian Raschka's "LLMs from Scratch" both appear here. These are not toy demos. They are serious implementations that teach the math and architecture decisions behind modern AI.

A hall of fame wall with framed achievements. Each frame contains a symbolic representation of a famous tutorial: a text editor cursor blinking, an OS kernel boot screen, a compiler pipeline diagram, a neural network diagram, a browser rendering tree. Gold plaques beneath each frame show the tutorial name.
The hall of fame: tutorials that became required reading for an entire generation of developers.

From Index to Company

The repository's influence did not stay on GitHub. In 2022, Sarup Banskota and Paul Kuruvilla founded CodeCrafters, a Y Combinator-backed startup that took the build-your-own-x concept and made it interactive. The two had met during IIT prep school in Chennai and shared a conviction that senior engineers learn best through hard implementation challenges, not video courses.

CodeCrafters acquired stewardship of the build-your-own-x repository and built a paid platform around the same idea. On codecrafters.io, you build Redis, Git, SQLite, Docker, DNS servers, HTTP servers, and BitTorrent clients from scratch. The platform provides test suites, real-time feedback, and progression tracking. You write real code in your own editor and push it through Git.

The startup raised a $1.8 million seed round with a remarkable cap table. Instagram co-founder Mike Krieger, Dropbox co-founder Arash Ferdowsi, Supabase CEO Paul Copplestone, and PlanetScale co-founder Jitendra Vaidya all invested. The investor list reads like a who's who of infrastructure founders who themselves learned by building.

"Practice writing complex software. Recreate Redis, Git, DNS server, SQLite, and more from scratch."

-- CodeCrafters tagline, turning the open-source idea into a product
A bridge connecting two islands. The left island is labeled Open Source and has a large Markdown document on it. The right island is labeled Product and has a building with the CodeCrafters sign. The bridge is made of stepping stones, each labeled with a technology: Redis, Git, Docker, SQLite. People walk across the bridge carrying tools.
The bridge from open-source index to venture-backed product: CodeCrafters turned curation into a business.

The Competitive Landscape

Build-your-own-x is not the only project-based learning resource, but it occupies a unique position. The closest competitor is "project-based-learning" by practical-tutorials, another curated GitHub list. ProjectLearn.io offers a browsable web interface for similar tutorials. Exercism, Codecademy, and freeCodeCamp all teach programming through projects, but their challenges tend to be smaller and more guided.

What sets build-your-own-x apart is its editorial strictness and its ambition level. These are not "build a to-do app" tutorials. They are "build an operating system" and "build a compiler" tutorials. The collection targets intermediate-to-advanced developers who already know how to code and want to understand how foundational technologies actually work.

The Nand2Tetris course, listed in the uncategorized section, captures the spirit perfectly. It takes you from raw NAND gates to a working Tetris game, building every layer of a computer along the way. That is the level of depth the collection celebrates.

Resource Format Difficulty Scope Cost
build-your-own-x Curated link index Intermediate to Expert 200+ tutorials, 30+ categories Free
CodeCrafters Interactive challenges Senior engineers 10+ guided projects Paid subscription
project-based-learning Curated link index Beginner to Intermediate Broad but less strict curation Free
Nand2Tetris Structured course Intermediate One deep vertical (hardware to software) Free / Coursera
Exercism Small exercises Beginner to Intermediate Language-focused, smaller scope Free

The Contribution Model

The repository accepts submissions through pull requests and issues. The community proposes new tutorials, and maintainers evaluate whether each one meets the "build from scratch" bar. This curation is what keeps the collection valuable. Many awesome-lists on GitHub devolve into dump-everything collections. Build-your-own-x has maintained a relatively high quality threshold.

The issue tracker reveals the community's appetite. Pending submissions cover emerging areas: build your own LLM inference engine, build your own container orchestrator, build your own vector database. The collection evolves with the industry.

Contribution is also beautifully low-friction. Because the entire project is a single Markdown file, submitting a new tutorial is as simple as adding a line with a language tag, a title, and a URL. No complex build system. No review app. Just Git.

A growing tree where each branch represents a category and each leaf is a tutorial. People at the base of the tree hand new leaves up to those on ladders who attach them to the appropriate branches. A gardener tends the tree, pruning dead branches. The tree is massive and healthy.
A community-maintained knowledge tree: contributors propose, maintainers curate.

What the Star Count Actually Means

At 480,000+ stars, build-your-own-x regularly trades the top spot on GitHub with freeCodeCamp. But stars are a blunt metric. What matters more is bookmarking behavior. This is a reference people return to. When a developer decides to learn Rust, they search the repo for Rust tutorials. When someone wants to understand how databases work, they browse the database section.

The fork count (45,000+) is also telling. People fork the list to maintain their own curated subset, to track which tutorials they have completed, or to build derivative projects. The repository has been archived dozens of times on the Internet Archive, a sign that people treat it as critical infrastructure for self-directed learning.

The star growth has been remarkably steady. Unlike viral repos that spike and fade, build-your-own-x accumulates stars week after week, year after year. Every time a developer asks "how do I really learn programming?" someone links the repo. That organic recommendation loop is its growth engine.

The Deeper Pattern

Build-your-own-x reveals something important about how software knowledge actually transfers. Documentation tells you what a system does. Source code shows you how. But building a clone from scratch teaches you why.

That "why" is what separates a developer who uses Redis from one who can debug a production Redis cluster at 3 AM. It is what separates someone who deploys Docker containers from someone who can diagnose a namespace isolation failure. The tutorials in this collection create the kind of understanding that only comes from having built the thing yourself.

The repository also demonstrates the power of curation as a product. Daniel Stefanovic did not write any of these tutorials. He organized them. That act of selection, categorization, and quality filtering created more value than most original content. The 480,000 stars are a vote for editorial judgment.

Three levels of understanding depicted as depth. Surface level shows a person reading documentation on a screen. Middle level shows a person reading source code with some gears visible beneath. The deepest level shows a person at a workbench with fully exposed internal mechanisms, building something with their hands. Each level is progressively more detailed and crosshatched.
Three levels of understanding: reading docs, reading source, building it yourself.

Where It Goes From Here

The AI section is the fastest-growing part of the collection. As large language models, diffusion models, and RAG systems move from research to production, developers want to understand what is actually happening inside these systems. "LLMs from Scratch" by Sebastian Raschka and Karpathy's "Zero to Hero" series are already landmarks. Expect more tutorials covering inference engines, tokenizers, attention mechanisms, and alignment techniques.

The vibe coding movement may also drive growth in an unexpected direction. As AI-assisted coding becomes mainstream, the developers who understand the underlying systems will have an outsized advantage. You cannot effectively prompt an AI to build a database if you do not understand what a B-tree is. Build-your-own-x becomes more valuable, not less, in an AI-assisted world.

CodeCrafters continues to expand its guided challenge catalog. The open-source repo and the commercial product feed each other: the repo surfaces which topics developers care about, and the company builds polished interactive experiences around the most popular ones.

"Master programming by recreating your favorite technologies from scratch."

-- The repository description, unchanged since 2018

The Bottom Line

Build-your-own-x is proof that a well-curated list can be more influential than a framework, a platform, or a course. One developer, one Markdown file, and a strict editorial standard created the most starred repository on GitHub. It spawned a Y Combinator startup. And it quietly shaped how hundreds of thousands of developers think about learning.

The next time you want to understand how a piece of technology works, do not just read about it. Build it. The 200+ tutorials in this collection are waiting.