— Richard Feynman
A beautifully curated, community-driven collection of 200+ step-by-step guides
for re-creating your favourite technologies completely from scratch.
The best way to deeply understand a technology is to build it yourself.
No magic. No black boxes. Just pure, raw understanding.
| Category | Category | Category | |||
|---|---|---|---|---|---|
| 🖥️ | 3D Renderer | 🤖 | AI Model | 🕶️ | Augmented Reality |
| 🔗 | BitTorrent Client | ⛓️ | Blockchain | 🤖 | Bot |
| 🖥️ | Command-Line Tool | 🗄️ | Database | 🐳 | Docker / Container |
| 💻 | Emulator / VM | ⚛️ | Frontend Framework | 🎮 | Game |
| 📦 | Git | 🧠 | Memory Allocator | 🌐 | Network Stack |
| 🧬 | Neural Network | 🖥️ | Operating System | ⚙️ | Physics Engine |
| 🔧 | Processor / CPU | 🗣️ | Programming Language | 🔍 | Regex Engine |
| 🔎 | Search Engine | 🐚 | Shell | 📄 | Template Engine |
| ✏️ | Text Editor | 👁️ | Visual Recognition | 🧱 | Voxel Engine |
| 🌐 | Web Browser | 🖧 | Web Server | 🔀 | Distributed Systems |
| 📨 | Message Queue | 🔑 | Key-Value Store | 🔐 | Auth System |
| 🌀 | WebAssembly Runtime | 📦 | Package Manager | 🗺️ | Uncategorized |
👉 vignesh2027.github.io/code_crafterz 👈
Full interactive site with live search, category filters, and beautiful animations
🔽 10 tutorials — C++, Java, JavaScript, Python
| Language | Tutorial | Difficulty |
|---|---|---|
C++ |
Introduction to Ray Tracing: a Simple Method for Creating 3D Images | ⭐⭐⭐ |
C++ |
How OpenGL works: software rendering in 500 lines of code | ⭐⭐⭐⭐ |
C++ |
Raycasting engine of Wolfenstein 3D | ⭐⭐⭐ |
C++ |
Physically Based Rendering: From Theory To Implementation | ⭐⭐⭐⭐⭐ |
C++ |
Ray Tracing in One Weekend | ⭐⭐ |
C++ |
Rasterization: a Practical Implementation | ⭐⭐⭐⭐ |
C# / TypeScript / JavaScript |
Learning how to write a 3D soft engine from scratch | ⭐⭐⭐ |
Java / JavaScript |
Build your own 3D renderer | ⭐⭐⭐ |
JavaScript |
Computer Graphics from scratch | ⭐⭐ |
Python |
A 3D Modeller | ⭐⭐ |
🔽 8 tutorials — Python
| Language | Tutorial | Difficulty |
|---|---|---|
Python |
A Large Language Model (LLM) from Scratch | ⭐⭐⭐⭐⭐ |
Python |
Diffusion Models for Image Generation | ⭐⭐⭐⭐ |
Python |
RAG for Document Search from Scratch | ⭐⭐⭐ |
Python |
Build GPT: Reproduce GPT-2 from Scratch | ⭐⭐⭐⭐⭐ |
Python |
Building a Transformer from Scratch | ⭐⭐⭐⭐ |
Python |
Let's build the GPT Tokenizer | ⭐⭐⭐ |
Python |
Build a Generative AI Application from Scratch | ⭐⭐⭐ |
Python |
Word2Vec from Scratch with NumPy | ⭐⭐ |
🔽 6 tutorials — C#, Python
| Language | Tutorial | Type |
|---|---|---|
C# |
AR App Tutorial for Beginners with Vuforia and Unity 3D | 📹 Video |
C# |
How To Unity ARCore | 📹 Video |
C# |
AR Portal Tutorial with Unity | 📹 Video |
C# |
How to create a Dragon in Augmented Reality in Unity ARCore | 📹 Video |
C# |
How to Augmented Reality AR Tutorial: ARKit Portal to the Upside Down | 📹 Video |
Python |
Augmented Reality with Python and OpenCV | 📝 Article |
🔽 5 tutorials — C#, Go, Nim, Node.js, Python
| Language | Tutorial | Difficulty |
|---|---|---|
C# |
Building a BitTorrent client from scratch in C# | ⭐⭐⭐⭐ |
Go |
Building a BitTorrent client from the ground up in Go | ⭐⭐⭐⭐ |
Nim |
Writing a Bencode Parser | ⭐⭐ |
Node.js |
Write your own bittorrent client | ⭐⭐⭐ |
Python |
A BitTorrent client in Python 3.5 | ⭐⭐⭐ |
🔽 16 tutorials — Go, Java, JavaScript, Kotlin, Python, Rust, TypeScript
| Language | Tutorial | Difficulty |
|---|---|---|
Go |
Building Blockchain in Go | ⭐⭐⭐ |
Go |
Code your own blockchain in less than 200 lines of Go | ⭐⭐ |
Java |
Creating Your First Blockchain with Java | ⭐⭐ |
JavaScript |
A cryptocurrency implementation in less than 1500 lines of code | ⭐⭐⭐ |
JavaScript |
Build your own Blockchain in JavaScript | ⭐⭐ |
JavaScript |
Learn & Build a JavaScript Blockchain | ⭐⭐ |
JavaScript |
Creating a blockchain with JavaScript | ⭐⭐ |
JavaScript |
How To Launch Your Own Production-Ready Cryptocurrency | ⭐⭐⭐⭐ |
JavaScript |
Writing a Blockchain in Node.js | ⭐⭐ |
Kotlin |
Let's implement a cryptocurrency in Kotlin | ⭐⭐⭐ |
Python |
Learn Blockchains by Building One | ⭐⭐ |
Python |
Build your own blockchain: a Python tutorial | ⭐⭐ |
Python |
A Practical Introduction to Blockchain with Python | ⭐⭐ |
Python |
Let's Build the Tiniest Blockchain | ⭐ |
Rust |
Building A Blockchain in Rust & Substrate | ⭐⭐⭐⭐ |
TypeScript |
Naivecoin: a tutorial for building a cryptocurrency | ⭐⭐⭐ |
TypeScript |
NaivecoinStake: cryptocurrency with Proof of Stake | ⭐⭐⭐⭐ |
🔽 14 tutorials — Haskell, Node.js, Python, Rust
| Language | Tutorial | Platform |
|---|---|---|
Haskell |
Roll your own IRC bot | IRC |
Node.js |
Creating a Simple Facebook Messenger AI Bot with API.ai | Messenger |
Node.js |
How to make a responsive telegram bot | Telegram |
Node.js |
Create a Discord bot | Discord |
Node.js |
gifbot - Building a GitHub App | GitHub |
Node.js |
Building A Simple AI Chatbot With Web Speech API And Node.js | Web |
Python |
How to Build Your First Slack Bot with Python | Slack |
Python |
How to build a Slack Bot with Python using Slack Events API | Slack |
Python |
Build a Reddit Bot | |
Python |
How To Make A Reddit Bot | |
Python |
How To Create a Telegram Bot Using Python | Telegram |
Python |
Create a Twitter Bot in Python Using Tweepy | |
Python |
Creating Reddit Bot with Python & PRAW | |
Rust |
A bot for Starcraft in Rust, C or any other language | StarCraft |
🔽 8 tutorials — Go, Nim, Node.js, Rust, Zig
| Language | Tutorial | Difficulty |
|---|---|---|
Go |
Visualize your local git contributions with Go | ⭐⭐ |
Go |
Build a command line app with Go: lolcat | ⭐ |
Go |
Building a cli command with Go: cowsay | ⭐ |
Go |
Go CLI tutorial: fortune clone | ⭐ |
Nim |
Writing a stow alternative to manage dotfiles | ⭐⭐ |
Node.js |
Create a CLI tool in Javascript | ⭐ |
Rust |
Command line apps in Rust | ⭐⭐ |
Rust |
Writing a Command Line Tool in Rust | ⭐⭐ |
Zig |
Build Your Own CLI App in Zig from Scratch | ⭐⭐ |
🔽 14 tutorials — C, C++, C#, Clojure, Crystal, Go, JavaScript, Python, Ruby, Rust
| Language | Tutorial | Type | Difficulty |
|---|---|---|---|
C |
Let's Build a Simple Database | SQL-like | ⭐⭐⭐⭐ |
C++ |
Build Your Own Redis from Scratch | Redis | ⭐⭐⭐⭐ |
C# |
Build Your Own Database | General | ⭐⭐⭐ |
Clojure |
An Archaeology-Inspired Database | Immutable | ⭐⭐⭐ |
Crystal |
Why you should build your own NoSQL Database | NoSQL | ⭐⭐⭐ |
Go |
Build Your Own Database from Scratch: From B+Tree To SQL in 3000 Lines | SQL | ⭐⭐⭐⭐⭐ |
Go |
Code a database in 45 steps: test-driven small coding puzzles | General | ⭐⭐⭐ |
Go |
Build Your Own Redis from Scratch | Redis | ⭐⭐⭐ |
JavaScript |
Dagoba: an in-memory graph database | Graph | ⭐⭐⭐ |
Python |
DBDB: Dog Bed Database | KV Store | ⭐⭐ |
Python |
Write your own miniature Redis with Python | Redis | ⭐⭐ |
Ruby |
Build your own fast, persistent KV store in Ruby | KV Store | ⭐⭐⭐ |
Rust |
Build your own Redis client and server | Redis | ⭐⭐⭐ |
Rust |
Writing a SQLite Clone in Rust | SQL | ⭐⭐⭐⭐ |
🔽 7 tutorials — C, Go, Python, Shell
| Language | Tutorial | Difficulty |
|---|---|---|
C |
Linux containers in 500 lines of code | ⭐⭐⭐⭐ |
Go |
Build Your Own Container Using Less than 100 Lines of Go | ⭐⭐⭐ |
Go |
Building a container from scratch in Go 📹 | ⭐⭐⭐ |
Go |
Container Security Fundamentals | ⭐⭐⭐ |
Python |
A workshop on Linux containers: Rebuild Docker from Scratch | ⭐⭐⭐ |
Python |
A proof-of-concept imitation of Docker, written in 100% Python | ⭐⭐ |
Shell |
Docker implemented in around 100 lines of bash | ⭐⭐ |
🔽 14 tutorials — C, C++, Common Lisp, JavaScript, Python, Rust
| Language | Tutorial | Target | Difficulty |
|---|---|---|---|
C |
Home-grown bytecode interpreters | Bytecode | ⭐⭐⭐ |
C |
Virtual machine in C | VM | ⭐⭐⭐ |
C |
Write your Own Virtual Machine | LC-3 | ⭐⭐⭐ |
C |
Writing a Game Boy emulator, Cinoop | Game Boy | ⭐⭐⭐⭐ |
C++ |
How to write an emulator (CHIP-8 interpreter) | CHIP-8 | ⭐⭐ |
C++ |
Emulation tutorial (CHIP-8 interpreter) | CHIP-8 | ⭐⭐ |
C++ |
Emulation tutorial (GameBoy emulator) | Game Boy | ⭐⭐⭐⭐ |
C++ |
Emulation tutorial (Master System emulator) | Sega MS | ⭐⭐⭐⭐ |
C++ |
NES Emulator From Scratch 📹 | NES | ⭐⭐⭐⭐⭐ |
Common Lisp |
CHIP-8 in Common Lisp | CHIP-8 | ⭐⭐⭐ |
JavaScript |
GameBoy Emulation in JavaScript | Game Boy | ⭐⭐⭐⭐ |
Python |
Emulation Basics: Write your own Chip 8 Emulator/Interpreter | CHIP-8 | ⭐⭐ |
Rust |
0dmg: Learning Rust by building a partial Game Boy emulator | Game Boy | ⭐⭐⭐⭐ |
🔽 14 tutorials — JavaScript
| Language | Tutorial | What You Build | Difficulty |
|---|---|---|---|
JavaScript |
WTF is JSX (Let's Build a JSX Renderer) | JSX Renderer | ⭐⭐⭐ |
JavaScript |
A DIY guide to build your own React | React Clone | ⭐⭐⭐ |
JavaScript |
Building React From Scratch 📹 | React Clone | ⭐⭐⭐ |
JavaScript |
Gooact: React in 160 lines of JavaScript | React | ⭐⭐⭐ |
JavaScript |
Learn how React Reconciler package works | Reconciler | ⭐⭐⭐⭐ |
JavaScript |
Build Yourself a Redux | Redux | ⭐⭐ |
JavaScript |
Let's Write Redux! | Redux | ⭐⭐ |
JavaScript |
Redux: Implementing Store from Scratch 📹 | Redux | ⭐⭐ |
JavaScript |
Build Your own Simplified AngularJS in 200 Lines | Angular | ⭐⭐⭐ |
JavaScript |
Make Your Own AngularJS | Angular | ⭐⭐⭐⭐ |
JavaScript |
How to write your own Virtual DOM | VDOM | ⭐⭐⭐ |
JavaScript |
Building a frontend framework, from scratch, with components | Framework | ⭐⭐⭐ |
JavaScript |
Build your own React | React | ⭐⭐⭐ |
JavaScript |
Building a Custom React Renderer 📹 | Renderer | ⭐⭐⭐⭐ |
🔽 24 tutorials — C, C++, C#, Go, Java, JavaScript, Lua, Python, Ruby, Rust
🔽 7 tutorials — Haskell, JavaScript, Python, Ruby
| Language | Tutorial | Difficulty |
|---|---|---|
Haskell |
Reimplementing "git clone" in Haskell from the bottom up | ⭐⭐⭐⭐⭐ |
JavaScript |
Gitlet | ⭐⭐⭐⭐ |
JavaScript |
Build GIT — Learn GIT | ⭐⭐ |
Python |
Just enough of a Git client to create a repo, commit, and push itself to GitHub | ⭐⭐⭐ |
Python |
Write yourself a Git! | ⭐⭐⭐ |
Python |
ugit: Learn Git Internals by Building Git Yourself | ⭐⭐⭐ |
Ruby |
Rebuilding Git in Ruby | ⭐⭐⭐ |
🔽 4 tutorials — C, Rust
| Language | Tutorial | Difficulty |
|---|---|---|
C |
Malloc is not magic — Implementing your own memory allocator | ⭐⭐⭐⭐ |
C |
Writing a Memory Allocator | ⭐⭐⭐⭐ |
C |
Malloc Tutorial — Building a Memory Allocator in C | ⭐⭐⭐ |
Rust |
Writing a Custom Heap Allocator in Rust | ⭐⭐⭐⭐ |
🔽 6 tutorials — C, Python, Ruby
| Language | Tutorial | Protocol | Difficulty |
|---|---|---|---|
C |
Beej's Guide to Network Programming | TCP/UDP | ⭐⭐ |
C |
Let's code a TCP/IP stack | TCP/IP | ⭐⭐⭐⭐ |
C / Python |
Build your own VPN/Virtual Switch | VPN | ⭐⭐⭐⭐ |
Ruby |
How to build a network stack in Ruby | TCP | ⭐⭐⭐ |
Python |
Building a TCP/IP Stack in Python | TCP/IP | ⭐⭐⭐⭐ |
Rust |
Building a TCP Connection from Scratch 📹 | TCP | ⭐⭐⭐⭐ |
🔽 15 tutorials — C#, F#, Go, JavaScript, Python
| Language | Tutorial | Type | Difficulty |
|---|---|---|---|
C# |
Neural Network OCR | OCR | ⭐⭐⭐ |
F# |
Building Neural Networks in F#: Part 1 | MLP | ⭐⭐⭐ |
Go |
Build a multilayer perceptron with Golang | MLP | ⭐⭐⭐ |
Go |
How to build a simple artificial neural network with Go | MLP | ⭐⭐ |
Go |
Building a Neural Net from Scratch in Go | MLP | ⭐⭐⭐ |
JavaScript |
Neural Networks — The Nature of Code 📹 | Various | ⭐⭐ |
JavaScript |
Neural networks from scratch for JavaScript linguists | Perceptron | ⭐⭐ |
Python |
A Neural Network in 11 lines of Python | Basic | ⭐ |
Python |
Implement a Neural Network from Scratch | MLP | ⭐⭐ |
Python |
Optical Character Recognition (OCR) | OCR | ⭐⭐⭐ |
Python |
Traffic signs classification with a convolutional network | CNN | ⭐⭐⭐ |
Python |
Generate Music using LSTM Neural Network in Keras | LSTM | ⭐⭐⭐ |
Python |
An Introduction to Convolutional Neural Networks | CNN | ⭐⭐ |
Python |
Neural Networks: Zero to Hero 📹 | Full Course | ⭐⭐⭐⭐ |
Python |
SlowTorch: Implementation of PyTorch from the ground up | Framework | ⭐⭐⭐⭐ |
🔽 16 tutorials — Assembly, C, C++, Rust
| Language | Tutorial | Target | Difficulty |
|---|---|---|---|
Assembly |
Writing a Tiny x86 Bootloader | x86 | ⭐⭐⭐⭐ |
Assembly |
Baking Pi – Operating Systems Development | Raspberry Pi | ⭐⭐⭐⭐ |
C |
Building a software and hardware stack for a simple computer from scratch 📹 | Custom | ⭐⭐⭐⭐⭐ |
C |
Operating Systems: From 0 to 1 | x86 | ⭐⭐⭐⭐ |
C |
The little book about OS development | x86 | ⭐⭐⭐ |
C |
Roll your own toy UNIX-clone OS | UNIX | ⭐⭐⭐⭐ |
C |
Kernel 101 – Let's write a Kernel | x86 | ⭐⭐⭐ |
C |
Kernel 201 – Kernel with keyboard and screen support | x86 | ⭐⭐⭐ |
C |
Build a minimal multi-tasking kernel for ARM from scratch | ARM | ⭐⭐⭐⭐ |
C |
How to create an OS from scratch | x86 | ⭐⭐⭐ |
C |
Learning OS development using Linux kernel and Raspberry Pi | RPi | ⭐⭐⭐⭐ |
C |
Operating systems development for Dummies | x86 | ⭐⭐ |
C++ |
Write your own Operating System 📹 | x86 | ⭐⭐⭐⭐ |
C++ |
Writing a Bootloader | x86 | ⭐⭐⭐ |
Rust |
Writing an OS in Rust | x86 | ⭐⭐⭐⭐⭐ |
Rust |
Add RISC-V Rust Operating System Tutorial | RISC-V | ⭐⭐⭐⭐ |
(any) |
Linux from scratch | Linux | ⭐⭐⭐⭐⭐ |
🔽 7 tutorials — C, C++, JavaScript
| Language | Tutorial | Difficulty |
|---|---|---|
C |
Video Game Physics Tutorial | ⭐⭐⭐ |
C++ |
Game physics series by Allen Chou | ⭐⭐⭐⭐ |
C++ |
How to Create a Custom Physics Engine | ⭐⭐⭐ |
C++ |
3D Physics Engine Tutorial 📹 | ⭐⭐⭐⭐ |
JavaScript |
How Physics Engines Work | ⭐⭐ |
JavaScript |
Broad Phase Collision Detection Using Spatial Partitioning | ⭐⭐⭐ |
JavaScript |
Build a simple 2D physics engine for JavaScript games | ⭐⭐ |
🔽 4 tutorials — Verilog, VHDL, Python
| Language | Tutorial | ISA | Difficulty |
|---|---|---|---|
Verilog |
From Blinker to RISC-V | RISC-V | ⭐⭐⭐⭐⭐ |
Python |
Build your own CPU emulator | Custom | ⭐⭐⭐ |
Any |
Nand2Tetris: Building a Modern Computer From First Principles | Hack CPU | ⭐⭐⭐⭐ |
Verilog |
RVfpga: RISC-V Computer for FPGAs | RISC-V | ⭐⭐⭐⭐⭐ |
🔽 30+ tutorials — Assembly, C, C++, Elixir, F#, Go, Haskell, Java, JavaScript, OCaml, Python, Ruby, Rust, Swift, TypeScript
🔽 9 tutorials — C, Go, JavaScript, Perl, Python, Scala
| Language | Tutorial | Approach | Difficulty |
|---|---|---|---|
C |
A Regular Expression Matcher | NFA | ⭐⭐⭐ |
C |
Regular Expression Matching Can Be Simple And Fast | NFA | ⭐⭐⭐ |
Go |
How to build a regex engine from scratch | NFA | ⭐⭐⭐ |
JavaScript |
Build a Regex Engine in Less than 40 Lines of Code | Backtracking | ⭐⭐ |
JavaScript |
How to implement regular expressions in functional javascript using derivatives | Derivatives | ⭐⭐⭐ |
JavaScript |
Implementing a Regular Expression Engine | NFA/DFA | ⭐⭐⭐ |
Perl |
How Regexes Work | Internal | ⭐⭐⭐ |
Python |
Build Your Own Regular Expression Engines: Backtracking, NFA, DFA | All 3 | ⭐⭐⭐⭐ |
Scala |
No Magic: Regular Expressions | NFA | ⭐⭐⭐ |
🔽 8 tutorials — Python, CSS
| Language | Tutorial | Approach | Difficulty |
|---|---|---|---|
CSS |
A search engine in CSS | Bloom Filters | ⭐⭐⭐ |
Python |
Building a search engine using Redis and redis-py | Inverted Index | ⭐⭐ |
Python |
Building a Vector Space Indexing Engine in Python | VSM | ⭐⭐⭐ |
Python |
Building A Python-Based Search Engine 📹 | Inverted Index | ⭐⭐ |
Python |
Making text search learn from feedback | ML-based | ⭐⭐⭐ |
Python |
Finding Important Words in Text Using TF-IDF | TF-IDF | ⭐⭐ |
Python |
Build a Full-Text Search Engine in Python | Inverted Index | ⭐⭐ |
Python |
Building a Search Engine from Scratch | BM25 | ⭐⭐⭐ |
🔽 8 tutorials — C, Go, Rust
| Language | Tutorial | Difficulty |
|---|---|---|
C |
Tutorial — Write a Shell in C | ⭐⭐⭐ |
C |
Let's build a shell! | ⭐⭐ |
C |
Writing a UNIX Shell | ⭐⭐⭐ |
C |
Build Your Own Shell | ⭐⭐⭐ |
C |
Write a shell in C | ⭐⭐ |
Go |
Writing a simple shell in Go | ⭐⭐ |
Rust |
Build Your Own Shell using Rust | ⭐⭐⭐ |
Python |
Building a Simple Shell in Python | ⭐ |
🔽 6 tutorials — JavaScript, Python, Ruby
| Language | Tutorial | Difficulty |
|---|---|---|
JavaScript |
JavaScript template engine in just 20 lines | ⭐ |
JavaScript |
Understanding JavaScript Micro-Templating | ⭐⭐ |
Python |
Approach: Building a toy template engine in Python | ⭐⭐ |
Python |
A Template Engine | ⭐⭐ |
Ruby |
How to write a template engine in less than 30 lines of code | ⭐ |
Go |
Build your own template engine in Go | ⭐⭐ |
🔽 7 tutorials — C, C++, Python, Ruby, Rust
| Language | Tutorial | Difficulty |
|---|---|---|
C |
Build Your Own Text Editor | ⭐⭐⭐ |
C++ |
Designing a Simple Text Editor | ⭐⭐ |
Python |
Python Tutorial: Make Your Own Text Editor 📹 | ⭐⭐ |
Python |
Create a Simple Python Text Editor! | ⭐ |
Ruby |
Build a Collaborative Text Editor Using Rails | ⭐⭐⭐ |
Rust |
Hecto: Build your own text editor in Rust | ⭐⭐⭐ |
JavaScript |
Build a Simple Code Editor with CodeMirror | ⭐⭐ |
🔽 5 tutorials — Python
| Language | Tutorial | Task | Difficulty |
|---|---|---|---|
Python |
Developing a License Plate Recognition System | OCR | ⭐⭐⭐ |
Python |
Building a Facial Recognition Pipeline with Deep Learning | Face ID | ⭐⭐⭐⭐ |
Python |
Object Detection with OpenCV from Scratch | Detection | ⭐⭐⭐ |
Python |
Build a Sign Language Detector from Scratch 📹 | Classification | ⭐⭐⭐ |
Python |
Building an OCR System from Scratch | OCR | ⭐⭐ |
🔽 3 tutorials — C++, JavaScript
| Language | Tutorial | Difficulty |
|---|---|---|
C++ |
Let's Make a Voxel Engine | ⭐⭐⭐⭐ |
JavaScript |
Building a Minecraft Clone in JavaScript 📹 | ⭐⭐⭐ |
Python |
Building a 3D Voxel Engine in Python 📹 | ⭐⭐⭐ |
🔽 5 tutorials — Python, Rust, JavaScript
| Language | Tutorial | Difficulty |
|---|---|---|
Rust |
Let's build a browser engine | ⭐⭐⭐⭐ |
Python |
Browser Engineering | ⭐⭐⭐⭐ |
Python |
Build a Simple Web Browser in Python | ⭐⭐ |
JavaScript |
Build Your Own Browser Rendering Engine | ⭐⭐⭐ |
Rust |
Build a Browser Engine From Scratch | ⭐⭐⭐⭐ |
🔽 12 tutorials — C#, Node.js, PHP, Python, Ruby
| Language | Tutorial | Type | Difficulty |
|---|---|---|---|
C# |
Writing a Web Server from Scratch | HTTP | ⭐⭐⭐ |
Node.js |
Build Your Own Web Server From Scratch In JavaScript | HTTP | ⭐⭐⭐ |
Node.js |
Let's code a web server from scratch with NodeJS Streams | HTTP | ⭐⭐ |
Node.js |
lets-build-express | Express | ⭐⭐⭐ |
PHP |
Writing a webserver in pure PHP | HTTP | ⭐⭐ |
Python |
A Simple Web Server | HTTP | ⭐⭐ |
Python |
Let's Build A Web Server | HTTP | ⭐⭐ |
Python |
Web application from scratch | WSGI | ⭐⭐ |
Python |
Building a basic HTTP Server from scratch in Python | HTTP | ⭐ |
Python |
Implementing a RESTful Web API with Python & Flask | REST | ⭐⭐ |
Ruby |
Building a simple websockets server from scratch in Ruby | WebSocket | ⭐⭐⭐ |
Go |
Building a Web Server in Go | HTTP | ⭐ |
🔽 10 tutorials — Go, Java, Python, Rust
| Language | Tutorial | Pattern | Difficulty |
|---|---|---|---|
Java |
Building Your Own Kafka-like System From Scratch | Pub/Sub | ⭐⭐⭐⭐ |
Go |
Build Your Own Distributed Key-Value Store | Raft | ⭐⭐⭐⭐ |
Go |
Let's Create a Simple Load Balancer | Load Balancing | ⭐⭐ |
Go |
Building a Distributed Cache in Go | Caching | ⭐⭐⭐ |
Python |
Build a Distributed Crawler | Crawling | ⭐⭐⭐ |
Python |
Implementing Raft Consensus Algorithm | Raft | ⭐⭐⭐⭐⭐ |
Rust |
Building a Distributed System with Tokio | Async | ⭐⭐⭐⭐ |
Go |
Build a Consistent Hash Ring | Consistent Hashing | ⭐⭐⭐ |
Python |
Build a Chord DHT from Scratch | DHT | ⭐⭐⭐⭐ |
Go |
Build Your Own Service Discovery | Service Discovery | ⭐⭐⭐⭐ |
🔽 6 tutorials — Go, Java, Node.js, Python
| Language | Tutorial | Type | Difficulty |
|---|---|---|---|
C |
Sol — An MQTT broker from scratch | MQTT | ⭐⭐⭐⭐ |
Go |
Building a Message Queue in Go | Queue | ⭐⭐⭐⭐ |
Java |
Building Your Own Kafka-like System | Kafka | ⭐⭐⭐⭐⭐ |
Node.js |
Build a Synchronization Engine with Node.js and Y.js | CRDT | ⭐⭐⭐⭐ |
Python |
Build a Simple Task Queue with Python | Task Queue | ⭐⭐ |
Rust |
Building a Message Queue in Rust | Queue | ⭐⭐⭐ |
🔽 8 tutorials — C++, Go, Python, Rust
| Language | Tutorial | Storage | Difficulty |
|---|---|---|---|
C++ |
Build Your Own Redis from Scratch | In-memory | ⭐⭐⭐⭐ |
Go |
Build a Simple KV Store in Go | Bitcask | ⭐⭐⭐ |
Go |
Build Your Own Redis from Scratch — Go Edition | In-memory | ⭐⭐⭐ |
Python |
Write your own miniature Redis with Python | In-memory | ⭐⭐ |
Ruby |
Build your own fast, persistent KV store in Ruby | Persistent | ⭐⭐⭐ |
Rust |
Build your own Redis client and server | In-memory | ⭐⭐⭐ |
Rust |
Building a Persistent Key-Value Store in Rust | LSM Tree | ⭐⭐⭐⭐ |
Go |
A Tour of Building a Key-Value Store | B-Tree | ⭐⭐⭐⭐ |
🔽 6 tutorials — Node.js, Python, Ruby, Go
| Language | Tutorial | Protocol | Difficulty |
|---|---|---|---|
Node.js |
Building A Simple Single Sign On (SSO) Server From Scratch In Node.js | SSO | ⭐⭐⭐ |
Go |
Build Your Own OAuth2 Server | OAuth2 | ⭐⭐⭐ |
Python |
Building an OAuth2 Server with Python | OAuth2 | ⭐⭐⭐ |
Ruby |
Implementing OAuth from Scratch | OAuth2 | ⭐⭐⭐ |
Node.js |
Build JWT Authentication from Scratch | JWT | ⭐⭐ |
Python |
Building a SAML SSO System from Scratch | SAML | ⭐⭐⭐⭐ |
🔽 5 tutorials — C, Go, Python, Rust, TypeScript
| Language | Tutorial | Difficulty |
|---|---|---|
C |
Writing a WebAssembly Interpreter | ⭐⭐⭐⭐ |
Go |
Writing a WebAssembly VM in Go | ⭐⭐⭐⭐ |
Rust |
Writing a WebAssembly Interpreter in Rust | ⭐⭐⭐⭐⭐ |
TypeScript |
Build your own WebAssembly Compiler | ⭐⭐⭐⭐ |
Python |
Understanding WebAssembly by Building a Tiny Interpreter | ⭐⭐⭐ |
🔽 4 tutorials — JavaScript, Python, Rust
| Language | Tutorial | Difficulty |
|---|---|---|
TypeScript |
Tiny Package Manager: Learns how npm or Yarn works | ⭐⭐⭐ |
JavaScript |
Build Your Own Module Bundler — Minipack | ⭐⭐⭐ |
Python |
How pip works — Build a mini pip | ⭐⭐ |
Rust |
Building a Package Manager in Rust | ⭐⭐⭐⭐ |
🔽 40+ tutorials — Various languages
Curated paths to guide your learning journey
🔽 Path 1: Systems Programmer
1. ✅ Write a Shell in C
2. ✅ Build a Memory Allocator
3. ✅ Write a Virtual Machine
4. ✅ Build a Simple Database
5. ✅ Write an Operating System Kernel
6. ✅ Build a Compiler/Interpreter
7. ✅ Write an OS in Rust
🔽 Path 2: AI / ML Engineer
1. ✅ A Neural Network in 11 lines of Python
2. ✅ Implement a Neural Network from Scratch
3. ✅ Build a CNN from scratch
4. ✅ Neural Networks: Zero to Hero (Karpathy)
5. ✅ Build GPT-2 from Scratch
6. ✅ Build a RAG System
7. ✅ Build an LLM from Scratch
🔽 Path 3: Web Developer
1. ✅ Build your own React
2. ✅ Build Yourself a Redux
3. ✅ Let's Build A Web Server
4. ✅ Build Your Own Web Server From Scratch In JavaScript
5. ✅ Build a Full-Text Search Engine
6. ✅ Building A Simple Single Sign On (SSO) Server
7. ✅ Build Your Own Module Bundler
🔽 Path 4: Game Developer
1. ✅ Think like a programmer: Build Snake
2. ✅ How to Make Flappy Bird in HTML5 With Phaser
3. ✅ Breakout — LearnOpenGL
4. ✅ Beginning Game Programming v2.0
5. ✅ Space Invaders from Scratch
6. ✅ Handmade Hero
7. ✅ Code a 2D Game Engine
🔽 Path 5: Blockchain Developer
1. ✅ Let's Build the Tiniest Blockchain
2. ✅ Learn Blockchains by Building One
3. ✅ Build your own Blockchain in JavaScript
4. ✅ Building Blockchain in Go
5. ✅ Naivecoin: a tutorial for building a cryptocurrency
6. ✅ Building A Blockchain in Rust & Substrate
7. ✅ NaivecoinStake: Proof of Stake
Contributions make this collection better for everyone! See CONTRIBUTING.md for full guidelines.
Quick guide:
- 🍴 Fork this repository
- ➕ Add your tutorial in the correct category (maintain alphabetical order by language)
- ✅ Ensure the tutorial is step-by-step and builds something meaningful from scratch
- 🔃 Open a Pull Request with a brief description
| File | Description |
|---|---|
| CONTRIBUTING.md | Contribution guidelines and standards |
| LEARNING_PATHS.md | Curated learning paths by domain |
| CODE_OF_CONDUCT.md | Community standards |
Curated, maintained, and improved by Vignesh Warrier. Built for builders — people who learn by creating.
This work is dedicated to the public domain under CC0 1.0 Universal.
You are free to copy, modify, distribute and perform the work without restriction.