ZSZainSpireLibrary
Repo guide · checked 13 Nov 2026

Build Your Own X: learn by building (almost) anything

One GitHub repo, 562k stars, 29 categories and 360 step-by-step guides to rebuild real technologies from scratch: Git, a database, a shell, a web server, even an operating system. Here is the link, my beginner picks, and the order I'd follow.

The repogithub.com/codecrafters-io/build-your-own-x
It's a free list of tutorials written by many authors, collected by CodeCrafters. You don't download a tool; you pick a guide and build it yourself. "What I cannot create, I do not understand." (Richard Feynman)

01My 13 beginner picks

Ordered from easiest to hardest. Pick a language you already know a little.

#BuildGuideLevel
01Command-line tool
Node.js
Create a CLI tool in JavaScript
How CLIs read arguments and files.
Easy
02Bot
Node.js
Create a Discord bot (discord.js guide)
Events, APIs and tokens.
Easy
03Regex engine
JavaScript
Build a Regex Engine in Less than 40 Lines of Code
Recursion and pattern matching.
Easy
04Web server
Python
Let's Build A Web Server
HTTP, sockets, requests and responses.
Easy–Medium
05Web server
Node.js
Build Your Own Web Server From Scratch In JavaScript
HTTP in depth, streams.
Medium
06Shell
C
Tutorial – Write a Shell in C
Processes, fork/exec, how a terminal runs commands.
Medium
07Git
Python
Write yourself a Git!
Objects, hashes, commits: how Git really works.
Medium
08Git
Python
ugit: Learn Git Internals by Building Git Yourself
Same idea, in small steps.
Medium
09Database
C
Let's Build a Simple Database
Storage on disk, B-trees, a tiny SQL.
Medium
10Text editor
C
Build Your Own Text Editor (kilo)
Terminal raw mode, rendering, files.
Medium
11Programming language
C
Build Your Own Lisp
Parsing, evaluation, how languages run.
Hard
12AI model
Python
LLMs from scratch
How a large language model is built and trained.
Hard
13Operating system
C
The little book about OS development
Booting, kernel, memory, drivers.
Hard

02A simple path

  1. Week 1–2: a CLI tool or a bot (quick win, you learn to read docs).
  2. Week 3–4: a web server (you finally understand HTTP).
  3. Month 2: Git or a shell (how real tools work inside).
  4. Month 3: a database or a text editor.
  5. Later: a programming language, an LLM, an OS.
TipType the code yourself instead of copying, and put each project on your GitHub. Five "built from scratch" projects make a strong portfolio.

03All 29 categories

3D Renderer
AI Model
Augmented Reality
BitTorrent Client
Blockchain / Cryptocurrency
Bot
Command-Line Tool
Database
Docker
Emulator / Virtual Machine
Front-end Framework / Library
Game
Git
Memory Allocator
Network Stack
Neural Network
Operating System
Physics Engine
Processor
Programming Language
Regex Engine
Search Engine
Shell
Template Engine
Text Editor
Visual Recognition System
Voxel Engine
Web Browser
Web Server

Plus a section for distributed systems and an "Uncategorized" list. 360 guides in total.