740 Free Tutorials to Build Git, Redis and Docker From Scratch Before 2027
You commented build, so here are all 740 tutorials, free, with a link for each. Every one of them walks you through building a real piece of technology from scratch: your own Git, Redis, database, shell, Docker, operating system, programming language or neural network. I checked every GitHub-hosted link on 28 September 2026 and dropped the dead ones. The rest come from lists their maintainers keep updated, so if one has moved, tell me and I'll fix it.
What I cannot create, I do not understand. (Richard Feynman)
The short version: Part 1 has 357 "build your own X" tutorials, grouped by what you're building. Part 2 has 383 project tutorials grouped by language and framework. Pick one from the list of 8 below, finish it in a weekend, and put it on GitHub.
The two repos
codecrafters-io/build-your-own-x ~550K ★
github.com/codecrafters-io/build-your-own-x
One of the most starred repos on GitHub. Tutorials to recreate real technologies, from 3D renderers to web servers, in almost every language.
practical-tutorials/project-based-learning ~285K ★
github.com/practical-tutorials/project-based-learning
Project tutorials sorted by language: C/C++, Go, Rust, Python-heavy data science and ML, React, Node, Flutter and more.
The 8 I'd start with
- Write yourself a Git! (Python). You'll never be scared of Git again.
- Write a Shell in C. Short, and it teaches you how processes actually work.
- Let's Build a Simple Database (C). Every DBMS interview question starts making sense.
- Build Your Own Redis from Scratch (C++), or the Go version.
- Linux containers in 500 lines of code. This is what Docker is underneath.
- Implement a Neural Network from Scratch (Python). The best on-ramp to AI engineering.
- Crafting Interpreters. The classic free book on building a programming language.
- Build Your Own Text Editor (C). About 1,000 lines, and you'll understand terminals for life.
Part 1: Build your own X (rebuild real technology from scratch) (357)
Source: github.com/codecrafters-io/build-your-own-x
Build your own Distributed Systems (1)
Build your own 3D Renderer (11)
- 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 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 AI Model (3)
- Python: A Large Language Model (LLM)
- Python: Diffusion Models for Image Generation
- Python: RAG for Document Search
Build your own Augmented Reality (6)
- 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 (5)
- 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
Build your own Blockchain / Cryptocurrency (21)
- ATS: Functional Blockchain
- 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
- 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
- Rust: Building A Blockchain in Rust & Substrate
Build your own Bot (15)
- Haskell: Roll your own IRC bot
- 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: 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 (8)
- 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
- Zig: Build Your Own CLI App in Zig from Scratch
Build your own Database (13)
- C: Let's Build a Simple Database
- C++: Build Your Own Redis from Scratch
- C#: Build Your Own Database
- Clojure: An Archaeology-Inspired Database
- Crystal: Why you should build your own NoSQL Database
- Go: Build Your Own Database from Scratch: From B+Tree To SQL in 3000 Lines
- Go: Code a database in 45 steps: a series of test-driven small coding puzzles
- Go: Build Your Own Redis from Scratch
- JavaScript: Dagoba: an in-memory graph database
- Python: DBDB: Dog Bed Database
- Python: Write your own miniature Redis with Python
- Ruby: Build your own fast, persistent KV store in Ruby
- Rust: Build your own Redis client and server
Build your own Docker (6)
- 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 (13)
- C: Home-grown bytecode interpreters
- 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
- JavaScript: GameBoy Emulation in JavaScript
- Python: Emulation Basics: Write your own Chip 8 Emulator/Interpreter
- Rust: 0dmg: Learning Rust by building a partial Game Boy emulator
Build your own Front-end Framework / Library (14)
- 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: 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: Building a Custom React Renderer: [video]
Build your own Game (34)
- 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
- 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: Code a 2D Game Engine using Java - Full Course for Beginners: [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
Build your own Git (7)
- 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
Build your own Memory Allocator (1)
Build your own Network Stack (4)
- C: Beej's Guide to Network Programming
- C: Let's code a TCP/IP stack
- C / Python: Build your own VPN/Virtual Switch
- Ruby: How to build a network stack in Ruby
Build your own Neural Network (17)
- C#: Neural Network OCR
- F#: Building Neural Networks in F#: Part 1
- F#: Building Neural Networks in F#: Part 2
- 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 networks from scratch for JavaScript linguists (Part1 - The Perceptron)
- Python: A Neural Network in 11 lines of Python
- Python: Build Deep Learning From Scratch (reimplement PyTorch internals across 34 stages)
- 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
- Python: Neural Networks: Zero to Hero
- Python: SlowTorch: Implementation of PyTorch from the ground up in 100% pure Python
Build your own Operating System (19)
- 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
- Rust: Add RISC-V Rust Operating System Tutorial
- (any): Linux from scratch
Build your own Physics Engine (7)
- 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
Build your own Processor (1)
Build your own Programming Language (41)
- (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++: 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
- JavaScript: Let’s go write a Lisp
- 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]
- Python: From Source Code To Machine Code: Build Your Own Compiler From Scratch
- 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: Learning Parser Combinators With Rust
- Swift: Building a LISP from scratch with Swift
- TypeScript: Build your own WebAssembly Compiler
Build your own Regex Engine (9)
- C: A Regular Expression Matcher
- C: Regular Expression Matching Can Be Simple And Fast
- Go: How to build a regex engine from scratch
- 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
- Python: Build Your Own Regular Expression Engines: Backtracking, NFA, DFA
- Scala: No Magic: Regular Expressions
Build your own Search Engine (6)
- 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 (7)
- 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
Build your own Template Engine (5)
- 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 (6)
- 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: Hecto: Build your own text editor in Rust
Build your own Visual Recognition System (2)
- 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 (1)
Build your own Web Browser (2)
Build your own Web Server (11)
- C#: Writing a Web Server from Scratch
- Node.js: Build Your Own Web Server From Scratch In JavaScript
- 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 (61)
- (any): From NAND to Tetris: Building a Modern Computer From First Principles
- (any): build-your-own-x-vibe-coding: BYOX-style tutorials adapted for vibe coding
- 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 $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 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: Build A Simple Terminal Emulator In 100 Lines of Golang
- Go: Let's Create a Simple Load Balancer
- Go: Video Encoding from Scratch
- 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: 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 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
- Node.js: Build a DNS Server in Node.js
- Node.js: Build a Synchronization Engine with Node.js and Y.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: [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: 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
- TypeScript: Tiny Package Manager: Learns how npm or Yarn works
Part 2: Project based learning (tutorials by programming language) (383)
Source: github.com/practical-tutorials/project-based-learning
C/C++ (45)
- Memory Allocators 101 - Write a simple memory allocator
- Write a FUSE Filesystem
- Write an OS from scratch
- Building a CHIP-8 Emulator
- Implementing a Key-Value Store
- Understandable RayTracing in 256 lines of bare C++
- KABOOM! in 180 lines of bare C++
- 486 lines of C++: old-school FPS in a weekend
- Part 1
- Part 2
- Build a Live Code-reloader Library for C++
- Learning KVM - Implement Your Own Linux Kernel
- Part 2: Unary Operators
- Part 3: Binary Operators
- Part 4: Even More Binary Operators
- Part 5: Local Variables
- Part 6: Conditionals
- Part 7: Compound Statements
- Part 8: Loops
- Part 9: Functions
- Part 10: Global Variables
- Implementing a Language with LLVM
- Meta Crush Saga: a C++17 compile-time game
- High-Performance Matrix Multiplication
- Part 2
- Part 3
- Part 4
- Part 5
- Part 2: Breakpoints
- Part 3: Registers and memory
- Part 4: Elves and dwarves
- Part 5: Source and signals
- Part 6: Source-level stepping
- Part 7: Source-level breakpoints
- Part 8: Stack unwinding
- Part 9: Handling variables
- Part 10: Advanced topics
- Part 1: Introduction, selecting a language, and doing some planning
- Part 2: A lexer
- Part 3: A parser
- Part 4: Testing
- Part 5: A code generator
- Part 6: Input and output
- Part 7: Arrays
- Part 8: Strings, forward references, and conclusion
Network programming (17)
- Part 2: IPv4 & ICMPv4
- Part 3: TCP Basics & Handshake
- Part 4: TCP Data Flow & Socket API
- Part 5: TCP Retransmission
- Part 1 - Introduction
- Part 2 - Threads
- Part 3 - Event-driven
- Part 4 - libuv
- Part 5 - Redis case study
- Part 6 - Callbacks, Promises and async/await
- Part 2 - Networking
- Part 3 - Server
- Part 4 - Data structures
- Part 5 - Topic abstraction
- Part 6 - Handlers
- Bonus - Multithreading
- Networking from Scratch
OpenGL (13)
- Setting up
- Rendering Sprites
- Levels
- Ball
- Collision detection
- Collision resolution
- Particles
- Postprocessing
- Powerups
- Audio
- Render text
- Final thoughts
- How to Make Minecraft in C++/OpenGL: (video)
C# (3)
- Create a Blank App with C# and Xamarin (work in progress)
- Build iOS Photo Library App with Xamarin and Visual Studio
- Building the CoreWiki: This is a Wiki-style content management system that has been completely written in C# with ASP.NET Core and Razor Pages. You can find the source code here.
Clojure (4)
- Build a Twitter Bot with Clojure
- Building a JIRA integration with Clojure & Atlassian Connect
- Prototyping with Clojure
- Tetris in ClojureScript
Flutter (13)
- Amazon Clone with Admin Panel
- Food Delivery App
- Google Docs Clone
- Instagram Clone
- Multiplayer TicTacToe Game
- TikTok Clone
- Ticket Booking App
- Travel App
- Twitch Clone
- WhatsApp Clone
- Wordle Clone
- Zoom Clone
- Netflix Clone
Elixir (2)
- Building a Simple Chat App With Elixir and Phoenix
- How to write a super fast link shortener with Elixir, Phoenix, and Mnesia
Erlang (2)
- ChatBus : build your first multi-user chat room app with Erlang/OTP
- Making a Chat App with Erlang, Rebar, Cowboy and Bullet
F# (1)
Java (3)
- Build a Simple HTTP Server with Java
- Build an Android Flashlight App: (video)
- Build a Spring Boot App with User Authentication
JavaScript (4)
- Build 30 things in 30 days with 30 tutorials
- Build a Jupyter Notebook Extension
- Build a Simple Weather App With Vanilla JavaScript
- Build a Todo List App in JavaScript
HTML and CSS (3)
- Build A Loading Screen
- Build an HTML Calculator with JS
- Build Snake using only JavaScript, HTML & CSS
Mobile Application (2)
React (28)
- Create Serverless React.js Apps
- Create a Trello Clone
- Create a Character Voting App with React, Node, MongoDB and SocketIO
- React Tutorial: Cloning Yelp
- Build a Full Stack Movie Voting App with Test-First Development using Mocha, React, Redux and Immutable
- Build A Simple Medium Clone using React.js and Node.js
- Integrate MailChimp in JS
- Build A Chrome Extension with React + Parcel
- Build A ToDo App With React Native
- Make a Chat Application
- Create a News App with React Native
- Learn Webpack For React
- Testing React App With Puppeteer and Jest
- Build Your Own React Boilerplate
- Code The Game Of Life With React
- A Basic React+Redux Introductory Tutorial
- Build an Appointment Scheduler
- Build A Chat App with Sentiment Analysis
- Build A Full Stack Web Application Setup
- Create Todoist clone with React and Firebase
- Part 1
- Part 2
- Part 3
- Part 4
- Part 5
- Part 6
- Part 7
- React Phone E-Commerce Project(video)
Next.js (1)
Angular (8)
- Build an Instagram Clone with Angular 1.x
- Part 1
- Part 2
- Part I
- Part II
- Build Responsive layout with BootStrap 4 and Angular 6
- Introduction to Angular
- Part 1
Node (5)
- Test-Driven Development with Node, Postgres and Knex
- Part 1
- Part 2
- Build A Simple Search Bot in 30 minutes
- Build A Job Scraping Web App
Vue (7)
- Vue 2 + Firebase: How to build a Vue app with Firebase authentication system in 15 minutes
- Vue.js Application Tutorial – Creating a Simple Budgeting App with Vue
- Build a Blog with Vue, GraphQL and Apollo
- Part 1
- Part 2
- Vue.js To-Do List Tutorial (video)
- Vue 2 + Pub/Sub: Build a peer to peer multi-user platform for games
Others (Hapi, Express...) (5)
D3.js (2)
Game Development (1)
Desktop Application (1)
Miscellaneous (16)
- How to Build a Web Framework in Less Than 20 Lines of Code
- Build A Realtime Serverless GraphQL API with WebSockets on AWS
- Building a Gas Pump Scanner with OpenCV/Python/iOS
- Build a Distributed Streaming System with Python and Kafka
- Writing a basic x86-64 JIT compiler from scratch in stock Python
- Part 1
- Part 2: C
- Part 1
- Part 2
- Part 3
- Build the Game of Life
- Create terminal ASCII art
- Write a Tic-Tac-Toe AI
- Create photomosaic art
- Build the game "Snake" in the terminal
- Create a Voice assistant using Python
Kotlin (1)
LÖVE (16)
- Part 0: Introduction
- Part 1: Game Loop
- Part 2: Libraries
- Part 3: Rooms and Areas
- Part 4: Exercises
- Part 5: Game Basics
- Part 6: Player Basics
- Part 7: Player Stats and Attacks
- Part 8: Enemies
- Part 9: Director and Gameplay Loop
- Part 10: Coding Practices
- Part 11: Passives
- Part 12: More Passives
- Part 13: Skill Tree
- Part 14: Console
- Part 15: Final
Web Scraping (4)
- Mining Twitter Data with Python
- Scrape a Website with Scrapy and MongoDB
- How To Scrape With Python and Selenium WebDriver
- Which Movie Should I Watch using BeautifulSoup
Web Applications (17)
- Build a Microblog with Flask
- Create a Blog Web App In Django
- Choose Your Own Adventure Presentations
- Build a Todo List with Flask and RethinkDB
- Build a Todo List with Django and Test-Driven Development
- Build a RESTful Microservice in Python
- Microservices with Docker, Flask, and React
- Build A Simple Web App With Flask
- Create A Django API in under 20 minutes
- Part 1
- Part 2
- Part 3
- Part 4
- Part 5
- Part 6
- Creating APIs with Python - Comprehensive Course for Beginners (video)
- Build Your First Streamlit Data App
Bots (4)
Data Science (6)
- Part 1: Introduction
- Part 2: Twitter Sentiment Analysis
- Part 3: Recommendation Systems
- Part 4: Predicting Stock Prices
- Part 5: Deep Dream in TensorFlow
- Part 6: Genetic Algorithms
Machine Learning (12)
- Write Linear Regression From Scratch in Python: (video)
- Step-By-Step Machine Learning In Python
- Predict Quality Of Wine
- Solving A Fruits Classification Problem
- Learn Unsupervised Learning with Python
- Build Your Own Neural Net from Scratch in Python
- Linear Regression in Python without sklearn
- Multivariate Linear Regression without sklearn
- Music Recommender using KNN
- Using BOW, TFIDF and Xgboost
- Using Word2Vec and Xgboost
- Detecting Fake News with Python and Machine Learning
OpenCV (25)
- Build A Face Detector using OpenCV and Deep Learning
- Build fastest custom object Detection system yusing YOLOv3(video playlist)
- Build a Face Recognition System using OpenCV, Python and Deep Learning
- Detect The Salient Features in an Image
- Build A Barcode Scanner
- Learn Face Clustering with Python
- Object Tracking with Camshift
- Semantic Segmentation with OpenCV and Deep Learning
- Text Detection in Images and Videos
- People Counter using OpenCV
- Tracking Multiple Objects with OpenCV
- Neural Style Transfer with OpenCV
- OpenCV OCR and Text Recognition
- Text Skew Correction Tutorial
- Facial Landmark Detection Tutorial
- Object Detection using Mask-R-CNN
- Automatic Target Detection Tutorial
- EigenFaces using OpenCV
- Faster(5-point) Facial Landmark Detection Tutorial
- Hand Keypoint Detection
- Single Object Tracker
- Multiple Object Tracker
- Image Stitching with OpenCV and Python
- Instance Segmentation with OpenCV
- Face mask detector
Deep Learning (35)
- Using Convolutional Neural Nets to Detect Facial Keypoints
- Generate an Average Face using Python and OpenCV
- Break A Captcha System using CNNs
- Use pre-trained Inception model to provide image predictions
- Create your first CNN
- Build An Image Caption Generator
- Make your Own Face Recognition System
- Train a Language Detection AI in 20 minutes
- Object Detection With Neural Networks
- Part I - Data Cleaning
- Part II - EDA, Data Visualisation
- Part III - Zipf's Law, Data Visualisation
- Part IV - Feature Extraction(count vectoriser)
- Part V - Feature Extraction(Tfidf vectoriser)
- Part VI - Doc2Vec
- Part VII - Phrase Modeling + Doc2Vec
- Part VIII - Dimensionality Reduction
- Part IX - Neural Nets with TF-IDF vectors
- Part X - Neural Nets with word2vec/doc2vec
- Part XI - CNN with Word2Vec
- Use Transfer Learning for custom image classification
- Build a Neural Network using Gradient Descent Approach
- Train a Keras Model To Generate Colors
- Get Started with Keras on a Custom Dataset
- Use EigenFaces and FisherFaces on Faces94 dataset
- Kaggle MNIST Digit Recognizer Tutorial
- Fashion MNIST tutorial with tf.keras
- CNN using Keras to automatically classify root health
- Keras vs Tensorflow
- Deep Learning and Medical Image Analysis for Malaria Detection
- Transfer Learning for Image Classification using Keras
- Code a Smile Classifier using CNNS in Python
- Natural Language Processing using scikit-learn
- Code a Taylor Swift Lyrics Generator
- Mask detection using PyTorch Lightning
Go (30)
- Create a Real Time Chat App with Golang, Angular 2, and WebSocket
- Building Go Web Applications and Microservices Using Gin
- How to Use Godog for Behavior-driven Development in Go
- Part 2: Proof of Work
- Part 3: Persistence and CLI
- Part 4: Transactions 1
- Part 5: Address
- Part 6: Transactions 2
- Part 7: Network
- Build Web Application with GoLang
- Part 1: Initial Setup
- Part 2: Simple Communication
- Part 3: Designing our Frontend
- Part 4: Handling Multiple Clients
- Part 5: Improving the Frontend
- Part 6: Dockerizing your Backend
- Go WebAssembly Tutorial - Building a Calculator Tutorial
- Part 1 - standard library
- Part 2 - using a router package
- Part 3 - using a web framework
- Part 4 - using OpenAPI and Swagger
- Part 5 - middleware
- Part 6 - authentication
- Part 7 - GraphQL
- Part 1 - Project setup
- Part 2 - Storage Layer
- Part 3 - Short Link Generator
- Part 4 - Forwarding
- Building a TCP Chat in Go(video)
- REST API masterclass with Go, PostgreSQL and Docker(video playlist)in progress
PHP (13)
- How To Build A Blog With Laravel: (video)
- Build A Real Estate Website Example with SilverStripe
- Building Realtime Chat App with Laravel 5.4 and VueJS: (video)
- Build A Social Network: Laravel 5 - Youtube: (video)
- Part 0: Introduction
- Part 1: Setup
- Part 2: Roles and Permissions
- Part 3: Invitation
- Part 4: Authentication
- Part 5: Testing
- Part 6: User Profile
- Part 7: Deployment
- Build a Laravel CRUD Application From Scratch
OCaml (1)
Ruby (6)
- Part 0: Introduction
- Part 1: Barebones TCP Server
- Part 2: PING PONG
- Part 3: Concurrent Clients
- Part 4: ECHO
- Rebuilding Git in Ruby
Ruby on Rails (4)
- The Ruby on Rails Tutorial
- Build Instagram From Scratch with Ruby on Rails
- Build a Social Network using Rails
- How To Build a Ruby on Rails Application
Haskell (3)
R (2)
Rust (13)
- Part 1
- Part 2a
- Part 2b
- Write a Microservice in Rust
- Learning Rust with Too Many Linked Lists
- Part 2: Sending and Receiving Messages
- Writing a Rust Roguelike for the Desktop and the Web
- Single Page Applications using Rust
- Writing NES Emulator in Rust
- Part 1
- Part 2
- Part 3
- Part 4
Scala (1)
Swift (4)
- Hacking with Swift - Learn Swift by doing 39 projects
- Retro first-person shooter from scratch
- Build an iOS App with SwiftUI
- Developing iOS Apps with SwiftUI (Stanford CS193p): (video)
How I'd use this
- Don't read tutorials, type them. Then change one thing the tutorial didn't do.
- Pick the language you want a job in, not the one the tutorial author picked. Most topics have several languages.
- Push every one to GitHub with a README that explains what you learned. "Built my own Git from scratch" starts better interview conversations than any LeetCode count.
- After two or three of these, try the same idea on something AI: your own vector database, your own agent loop, your own tokenizer.
Want project ideas that get you hired? Read 25 projects to build to get hired in 2026.
Follow @avi_vashishta29 for one practical AI dev resource a day.