build-your-own-x
USE FOR:
- "build X from scratch / implement X yourself"
- "how does Docker/Git/database/web server actually work"
- "deep dive into how technology X is implemented"
- "learning compilers / interpreters / OS / networking internals"
- "implement neural network from scratch"
- "write your own shell / regex engine / search engine"
- "understand blockchain / BitTorrent internals" tags: [education, from-scratch, systems, compilers, OS, database, Docker, Git, neural-network, blockchain, web-server, shell, regex] kind: reference category: pro-code-architecture
What Is Build-Your-Own-X?
Curated repo of step-by-step tutorials for recreating popular technologies from scratch.
"What I cannot create, I do not understand." — Richard Feynman
- Repo: https://github.com/codecrafters-io/build-your-own-x
- 300+ tutorials · 30 categories · 20+ programming languages
- Stars: 330,000+ (one of the most-starred repos on GitHub)
Complete Category Reference
| # | Category | What You Build | Languages |
|---|---|---|---|
| 1 | 3D Renderer | Ray tracer, rasterizer, path tracer | C, C++, Java, JS, Python, Rust |
| 2 | AI Model | GPT, diffusion model, CLIP, NeRF | Python, C++ |
| 3 | Augmented Reality | AR overlay, marker tracking | JS, Python |
| 4 | BitTorrent Client | Peer-to-peer file sharing | Go, Haskell, JS, Python, Rust |
| 5 | Blockchain / Crypto | Bitcoin-like chain, smart contracts | Go, Haskell, Java, JS, Python, Rust |
| 6 | Bot | Chatbot, IRC bot, Slack bot | Go, Java, JS, Python |
| 7 | Command-Line Tool | CLI parser, progress bar, formatter | Go, Python, Rust |
| 8 | Database | SQL engine, key-value store, Redis clone | C, C++, Go, Java, Python, Rust |
| 9 | Docker | Container runtime, image builder | Go, Python |
| 10 | Emulator / VM | CHIP-8, NES, Game Boy emulator | C, C++, Go, Java, JS, Rust |
| 11 | Frontend Framework | React-like library, virtual DOM, JSX | JS, TS |
| 12 | Game | Tetris, chess, Minecraft clone | C, C++, Go, Java, JS, Python |
| 13 | Git | Version control from scratch | Go, Python, Haskell, Ruby |
| 14 | Memory Allocator | malloc/free implementation | C |
| 15 | Network Stack | TCP/IP stack, HTTP client | C, Go, Python |
| 16 | Neural Network | Backprop from scratch, CNN, RNN | C, C++, Java, JS, Python |
| 17 | Operating System | Bootloader, kernel, process scheduler | C, Rust |
| 18 | Physics Engine | Rigid body, collision detection | C++, JS |
| 19 | Processor | RISC-V CPU in HDL or emulation | C, Python |
| 20 | Programming Language | Interpreter, compiler, VM, LISP | C, Go, Haskell, Java, JS, Python, Rust |
| 21 | Regex Engine | NFA/DFA regex from scratch | C, Go, Java, JS, Python |
| 22 | Search Engine | Inverted index, TF-IDF, BM25 | Python, Ruby |
| 23 | Shell | Bash-like shell, job control | C, Go, Python, Rust |
| 24 | Template Engine | Jinja/Mustache-like | JS, Python |
| 25 | Text Editor | Vim-like, kilo editor | C |
| 26 | Visual Recognition | MNIST classifier, face detection | Python |
| 27 | Voxel Engine | Minecraft-style 3D world | C++ |
| 28 | Web Browser | HTML parser, CSS layout, DOM | Python, Haskell |
| 29 | Web Server | HTTP/1.1, static file server | C, Go, Java, Python, Rust |
| 30 | Distributed Systems | Kafka-like, Raft consensus, MapReduce | Go, Java, Python |
Quick Lookup: "Build Your Own X" by Language
Python
- Neural network (numpy only), web server, shell, regex engine, search engine, blockchain, BitTorrent, Docker, browser, Git, database (Redis/SQLite clone)
Go
- Docker, Git, BitTorrent client, web server, shell, database, distributed systems (Raft/Kafka)
Rust
- OS kernel, web server, shell, regex engine, database, 3D renderer, BitTorrent
C / C++
- OS, memory allocator, text editor (kilo), 3D renderer, shell, neural network, database
JavaScript / TypeScript
- Frontend framework (React clone), game, bot, blockchain, web server, template engine
Java
- Blockchain, compiler, neural network, distributed systems
Learning Path Recommendations
Systems Programming Track
1. Memory Allocator (C) → understand heap
2. Shell (C/Go/Rust) → processes, I/O, signals
3. Network Stack (C/Go) → TCP/IP fundamentals
4. Web Server (Go/Rust) → HTTP, concurrency
5. Operating System (C/Rust) → kernel, scheduling
Compiler / Language Track
1. Regex Engine → NFA/DFA automata
2. Template Engine → parsing basics
3. Interpreter (LISP/calc) → AST, evaluation
4. Full Language (Python/Rust) → lexer → parser → codegen
AI / ML Track
1. Neural Network (numpy/C) → backprop from scratch
2. Visual Recognition (MNIST) → CNN pipeline
3. AI Model (GPT-like) → transformer architecture
4. Diffusion Model → score-based generation
Distributed Systems Track
1. BitTorrent Client → P2P, DHT
2. Blockchain → consensus, hashing
3. Kafka-like queue → log-structured storage
4. Raft consensus → leader election
5. MapReduce → distributed computation
Database Track
1. Key-value store (Redis clone) → in-memory, persistence
2. SQL engine → parsing, query planning
3. B-tree storage engine → disk I/O, indexing
4. Full RDBMS → joins, transactions, ACID
CodeCrafters Integration
Many guides are also available as interactive challenges at codecrafters.io:
- Build Redis, Git, Docker, HTTP server, SQLite, Kafka, BitTorrent
- Get automated test feedback as you build
- Supported languages: Go, Python, Rust, Java, C, C++, and more
Using This as a Skill Reference
When a user asks "how does X work?" or "implement X from scratch":
- Find X in the category table above
- Route to the tutorial in preferred language
- Use the learning path recommendations for sequencing
- CodeCrafters for interactive guided versions