Skip to content

vignesh2027/code_crafterz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CodeCrafterz Banner
Typing SVG



Made by Vignesh GitHub Stars License CC0 PRs Welcome Website


Stats

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

— 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.

divider

🗺️ Navigate

divider

🌐 Live Website

👉 vignesh2027.github.io/code_crafterz 👈

Full interactive site with live search, category filters, and beautiful animations

divider

🖥️ 3D Renderer

🔽 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 ⭐⭐

🤖 AI Model

🔽 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 ⭐⭐

🕶️ Augmented Reality

🔽 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

🔗 BitTorrent Client

🔽 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 ⭐⭐⭐

⛓️ Blockchain / Cryptocurrency

🔽 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 ⭐⭐⭐⭐

🤖 Bot

🔽 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 Reddit
Python How To Make A Reddit Bot 📹 Reddit
Python How To Create a Telegram Bot Using Python Telegram
Python Create a Twitter Bot in Python Using Tweepy Twitter
Python Creating Reddit Bot with Python & PRAW 📹 Reddit
Rust A bot for Starcraft in Rust, C or any other language StarCraft

🖥️ Command-Line Tool

🔽 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 ⭐⭐

🗄️ Database

🔽 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 ⭐⭐⭐⭐

🐳 Docker / Container

🔽 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 ⭐⭐

💻 Emulator / Virtual Machine

🔽 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 ⭐⭐⭐⭐

⚛️ Front-end Framework / Library

🔽 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 ⭐⭐⭐⭐

🎮 Game

🔽 24 tutorials — C, C++, C#, Go, Java, JavaScript, Lua, Python, Ruby, Rust
Language Tutorial Genre Difficulty
C Handmade Hero Platformer ⭐⭐⭐⭐⭐
C How to Program an NES game in C NES ⭐⭐⭐⭐
C Chess Engine In C 📹 Chess ⭐⭐⭐⭐
C Let's Make: Dangerous Dave 📹 Platformer ⭐⭐⭐
C Learn Video Game Programming in C 📹 Various ⭐⭐⭐
C Coding a Rogue/Nethack RPG in C 📹 RPG ⭐⭐⭐
C On Tetris and Reimplementation Puzzle ⭐⭐
C++ Breakout — LearnOpenGL Arcade ⭐⭐⭐
C++ Beginning Game Programming v2.0 Various ⭐⭐
C++ Tetris tutorial in C++ — game logic for beginners Puzzle ⭐⭐
C++ Space Invaders from Scratch Arcade ⭐⭐
C# Learn C# by Building a Simple RPG RPG ⭐⭐
C# Creating a Roguelike Game in C# Roguelike ⭐⭐⭐
C# Build a C#/WPF RPG RPG ⭐⭐⭐
Go Games With Go 📹 Various ⭐⭐
Java Code a 2D Game Engine using Java — Full Course for Beginners 📹 Engine ⭐⭐⭐⭐
Java 3D Game Development with LWJGL 3 3D ⭐⭐⭐⭐
JavaScript 2D breakout game using Phaser Arcade
JavaScript How to Make Flappy Bird in HTML5 With Phaser Arcade
JavaScript Developing Games with React, Redux, and SVG Various ⭐⭐
JavaScript Think like a programmer: Build Snake Snake
Lua BYTEPATH Shooter ⭐⭐⭐
Python Developing Games With PyGame Various ⭐⭐
Python Making Games with Python & Pygame Various ⭐⭐
Python Roguelike Tutorial Revised Roguelike ⭐⭐
Ruby Developing Games With Ruby Various ⭐⭐
Rust Adventures in Rust: A Basic 2D Game Various ⭐⭐⭐
Rust Roguelike Tutorial in Rust + tcod Roguelike ⭐⭐⭐

📦 Git

🔽 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 ⭐⭐⭐

🧠 Memory Allocator

🔽 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 ⭐⭐⭐⭐

🌐 Network Stack

🔽 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 ⭐⭐⭐⭐

🧬 Neural Network

🔽 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 ⭐⭐⭐⭐

🖥️ Operating System

🔽 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 ⭐⭐⭐⭐⭐

⚙️ Physics Engine

🔽 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 ⭐⭐

🔧 Processor / CPU

🔽 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 ⭐⭐⭐⭐⭐

🗣️ Programming Language

🔽 30+ tutorials — Assembly, C, C++, Elixir, F#, Go, Haskell, Java, JavaScript, OCaml, Python, Ruby, Rust, Swift, TypeScript
Language Tutorial What You Build Difficulty
(any) mal — Make a Lisp Lisp ⭐⭐⭐
Assembly Jonesforth Forth ⭐⭐⭐⭐⭐
C Baby's First Garbage Collector GC ⭐⭐⭐
C Build Your Own Lisp Lisp ⭐⭐⭐
C Writing a Simple Garbage Collector in C GC ⭐⭐⭐
C C interpreter that interprets itself C ⭐⭐⭐⭐
C A journey explaining how to build a compiler from scratch C ⭐⭐⭐⭐⭐
C++ Writing Your Own Toy Compiler Using Flex Compiler ⭐⭐⭐⭐
C++ How to Create a Compiler 📹 Compiler ⭐⭐⭐
C++ Kaleidoscope: Implementing a Language with LLVM JIT ⭐⭐⭐⭐
Elixir Demystifying compilers by writing your own 📹 Compiler ⭐⭐⭐
F# Understanding Parser Combinators Parser ⭐⭐⭐
Go The Super Tiny Compiler Compiler ⭐⭐
Go Lexical Scanning in Go 📹 Lexer ⭐⭐⭐
Haskell Let's Build a Compiler Compiler ⭐⭐⭐
Haskell Write You a Haskell Haskell ⭐⭐⭐⭐⭐
Haskell Write Yourself a Scheme in 48 Hours Scheme ⭐⭐⭐⭐
Haskell Write You A Scheme Scheme ⭐⭐⭐⭐
Java Crafting Interpreters Lox ⭐⭐⭐⭐
Java Creating JVM Language JVM Lang ⭐⭐⭐⭐
JavaScript The Super Tiny Compiler Compiler ⭐⭐
JavaScript The Super Tiny Interpreter Interpreter ⭐⭐
JavaScript Little Lisp interpreter Lisp ⭐⭐
JavaScript How to implement a programming language in JavaScript General ⭐⭐⭐
OCaml Writing a C Compiler C ⭐⭐⭐⭐
Pascal Let's Build a Compiler Compiler ⭐⭐⭐
Python A Python Interpreter Written in Python Python ⭐⭐⭐
Python How to Write a Lisp Interpreter in Python Lisp ⭐⭐
Python Let's Build A Simple Interpreter Pascal ⭐⭐
Python From Source Code To Machine Code: Build Your Own Compiler Compiler ⭐⭐⭐⭐
Racket Beautiful Racket: How to make your own programming languages DSL ⭐⭐⭐
Ruby A Compiler From Scratch Compiler ⭐⭐⭐
Rust Learning Parser Combinators With Rust Parser ⭐⭐⭐
Swift Building a LISP from scratch with Swift Lisp ⭐⭐⭐
TypeScript Build your own WebAssembly Compiler WASM ⭐⭐⭐⭐

🔍 Regex Engine

🔽 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 ⭐⭐⭐

🔎 Search Engine

🔽 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 ⭐⭐⭐

🐚 Shell

🔽 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

📄 Template Engine

🔽 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 ⭐⭐

✏️ Text Editor

🔽 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 ⭐⭐

👁️ Visual Recognition System

🔽 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 ⭐⭐

🧱 Voxel Engine

🔽 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 📹 ⭐⭐⭐

🌐 Web Browser

🔽 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 ⭐⭐⭐⭐

🖧 Web Server

🔽 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

🔀 Distributed Systems

🔽 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 ⭐⭐⭐⭐

📨 Message Queue / Event Bus

🔽 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 ⭐⭐⭐

🔑 Key-Value Store

🔽 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 ⭐⭐⭐⭐

🔐 Auth System / OAuth

🔽 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 ⭐⭐⭐⭐

🌀 WebAssembly Runtime

🔽 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 ⭐⭐⭐

📦 Package Manager

🔽 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 ⭐⭐⭐⭐

🗺️ Uncategorized

🔽 40+ tutorials — Various languages
Language Tutorial Difficulty
(any) From NAND to Tetris: Building a Modern Computer From First Principles ⭐⭐⭐⭐
C How to Write a Video Player in Less Than 1000 Lines ⭐⭐⭐
C Learn how to write a hash table in C ⭐⭐
C The very basics of a terminal emulator ⭐⭐⭐
C Write a System Call ⭐⭐⭐
C Sol — An MQTT broker from scratch ⭐⭐⭐⭐
C++ Build your own VR headset for $200 ⭐⭐⭐⭐
C++ How X Window Managers work and how to write one ⭐⭐⭐⭐
C++ Writing a Linux Debugger ⭐⭐⭐⭐
C++ How a 64k intro is made ⭐⭐⭐⭐
C++ Make your own Game Engine 📹 ⭐⭐⭐⭐
C# C# Networking: Create a TCP chat server, TCP games, UDP Pong and more ⭐⭐⭐
C# Loading and rendering 3D skeletal animations from scratch in C# and GLSL ⭐⭐⭐⭐
Clojure Building a spell-checker ⭐⭐
Go Build A Simple Terminal Emulator In 100 Lines of Golang ⭐⭐
Go Video Encoding from Scratch ⭐⭐⭐⭐
Go Build a DNS Server in Golang ⭐⭐⭐
Java How to Build an Android Reddit App 📹 ⭐⭐
JavaScript Learn JavaScript Promises by Building a Promise from Scratch ⭐⭐
JavaScript Implementing promises from scratch (TDD way) ⭐⭐
JavaScript Implement your own call(), apply() and bind() in JavaScript
JavaScript JavaScript Algorithms and Data Structures ⭐⭐
JavaScript Build a ride hailing app with React Native ⭐⭐⭐
JavaScript Build Your Own AdBlocker in (Literally) 10 Minutes
Kotlin Build Your Own Cache ⭐⭐
Lua Building a CDN from Scratch to Learn about CDN ⭐⭐⭐⭐
Nim Writing a Redis Protocol Parser ⭐⭐
Nim Writing a Build system ⭐⭐
Nim Writing a MiniTest Framework
Nim Writing a DMIDecode Parser
Nim Writing a URL Shortening Service
Node.js Build a static site generator in 40 lines with Node.js
Node.js Build a DNS Server in Node.js ⭐⭐
PHP Write your own MVC from scratch in PHP ⭐⭐
PHP Make your own blog
PHP Modern PHP Without a Framework ⭐⭐
PHP Code a Web Search Engine in PHP ⭐⭐
Python Build a Deep Learning Library 📹 ⭐⭐⭐⭐
Python How to Build a Mobile Document Scanner in Just 5 Minutes ⭐⭐
Python Continuous Integration System ⭐⭐⭐
Python Recommender Systems in Python: Beginner Tutorial ⭐⭐
Python Write SMS-spam detector with Scikit-learn
Python Stock Market Predictions with LSTM in Python ⭐⭐⭐
Python Building a simple Generative Adversarial Network (GAN) using Tensorflow ⭐⭐⭐
Python Learn ML Algorithms by coding: Decision Trees ⭐⭐
Python JSON Decoding Algorithm
Python Build your own Git plugin with python ⭐⭐
Ruby A Pedometer in the Real World ⭐⭐
Ruby Creating a Linux Desktop application with Ruby ⭐⭐
Rust Building a DNS server in Rust ⭐⭐⭐
Rust Writing Scalable Chat Service from Scratch ⭐⭐⭐
Rust WebGL + Rust: Basic Water Tutorial ⭐⭐⭐

divider

🗺️ Learning Paths

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

divider

🌍 Languages Covered

Languages

divider

🤝 Contributing

Contributions make this collection better for everyone! See CONTRIBUTING.md for full guidelines.

Quick guide:

  1. 🍴 Fork this repository
  2. Add your tutorial in the correct category (maintain alphabetical order by language)
  3. Ensure the tutorial is step-by-step and builds something meaningful from scratch
  4. 🔃 Open a Pull Request with a brief description

divider

📄 Related Docs

File Description
CONTRIBUTING.md Contribution guidelines and standards
LEARNING_PATHS.md Curated learning paths by domain
CODE_OF_CONDUCT.md Community standards

divider

👨‍💻 Author

Vignesh Warrier

Vignesh Warrier

GitHub Website

Curated, maintained, and improved by Vignesh Warrier. Built for builders — people who learn by creating.

divider

📜 License

CC0

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.


If this helped you build something cool, give it a ⭐

About

Build Your Own <Technology> — 200+ curated step-by-step guides to recreate your favorite tech from scratch. Learn by building.

Topics

Resources

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages