A curated list of awesome DIY software.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Awesome DIY Software


A curated list of awesome DIY software. Inspired by awesome-go and this HN post.

What awesome-diy-software has in common:

  • Describe a technology or feature by implementation.
  • Ideally in no more than few thousands lines of code (and not just 10-20 line code snippets).
  • Idea is to teach about underlying technology by a hands-on project, which is not overwhelming like trying to implement full-feature game engine and yet captures the essence of technology.
  • All have the "Weekend Projects" feel



Game Development

Interpreters: Lisp Based

Image Processing and Computer Vision

Interpreters: Other (Non - Lisp)

There is a separate section, for lisp interpreters

Java Virtual Machine


Operating Systems

Regular Expressions

Retracers and 3D Rendering

Software renderer

Storage and Databases

Text Editor

Version Control

Web Apps: Usage

These are tutorials for learning to use web frameworks:

Web frameworks: Internals

These tutorials are geared towards building a frontend web framework and can be used to get a better understanding of internals.

Web Programming


PRs to organize these resources are very welcome!

Other similar lists