Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cweagans/awesome-diy-software
A curated list of awesome DIY software.
https://github.com/cweagans/awesome-diy-software
List: awesome-diy-software
Last synced: 11 days ago
JSON representation
A curated list of awesome DIY software.
- Host: GitHub
- URL: https://github.com/cweagans/awesome-diy-software
- Owner: cweagans
- Created: 2018-03-16T05:03:28.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2019-12-05T18:36:07.000Z (about 5 years ago)
- Last Synced: 2024-05-22T11:05:13.078Z (7 months ago)
- Homepage: https://www.awesomediysoftware.com/
- Size: 5.86 KB
- Stars: 572
- Watchers: 18
- Forks: 35
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- zh_CN-Computer-Science-Curriculum-Front-End-Curriculum - cweagans/awesome-diy-software: A curated list of awesome DIY software.
- ultimate-awesome - awesome-diy-software - A curated list of awesome DIY software. (Other Lists / Monkey C Lists)
README
---
title: Awesome DIY Software
---# awesome-diy-software
A curated list of awesome DIY software. Inspired by [awesome-go](https://github.com/avelino/awesome-go) and [this HN post](https://news.ycombinator.com/item?id=16591918).
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
## Compilers
- [The Super Tiny Compiler](https://github.com/jamiebuilds/the-super-tiny-compiler)
- [Let's Build a Compiler](https://compilers.iecc.com/crenshaw/)## Cryptocurrency
- [Nativecoin - build your own crypto-currency](https://lhartikk.github.io/)
## Game Development
- [Unity's roll-a-ball tutorial](https://unity3d.com/learn/tutorials/s/roll-ball-tutorial) pretty good for starting out with their IDE and also gives some decent exposure to C# basics.
## Interpreters: Lisp Based
- [Write You a Scheme](https://github.com/write-you-a-scheme-v2/scheme) Haskell to write a Scheme!
- [Build Your Own Lisp](http://www.buildyourownlisp.com/)
- [Scheme from Scratch](http://peter.michaux.ca/articles/scheme-from-scratch-introduction)
- [Make a LISP](https://github.com/kanaka/mal)
- [Writing an Interpreter in Go](https://interpreterbook.com/)## Image Processing and Computer Vision
- [Build a Kick-Ass Mobile Document](https://www.pyimagesearch.com/2014/09/01/build-kick-ass-mobile-document-scanner-just-5-minutes/)
## Interpreters: Other (Non - Lisp)
There is a separate section, for lisp interpreters
- [Crafting Interpreters](http://www.craftinginterpreters.com/)
- [Create your own programming language](http://createyourproglang.com/)## Java Virtual Machine
- [Simple.vm](https://github.com/skx/simple.vm)
## Laravel
- [Writing a full-featured multi-tenant Laravel app from scratch](https://medium.com/@ashokgelal/writing-a-full-featured-multi-tenant-laravel-app-from-scratch-a0e1a7350d9d)
- [Let's Build A Forum with Laravel and TDD](https://laracasts.com/series/lets-build-a-forum-with-laravel)## Operating Systems
- [nand2tetris](http://nand2tetris.org/)
- [Containers in 500 lines](https://blog.lizzie.io/linux-containers-in-500-loc.html)
- [Malloc tutorial](https://danluu.com/malloc-tutorial/)
- [Bitwise](https://github.com/pervognsen/bitwise) - An educational project to create a software/hardware stack for a computer from scratch.
- [Baby's First Garbage Collector](http://journal.stuffwithstuff.com/2013/12/08/babys-first-garbage-collector/)
- [A TDD approach for building a simple microprocessor model in Python](http://joaoventura.net/blog/2017/simple-microprocessor/)
- [Linux From Scratch](http://www.linuxfromscratch.org/)## Regular Expressions
- [A Regular Expression Matcher](https://www.cs.princeton.edu/courses/archive/spr09/cos333/beautiful.html)
## Retracers and 3D Rendering
- [Build your own 3D renderer](https://avik-das.github.io/build-your-own-raytracer/)
- [Ray Tracing in One Weekend](https://www.amazon.com/dp/B01B5AODD8)## Software renderer
- [learn how the principles of computer rendering work](https://github.com/ssloy/tinyrenderer/wiki/Lesson-1:-Bresenham%E2%80%99s-Line-Drawing-Algorithm)
## Storage and Databases
- [Build a simple database](https://cstack.github.io/db_tutorial/)
- [Implementing a Key-Value Store](http://codecapsule.com/2012/11/07/implementing-a-key-value-store-part-1-what-are-key-value-stores-and-why-implement-one/)
- [Build your own Redis](https://rohitpaulk.com/articles/redis-0)## Text Editor
- [Kilo: Build Your Own Text Editor](https://viewsourcecode.org/snaptoken/kilo/)
## Version Control
- [Implements the basics of the git version control system](http://gitlet.maryrosecook.com/docs/gitlet.html)
## Web Apps: Usage
These are tutorials for learning to use web frameworks:
- [Some useful links for React.js](https://github.com/markerikson/react-redux-links/)
- [How to Build Tinder with React Native & Expo](https://www.udemy.com/how-to-build-tinder/)
- [Writing a full-featured multi-tenant web app from scratch](https://medium.com/@ashokgelal/writing-a-full-featured-multi-tenant-laravel-app-from-scratch-a0e1a7350d9d)## Web frameworks: Internals
These tutorials are geared towards building a frontend web framework and can be used to get a better understanding of internals.
- [Build your own React](https://github.com/hexacta/didact)
- [Build Yourself a Redux](https://zapier.com/engineering/how-to-build-redux/)
- [Build Your Own Angular JS](https://teropa.info/build-your-own-angular/)## Web Programming
- [Building a basic HTTP server from scratch in Python](http://joaoventura.net/blog/2017/python-webserver/)
## Unsorted
PRs to organize these resources are very welcome!
- [Handmade Hero](https://handmadehero.org/)
- [Build your own Sinatra](https://getgood.at/build-your-own/sinatra)
- [Destroy All Software's "From Scratch" series](https://www.destroyallsoftware.com/screencasts/catalog)
- [Building an online marketplace from scratch](https://www.voucherify.io/blog/building-an-online-marketplace-from-scratch-introduction)
- [Build a game with Lua and LÖVE](https://github.com/SSYGEN/blog/issues/30)
- [Let's Make a Voxel Engine](https://sites.google.com/site/letsmakeavoxelengine/)## Other similar lists
- [500 Lines or less](http://aosabook.org/en/index.html) Book with many small tutorials covering a wide range of topics
- [Project Based Learning](https://github.com/tuvtran/project-based-learning)