- 3D Renderer
- Augmented Reality
- BitTorrent Client
- Blockchain / Cryptocurrency
- Bot
- Command-Line Tool
- DNS
- Database
- Docker
- Emulator / Virtual Machine
- Front-end Framework / Library
- Game
- Git
- Network Stack
- Neural Network
- Operating System
- Physics Engine
- Programming Language
- Proxy
- Regex Engine
- Search Engine
- Shell
- Template Engine
- Text Editor
- Visual Recognition System
- Voxel Engine
- Web Search Engine
- Web Server
- Uncategorized
- 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#: Loading and rendering 3D skeletal animations from scratch in C# and GLSL
- C# / TypeScript / JavaScript: Learning how to write a 3D soft engine from scratch in C#, TypeScript or JavaScript
- Java / JavaScript: Build your own 3D renderer
- Java: How to create your own simple 3D render engine in pure Java
- JavaScript / Pseudocode: Computer Graphics from scratch
- Python: A 3D Modeller
- C#: How To: Augmented Reality 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
- 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
- (any): DeFo Developer roadmap
- ATS: Functional Blockchain
- C#: Programming The Blockchain in C#
- C#: Learn Blockchain by code
- Crystal: Write your own blockchain and PoW algorithm using Crystal
- Dockerfile: Dockerize a crypto miner
- Go: Building Blockchain in Go
- Go: Code your own blockchain in less than 200 lines of Go
- Go: Building a Blockchain in Golang [video]
- Java: A Simple Implementation of Blockchain
- 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: Build Your First Blockchain App Using Ethereum Smart Contracts and Solidity_
- JavaScript: Learn & Build a JavaScript Blockchain
- JavaScript: Creating a blockchain with JavaScript
- JavaScript: How To Launch Your Own Production-Ready Cryptocurrency
- 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
- Ruby: Programming Blockchains Step-by-Step (Manuscripts Book Edition)
- Rust: Building Blockchain in Rust[Video]
- Scala: How to build a simple actor-based blockchain
- Solidity: Lets create our first HelloWorld dApp
- TypeScript: Naivecoin: a tutorial for building a cryptocurrency
- TypeScript: NaivecoinStake: a tutorial for building a cryptocurrency with the Proof of Stake consensus
- Go: Build a Telegram Bot in Go in 9 minutes
- Go: Creating a Twitter Bot in Go
- Go: How to make a responsive telegram bot
- Haskell: Roll your own IRC bot
- Java: How To Make a Scary Russian Twitter Bot With Java
- Node.js: Build a hashtag tweet viewing tool with Node.js & the Twitter API
- Node.js: Creating a Simple Facebook Messenger AI Bot with API.ai in Node.js
- Node.js: How to make a responsive telegram bot
- Node.js: Create a Discord bot
- Node.js: gifbot - Building a GitHub App
- Node.js: Building A Simple AI Chatbot With Web Speech API And Node.js
- Node.js: How to build a SlackBot with Node.js and SlackBots.js
- Python: How to Build Your First Slack Bot with Python
- Python: How to build a Slack Bot with Python using Slack Events API & Django under 20 minute
- Python: Build a Reddit Bot
- Python: How To Make A Reddit Bot [video]
- Python: How To Create a Telegram Bot Using Python
- Python: Create a Twitter Bot in Python Using Tweepy
- Python: Creating Reddit Bot with Python & PRAW [video]
- Python: Bot for vaccine booking from COWIN website (COVID VACCINE SHOTS
- R: Build A Cryptocurrency Trading Bot with R
- Rust: A bot for Starcraft in Rust, C or any other language
- Node.js: _Build a Retweeting Twitter Bot
- C: Rewriting the cat command from scratch [video]
- 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: How to create a real-world Node CLI app with Node
- C: Let's Build a Simple Database
- C++: Implementing a Key-Value Store
- C#: Build Your Own Database
- Clojure: An Archaeology-Inspired Database
- Crystal: Why you should build your own NoSQL Database
- Go: Writing a SQL database from scratch in Go
- JavaScript: Dagoba: an in-memory graph database
- JavaScript: Build your own ORM
- Python: DBDB: Dog Bed Database
- Python: Build your own ORM
- Python: Write your own miniature Redis with Python
- Ruby: Redis in Ruby
- 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 [video]
- 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
- C: Virtual machine in C
- C: Write your Own Virtual Machine
- C: Writing a Game Boy emulator, Cinoop
- C++: How to write an emulator (CHIP-8 interpreter)
- C++: Emulation tutorial (CHIP-8 interpreter)
- C++: Emulation tutorial (GameBoy emulator)
- C++: Emulation tutorial (Master System emulator)
- C++: NES Emulator From Scratch [video]
- Common Lisp: CHIP-8 in Common Lisp
- Go: Emulating linux/AMD64 userland
- Go: HOW TO WRITE A (TOY) JVM
- JavaScript: Writing an x86 emulator from scratch in JavaScript
- JavaScript: GameBoy Emulation in JavaScript
- Python: Emulation Basics: Write your own Chip 8 Emulator/Interpreter
- JavaScript: WTF is JSX (Let's Build a JSX Renderer)
- JavaScript: A DIY guide to build your own React
- JavaScript: Building React From Scratch [video]
- JavaScript: Gooact: React in 160 lines of JavaScript
- JavaScript: React Internals
- JavaScript: Learn how React Reconciler package works by building your own lightweight React DOM
- JavaScript: Build Yourself a Redux
- JavaScript: Let’s Write Redux!
- JavaScript: Redux: Implementing Store from Scratch [video]
- JavaScript: Build Your own Simplified AngularJS in 200 Lines of JavaScript
- JavaScript: Make Your Own AngularJS
- JavaScript: How to write your own Virtual DOM
- JavaScript: Building a frontend framework, from scratch, with components (templating, state, VDOM)
- JavaScript: Build your own React
- JavaScript: Build your own React Hook
- JavaScript: Building a Custom React Renderer [video]
- Javascript: Reinventing Mobx [video]
- Javascript: Reinventing RxJS [video]
- Typescript: Build the operators from RxJS from scratch
- Assembly: Write The Old-School Fire Effect and Bare-Metal Programming in C and Assembly
- C: Handmade Hero
- C: How to Program an NES game in C
- C: How to program a text adventure in C
- C: Chess Engine In C [video]
- C: Let's Make: Dangerous Dave [video]
- C: Learn Video Game Programming in C[video]
- C: Coding A Sudoku Solver in C [video]
- C: Coding a Rogue/Nethack RPG in C [video]
- C: On Tetris and Reimplementation
- C: Othello Game in C
- C++: Breakout
- C++: Beginning Game Programming v2.0
- C++: Tetris tutorial in C++ platform independent focused in game logic for beginners
- C++: Remaking Cavestory in C++ [video]
- C++: Reconstructing Cave Story [video]
- C++: Space Invaders from Scratch
- C#: Learn C# by Building a Simple RPG
- C#: Creating a Roguelike Game in C#
- C#: Build a C#/WPF RPG
- Go: Games With Go [video]
- Java: 3D Game Development with LWJGL 3
- JavaScript: 2D breakout game using Phaser
- JavaScript: How to Make Flappy Bird in HTML5 With Phaser
- JavaScript: Developing Games with React, Redux, and SVG
- JavaScript: Build your own 8-Ball Pool game from scratch [video]
- JavaScript: How to Make Your First Roguelike
- JavaScript: Think like a programmer: How to build Snake using only JavaScript, HTML & CSS
- Lua: BYTEPATH
- Python: Developing Games With PyGame
- Python: Making Games with Python & Pygame [pdf]
- Python: Roguelike Tutorial Revised
- Ruby: Developing Games With Ruby
- Ruby: Ruby Snake
- Rust: Adventures in Rust: A Basic 2D Game
- Rust: Roguelike Tutorial in Rust + tcod
- C#: C# Networking: Create a TCP chater server, TCP games, UDP Pong and more
- 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
- Ruby: Building Git
- Java: Your Own Proxy Server
- Proxy server: Building your own proxy server
- Proxy server: Guide to Make Your Own Proxy for More IPs
- C: Beej's Guide to Network Programming
- C: Let's code a TCP/IP stack
- Ruby: How to build a network stack in Ruby
- Python: Network Programming in Python
- (any): AI Roadmap
- C#: Neural Network OCR
- F#: Building Neural Networks in F#
- Go: Build a multilayer perceptron with Golang
- Go: How to build a simple artificial neural network with Go
- Go: Building a Neural Net from Scratch in Go
- JavaScript / Java: Neural Networks - The Nature of Code [video]
- JavaScript: Neural Network implementation in JavaScript, by an example
- JavaScript: Neural networks from scratch for JavaScript linguists (Part1 — The Perceptron)
- Python: A Neural Network in 11 lines of Python
- Python: A Simple Content-Based Recommendation Engine in Python
- Python: An Introduction to Convolutional Neural Networks
- Python: _An Introduction to RLU in Artificial Neural Networks
- Python: Build a Deep Learning Library [video]
- Python: Build K-means clustering algorithm from scratch
- Python: Building a simple Generative Adversial Network (GAN) using Tensorflow
- Python: Deep Learning Framework From Scratch: Theory and Implementation
- Python: Generate Music using LSTM Neural Network in Keras
- Python: Implement a Neural Network from Scratch
- Python: Implement a Convolutional Neural Network from Scratch
- Python: Learn ML Algorithms by coding: Decision Trees
- Python: Optical Character Recognition (OCR)
- Python: Recommender Systems in Python: Beginner Tutorial
- Python: Stock Market Predictions with LSTM in Python
- Python: Traffic signs classification with a convolutional network
- Python: Write SMS-spam detector with Scikit-learn
- Python: ML Leaning tutorial for beginners
- Assembly: Bare metal programming
- Assembly: Baking Pi – Operating Systems Development
- Assembly: Writing a Tiny x86 Bootloader
- C: Building a software and hardware stack for a simple computer from scratch [video]
- C: Operating Systems: From 0 to 1
- C: The little book about OS development
- C: Roll your own toy UNIX-clone OS
- C: Kernel 101 – Let’s write a Kernel
- C: Kernel 201 – Let’s write a Kernel with keyboard and screen support
- C: Build a minimal multi-tasking kernel for ARM from scratch
- C: How to create an OS from scratch
- C: Malloc tutorial
- C: Hack the virtual memory
- C: Learning operating system development using Linux kernel and Raspberry Pi
- C: Operating systems development for Dummies
- C: OS Development using the Linux Kernel
- C: The very basics of a terminal emulator
- C: Write a Bootloader from Scratch
- C++: Write your own Operating System [video]
- C++: Writing a Bootloader
- Rust: Build a terminal emulator from scratch
- Rust: Writing an OS in Rust
- Rust: The Adventures of OS: Making a RISC-V Operating System using Rust
- 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 [video]
- JavaScript: How Physics Engines Work
- JavaScript: Broad Phase Collision Detection Using Spatial Partitioning
- JavaScript: Build a simple 2D physics engine for JavaScript games
- (any): mal - Make a Lisp
- Assembly: Jonesforth
- C: Baby's First Garbage Collector
- C: Build Your Own Lisp: Learn C and build your own programming language in 1000 lines of code
- C: Writing a Simple Garbage Collector in C
- C: C interpreter that interprets itself.
- C: A C & x86 version of the "Let's Build a Compiler" by Jack Crenshaw
- C: A journey explaining how to build a compiler from scratch
- C: Compiling a Lisp (Lisp compiler to x86-64 machine code)
- C: Crafting Interpreters: A Bytecode Virtual Machine
- C++: Writing Your Own Toy Compiler Using Flex
- C++: How to Create a Compiler [video]
- C++: Kaleidoscope: Implementing a Language with LLVM
- C#: Monaidc parser combinators
- F#: Understanding Parser Combinators
- Elixir: Demystifying compilers by writing your own [video]
- Go: The Super Tiny Compiler
- Go: Lexical Scanning in Go [video]
- Go: Build your Own Yacc
- Haskell: Let's Build a Compiler
- Haskell: Write You a Haskell
- Haskell: Write Yourself a Scheme in 48 Hours
- Haskell: Write You A Scheme
- Java: Build a Tiny Compiler in Java
- Java: Crafting interpreters: A handbook for making programming languages
- Java: Creating JVM Language
- JavaScript: The Super Tiny Compiler
- JavaScript: The Super Tiny Interpreter
- JavaScript: Little Lisp interpreter
- JavaScript: How to implement a programming language in JavaScript
- JavaScript: Writing a lisp compiler from scratch in JavaScript
- OCaml: Writing a C Compiler
- OCaml: Writing a Lisp, the series
- Pascal: Let's Build a Compiler
- Python: A Python Interpreter Written in Python
- Python: lisp.py: Make your own Lisp interpreter
- Python: How to Write a Lisp Interpreter in Python
- Python: Let’s Build A Simple Interpreter
- Python: Make Your Own Simple Interpreted Programming Language [video]
- Racket: Beautiful Racket: How to make your own programming languages with Racket
- Ruby: A Compiler From Scratch
- Ruby: Markdown compiler from scratch in Ruby
- Rust: So You Want to Build a Language VM
- Rust: Learning Parser Combinators With Rust
- Swift: Building a LISP from scratch with Swift
- TypeScript: Build your own WebAssembly Compiler
- C: A Regular Expression Matcher
- C: Regular Expression Matching Can Be Simple And Fast
- JavaScript: Build a Regex Engine in Less than 40 Lines of Code
- JavaScript: How to implement regular expressions in functional javascript using derivatives
- JavaScript: Implementing a Regular Expression Engine
- Perl: How Regexes Work
- Scala: No Magic: Regular Expressions
- CSS: A search engine in CSS
- Python: Building a search engine using Redis and redis-py
- Python: Building a Vector Space Indexing Engine in Python
- Python: Building A Python-Based Search Engine [video]
- Python: Making text search learn from feedback
- Python: Finding Important Words in Text Using TF-IDF
- C: Tutorial - Write a Shell in C
- C: Let's build a shell!
- C: Writing a UNIX Shell
- C: Build Your Own Shell
- Go: Writing a simple shell in Go
- Rust: Build Your Own Shell using Rust
- 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
- Python: Writing a Jinja-inspired template library in Python
- Ruby: How to write a template engine in less than 30 lines of code
- C: Build Your Own Text Editor
- C++: Designing a Simple Text Editor
- Python: Python Tutorial: Make Your Own Text Editor [video]
- Python: Create a Simple Python Text Editor!
- Ruby: Build a Collaborative Text Editor Using Rails
- Rust: Build Your Own Text Editor
- Python: Developing a License Plate Recognition System with Machine Learning in Python
- Python: Building a Facial Recognition Pipeline with Deep Learning in Tensorflow
- Python: Building an App to Classify Dogs Using fastai and Streamlit
- C++: Let's Make a Voxel Engine
- Java: Let's make a voxel engine [video]
- Java: Java Voxel Engine Tutorial [video]
- C#: Writing a Web Server from Scratch
- Node.js: Let's code a web server from scratch with NodeJS Streams
- Node.js: lets-build-express
- Node.js: Let's build a NodeJS micro framework
- Node.js: Writing a web server from scratch
- PHP: Writing a webserver in pure PHP
- Python: A Simple Web Server
- Python: Let’s Build A Web Server.
- Python: Web application from scratch
- Python: Building a basic HTTP Server from scratch in Python
- Python: Implementing a RESTful Web API with Python & Flask
- Python: The Flask Mega-Tutorial
- Ruby: Building a simple websockets server from scratch in Ruby
- Rust: Building a Multithreaded Webserver in Rust
- Rust: Let's build a browser engine
- (any): Microcontrollers, Design and Implementation
- (any): From NAND to Tetris: Building a Modern Computer From First Principles
- Alloy: The Same-Origin Policy
- C: A list of tutorials that explain how to create small and medium projects with C
- C: How to Write a Video Player in Less Than 1000 Lines
- C: Implement your own Zip in C
- C: Learn how to write a hash table in C
- C: Write a System Call
- C: Sol - An MQTT broker from scratch
- C: Write BigInt calculator in C
- 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
- Clojure: Building a spell-checker
- F#: Write your own Excel in 100 lines of F#
- Go, Let's Create a Simple Load Balancer
- Java: How to Build an Android Reddit App [video]
- JavaScript: Build Your Own Module Bundler - Minipack
- 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() method in JavaScript
- JavaScript: JavaScript Algorithms and Data Structures
- JavaScript: Build a ride hailing app with React Native
- Kotlin: Build Your Own Cache
- Nim: Writing a Redis Protocol Parser
- Nim: Writing a Build system
- Nim: Writing a MiniTest Framework
- Nim: Writing a DMIDecode Parser
- Nim: Writing a INI Parser
- Nim: Writing a Link Checker
- Nim: Writing a URL Shortening Service
- Node.js: Build a static site generator in 40 lines with Node.js
- Node.js: Building A Simple Single Sign On(SSO) Server And Solution From Scratch In Node.js.
- PHP: Advanced PHP MVC Blog System [video]
- PHP: Create your first composer packagist package: Learns how php composer works under the hood
- PHP: Write your own MVC from scratch in PHP
- PHP: Make your own blog
- PHP: Modern PHP Without a Framework
- Python: How to Build a Kick-Ass Mobile Document Scanner in Just 5 Minutes
- Python: Continuous Integration System
- Python: DIY Async Web Framework: Learn how async frameworks work by writing one from scratch
- Python: Build your own error-correction fountain code with Luby Transform Codes
- Python: JSON Decoding Algorithm
- 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
- TypeScript: Tiny Package Manager: Learns how npm or Yarn works
- Contributions are very welcome: Submit tutorial
- Help me to review pending submissions by leaving comments and "reactions"
To the extent possible under law, Daniel Stefanovic has waived all copyright and related or neighboring rights to this work.