A collection of analyses, "tutorials", walkthroughs and literate implementations of moderately complex standalone applications.
NOTE: When I say "tutorial", it means I don't want to add tutorials like "How to make a React SPA". I want to add tutorials for things that most people have never considered making themselves, and cover aspects of the problem domain rather than the surrounding framework.
- The Architecture of Open Source Applications
- DOOM Engine source code review
- How I Start. - "[A] mix between a collection of development tutorials and [setup guides]"
- Programs To Read
- Selfie - "An educational software system of a tiny self-compiling C compiler, a tiny self-executing MIPS emulator, and a tiny self-hosting MIPS hypervisor"
- Build Your Own Text Editor (with associated Hacker News discussion)
- Build Your Own Lisp
- Voc - "[A] physical model of the vocal tract"
- The Craft of Text Editing
- Kilo - "A text editor in less than 1000 LOC with syntax highlight and search"
- Raycasting
- Let's Build a Simple Database
- TinyWM - A minimalistic, 50 line window manager
- Write your Own Virtual Machine
- BitTorrent - "Building a BitTorrent client from scratch in C#"
- Design & Implementation of a Win32 Text Editor
- Doom3 Source Code Review
- Let's Make a Voxel Engine
- Physically Based Rendering: From Theory To Implementation
- Ferret - A "[compiler of] a restricted subset of the Clojure language to self contained ISO C++11"
- rhymes.clj - Annotated rhyming dictionary
- Rhizome - Rhizome is a paedagogical just-in-time compiler (JIT) for Ruby, implemented in pure Ruby.
- A Mind is Born - 256 byte demo
- Axiom - "The Scientific Computation System"
- A Go implementation of Poly1305 that makes sense
- Database basics: writing a SQL database from scratch in Go
- How to write a (toy) JVM
- Corrode - A C to Rust transpiler
- Write You a Scheme
- Write You a Haskell
- The "Writing" section of Reflecting on Haskell in 2016
- Teleport - "How to write a small, useful command line application in Haskell"
- Hindley-Damas-Milner tutorial
- Typing the technical interview - type-level programming abomination
- Glassery - Optics library
- A Tutorial Implementation of a Dependently Typed Lambda Calculus
- Implementing a JIT Compiled Language with Haskell and LLVM
- kinder-functor - "An alternate definition of Haskell's Functor typeclass"
- Rolling your Own Blockchain in Haskell
- Nanochain - "A minimal viable blockchain to demonstrate simple blockchain principles."
- Let's make a GTK Video Player with Haskell
- The Super Tiny Compiler
- A first-person engine in 265 lines
- Build your own React
- Git in six hundred words
- (How to Write a (Lisp) Interpreter (in Python))
- How to Write a Spelling Corrector
- tinychain - "A pocket-sized implementation of Bitcoin"
- Let's Build a Web Server
- Let's Build a Simple Interpreter
- Bytecode compilers and interpreters
- List of IPython (Jupyter) Notebooks by Peter Norvig
- Python Prolog Interpreter
- Building a Multithreaded Web Server - TODO: Update this link when it comes out of beta
- Writing an OS in Rust
- Let's build a browser engine!
- Speedy Desktop Apps With GTK and Rust
- Making our own executable packer
- ToyDB