well-documented
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.
Language agnostic
- 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
Agda
C
- 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
C#
- BitTorrent - "Building a BitTorrent client from scratch in C#"
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
Clojure
- Ferret - A "[compiler of] a restricted subset of the Clojure language to self contained ISO C++11"
- rhymes.clj - Annotated rhyming dictionary
Ruby
- Rhizome - Rhizome is a paedagogical just-in-time compiler (JIT) for Ruby, implemented in pure Ruby.
Commodore 64 Assembly
- A Mind is Born - 256 byte demo
Common Lisp
- Axiom - "The Scientific Computation System"
Coq
Elixir
Go
- A Go implementation of Poly1305 that makes sense
- Database basics: writing a SQL database from scratch in Go
- How to write a (toy) JVM
Haskell
- 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
JavaScript
- The Super Tiny Compiler
- A first-person engine in 265 lines
- Build your own React
- Git in six hundred words
OpenType
Python
- (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
Rust
- 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