build-your-own-x
Master programming by recreating your favorite technologies from scratch.
https://github.com/codecrafters-io/build-your-own-x
Last synced: about 3 hours ago
JSON representation
Tutorials
- C++: How OpenGL works: software rendering in 500 lines of code
- C++: Ray Tracing in One Weekend
- C# / TypeScript / JavaScript: Learning how to write a 3D soft engine from scratch in C#, TypeScript or JavaScript
- C#: How To: Augmented Reality App Tutorial for Beginners with Vuforia and Unity 3D - [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
- Crystal: Write your own blockchain and PoW algorithm using Crystal
- Go: Building Blockchain in Go
- Java: Creating Your First Blockchain with Java
- 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: Let’s Build the Tiniest 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
- Haskell: Roll your own IRC 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: How To Make A Reddit Bot - [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: Create a CLI tool in Javascript
- Rust: Command line apps in Rust
- Rust: Writing a Command Line Tool in Rust
- C#: Build Your Own 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: Build Your Own Redis from Scratch
- Rust: Build your own Redis client and server
- C: Linux containers in 500 lines of code
- Go: Building a container from scratch in Go - [video]
- C: Home-grown bytecode interpreters
- C: Writing a Game Boy emulator, Cinoop
- JavaScript: WTF is JSX (Let's Build a JSX Renderer)
- 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: How to write your own Virtual DOM
- JavaScript: Build your own React
- C: How to Program an NES game in C
- C: On Tetris and Reimplementation
- C++: Breakout
- C#: Creating a Roguelike Game in C#
- 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: Developing Games with React, Redux, and SVG
- JavaScript: Build your own 8-Ball Pool game from scratch - [video]
- Python: Developing Games With PyGame
- Python: Making Games with Python & Pygame - [pdf]
- Ruby: Developing Games With Ruby
- Rust: Adventures in Rust: A Basic 2D Game
- 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: How to build a network stack in Ruby
- C#: Neural Network OCR
- 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: 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: Traffic signs classification with a convolutional network
- Python: An Introduction to Convolutional Neural Networks
- C: The little book about OS development
- C: Roll your own toy UNIX-clone OS
- C: Hack the virtual memory
- C: Operating systems development for Dummies
- Rust: Writing an OS in Rust
- Rust: Add RISC-V Rust Operating System Tutorial
- C: Video Game Physics Tutorial
- Assembly: Jonesforth
- 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: Lexical Scanning in Go - [video]
- 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
- JavaScript: Little Lisp interpreter
- 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: Let’s Build A Simple Interpreter
- 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
- 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: Implementing a Regular Expression Engine
- Perl: How Regexes Work
- Python: Build Your Own Regular Expression Engines: Backtracking, NFA, DFA
- Scala: No Magic: Regular Expressions
- 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: Write a shell in C
- Go: Writing a simple shell in Go
- Rust: Build Your Own Shell using Rust
- JavaScript: Understanding JavaScript Micro-Templating
- Ruby: How to write a template engine in less than 30 lines of code
- C: Build Your Own Text Editor
- Python: Python Tutorial: Make Your Own Text Editor - [video]
- Python: Building a Facial Recognition Pipeline with Deep Learning in Tensorflow
- C++: Let's Make a Voxel Engine
- Rust: Let's build a browser engine
- C#: Writing a Web Server from Scratch
- Node.js: Build Your Own Web Server From Scratch In JavaScript
- Python: Let’s Build A Web Server.
- Python: Web application from scratch
- C: The very basics of a terminal emulator
- C: Write a System Call
- C++: How a 64k intro is made
- 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
- JavaScript: Implementing promises from scratch (TDD way)
- JavaScript: Implement your own — call(), apply() and bind() method in JavaScript
- 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
- PHP: Write your own MVC from scratch in PHP
- PHP: Make your own blog
- PHP: Code a Web Search Engine in PHP
- Python: Build a Deep Learning Library - [video]
- 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
- Python: Build your own Git plugin with python
- Ruby: Build your own fast, persistent KV store in Ruby
- Node.js: Let's code a web server from scratch with NodeJS Streams
- Python: Developing a License Plate Recognition System with Machine Learning in Python
- C++: Introduction to Ray Tracing: a Simple Method for Creating 3D Images
- Java: How to create your own simple 3D render engine in pure Java
- JavaScript: A cryptocurrency implementation in less than 1500 lines of code
- JavaScript: Build your own Blockchain in JavaScript
- Python: Build your own blockchain: a Python tutorial
- Zig: Build Your Own CLI App in Zig from Scratch
- C: Let's Build a Simple Database
- 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++: Emulation tutorial (CHIP-8 interpreter)
- C++: Emulation tutorial (GameBoy emulator)
- C++: Emulation tutorial (Master System emulator)
- Python: Emulation Basics: Write your own Chip 8 Emulator/Interpreter
- Rust: 0dmg: Learning Rust by building a partial Game Boy emulator
- JavaScript: Building a frontend framework, from scratch, with components (templating, state, VDOM)
- C++: Space Invaders from Scratch
- Python: Roguelike Tutorial Revised
- Rust: Roguelike Tutorial in Rust + tcod
- JavaScript: Gitlet
- C: Let's code a TCP/IP stack
- C / Python: Build your own VPN/Virtual Switch
- Assembly: Writing a Tiny x86 Bootloader
- C: Operating Systems: From 0 to 1
- C: Build a minimal multi-tasking kernel for ARM from scratch
- C: How to create an OS from scratch
- C: Malloc tutorial
- C: Learning operating system development using Linux kernel and Raspberry Pi
- C++: Writing a Bootloader
- C++: Game physics series by Allen Chou
- JavaScript: How Physics Engines Work
- JavaScript: Broad Phase Collision Detection Using Spatial Partitioning
- (any): mal - Make a Lisp