Table of contents
- 3D Renderer
- Augmented Reality
- BitTorrent Client
- Blockchain / Cryptocurrency
- Bot
- Command-Line Tool
- Database
- Docker
- Emulator / Virtual Machine
- Front-end Framework / Library
- Game
- Git
- Network Stack
- Neural Network
- Operating System
- Physics Engine
- Programming Language
- Regex Engine
- Search Engine
- Shell
- Template Engine
- Text Editor
- Visual Recognition System
- Voxel Engine
- Web Search Engine
- Web Server
- Uncategorized
Tutorials
Build your own 3D Renderer
- 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++ : Rasterization: a Practical Implementation
- 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
Build your own Augmented Reality
- 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
Build your own BitTorrent Client
- C# : Building a BitTorrent client from scratch in C#
- Nim : Writing a Bencode Parser
- Node.js : Write your own bittorrent client
- Python : A BitTorrent client in Python 3.5
Build your own Blockchain / Cryptocurrency
- ATS : Functional Blockchain
- C# : Programming The Blockchain in C#
- Crystal : Write your own blockchain and PoW algorithm using Crystal
- Go : Building Blockchain in Go
- Go : Code your own blockchain in less than 200 lines of Go
- Go : Building A Simple Blockchain with 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
- Ruby : Programming Blockchains Step-by-Step (Manuscripts Book Edition)
- Scala : How to build a simple actor-based blockchain
- TypeScript : Naivecoin: a tutorial for building a cryptocurrency
- TypeScript : NaivecoinStake: a tutorial for building a cryptocurrency with the Proof of Stake consensus
Build your own Bot
- Haskell : Roll your own IRC bot
- Java : How To Make a Scary Russian Twitter Bot With Java
- 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
- Python : Chatbot Fundamentals: An interactive guide to writing bots in Python
- 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]
- R : Build A Cryptocurrency Trading Bot with R
- Rust : A bot for Starcraft in Rust, C or any other language
Build your own Command-Line Tool
- 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
Build your own Database
- 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
- JavaScript : Dagoba: an in-memory graph database
- Python : DBDB: Dog Bed Database
- Python : Write your own miniature Redis with Python
Build your own Docker
- 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
Build your own Emulator / Virtual Machine
- 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)
- Common Lisp : CHIP-8 in Common Lisp
- JavaScript : GameBoy Emulation in JavaScript
- Python : Emulation Basics: Write your own Chip 8 Emulator/Interpreter
Build your own Front-end Framework / Library
- JavaScript : WTF is JSX (Let’s Build a JSX Renderer)
- JavaScript : A DIY guide to build your own React
- JavaScript : Reverse Engineering React [video]
- JavaScript : Building React From Scratch [video]
- JavaScript : Building Your Own React Clone in Five Easy Steps
- 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
Build your own Game
- C : Handmade Hero
- C : How to Program an NES game 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++ : 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 : The Complete Roguelike Tutorial [video]
- 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
Build your own Git
- 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!
- Ruby : Rebuilding Git in Ruby
Build your own Network Stack
- C : Beej’s Guide to Network Programming
- C : Let’s code a TCP/IP stack
- Ruby : How to build a network stack in Ruby
Build your own Neural Network
- 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 : Implement a Neural Network from Scratch
- Python : Optical Character Recognition (OCR)
- Python : Traffic signs classification with a convolutional network
- Python : Generate Music using LSTM Neural Network in Keras
- Python : An Introduction to Convolutional Neural Networks
Build your own Operating System
- Assembly : Writing a Tiny x86 Bootloader
- Assembly : Baking Pi – Operating Systems Development
- 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++ : Write your own Operating System [video]
- C++ : Writing a Bootloader
- Rust : Writing an OS in Rust
Build your own Physics Engine
- 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]
- C# : TowerFall Physics
- JavaScript : Build your own basic physics engine in JavaScript
- JavaScript : How Physics Engines Work
- JavaScript : Broad Phase Collision Detection Using Spatial Partitioning
- JavaScript : Build a simple 2D physics engine for JavaScript games
Build your own Programming Language
- (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++ : Writing Your Own Toy Compiler Using Flex
- C++ : How to Create a Compiler [video]
- C++ : Kaleidoscope: Implementing a Language with LLVM
- F# : Understanding Parser Combinators
- Elixir : Demystifying compilers by writing your own [video]
- Go : The Super Tiny Compiler
- Go : Lexical Scanning in Go [video]
- 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 : 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
- 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 : Simple Iterator-based Parsing
- Python : Simple Top-Down Parsing in Python
- 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
Build your own Regex Engine
- 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
- Perl : How Regexes Work
- Scala : No Magic: Regular Expressions
Build your own Search Engine
- 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
Build your own Shell
- 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
- Ruby : A Unix Shell in Ruby
- Rust : Build Your Own Shell using Rust
Build your own Template Engine
- 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
Build your own Text Editor
- 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
Build your own Visual Recognition System
- Python : Developing a License Plate Recognition System with Machine Learning in Python
- Python : Building a Facial Recognition Pipeline with Deep Learning in Tensorflow
Build your own Voxel Engine
- C++ : Let’s Make a Voxel Engine
- Java : Let’s make a voxel engine [video]
- Java : Java Voxel Engine Tutorial [video]
Build your own Web Search Engine
- PHP : Code a Search Engine in PHP
- Ruby : Write an Internet search engine with 200 lines of Ruby code
Build your own Web Server
- 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
- 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
- Ruby : Building a simple websockets server from scratch in Ruby
Uncategorized
- (any) : From NAND to Tetris: Building a Modern Computer From First Principles
- Alloy : The Same-Origin Policy
- 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 $100
- C++ : How X Window Managers work and how to write one
- C++ : Writing a Linux Debugger
- C++ : How a 64k intro is made
- C# : C# Networking: Create a TCP chater 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 , 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 : How to Make an Evolutionary Tetris AI [video]
- 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.
- Node.js : How to create a real-world Node CLI app with Node
- PHP : Write your own MVC from scratch in PHP
- PHP : Make your own blog
- PHP : Modern PHP Without a Framework
- Python : Build a Deep Learning Library [video]
- Python : How to Build a Kick-Ass 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 : A Simple Content-Based Recommendation Engine in Python
- Python : Stock Market Predictions with LSTM in Python
- Python : Build your own error-correction fountain code with Luby Transform Codes
- Python : Building a simple Generative Adversial Network (GAN) using Tensorflow
- Python : Learn ML Algorithms by coding: Decision Trees
- Python : JSON Decoding Algorithm
- Ruby : A Pedometer in the Real World
- Ruby : Creating a Linux Desktop application with Ruby
- Rust : Let’s build a browser engine
- Rust : Building a DNS server in Rust
- Rust : Writing Scalable Chat Service from Scratch
- TypeScript : Tiny Package Manager: Learns how npm or Yarn works