Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/cristianoliveira/awesome-byo

A curated list of open content for "building your own sth". 🛠
https://github.com/cristianoliveira/awesome-byo

List: awesome-byo

Last synced: 3 months ago
JSON representation

A curated list of open content for "building your own sth". 🛠

Awesome Lists containing this project

README

        

# awesome-byo [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![CodeOfConduct](https://img.shields.io/badge/code%20of%20conduct-1.3.0-ff69b4.svg)](http://contributor-covenant.org/version/1/3/0/)
A curated list of open content for building your own *sth*.

Because there is no better way to understand how *sth* works than *building your own* version of that thing.

**BYO for short**

----

## Games

- [BYO Game Engine](https://www.gamasutra.com/blogs/MichaelKissner/20151027/257369/Writing_a_Game_Engine_from_Scratch__Part_1_Messaging.php) - Learn how game engines work, essential data structures and grafic manipulation while building your very own Game Engine.

- [BYO Pac man](http://www.masswerk.at/JavaPac/pacman-howto.html) - A tutorial for building a Pac Man game while learning advanced Javascript techniques.

- [BYO Tic Tac Toe](https://medium.com/front-end-hacking/tic-tac-toe-javascript-game-b0cd6e98edd9) - Build your own Tic Tac Toe game and with a very simple AI allowing to play the game against the computer.

## Programming Languages

- [BYO Javascript](https://www.codeproject.com/Articles/345888/How-to-write-a-simple-interpreter-in-JavaScript) - Learn the concepts of language design while building your own very basic interpreter in Javascript.

- [BYO Lisp](http://www.buildyourownlisp.com/contents) - Learn the C programming language and at the same time learn how to build your very own programming language.

- [BYO Pascal](https://ruslanspivak.com/lsbasi-part1/) - Build your own simple Pascal interpreter using Python.

- [BYO Python](http://www.aosabook.org/en/500L/a-python-interpreter-written-in-python.html) - Understand how bitecode works while writing a Python interpreter in Python.

- [BYO Scheme](https://wespiser.com/writings/wyas/00_overview.html) - Learn everything about functional programming while building your own Scheme interpreter in Haskell.

## Software Development

- [BYO Browser Engine](https://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html) - Understand what happens inside a browser engine like Blink, Gecko, WebKit and Servo plus build your very own from scratch.

- [BYO Indexed Database](https://www.codeproject.com/Articles/1029838/Build-Your-Own-Database) - Build a simple database using B-tree algorithms for searching and learn how indexes work.

- [BYO Nginx](http://www.gilesthomas.com/2013/08/writing-a-reverse-proxyloadbalancer-from-the-ground-up-in-c-part-0/) - A serie of posts explaining how to build a reverse proxy/loadbalancer like Nginx in C

- [BYO NoSQL](https://medium.com/@marceloboeira/why-you-should-build-your-own-nosql-database-9bbba42039f5) - Learn the fundamentals and how a simple key-value databases work plus build your very own NoSQL database.

- [BYO React](https://hackernoon.com/build-your-own-react-48edb8ed350d) - Create a full working version of react step by step in plain Javascript.

- [BYO Regex Engine](https://www.cs.princeton.edu/courses/archive/spr09/cos333/beautiful.html) - Learn by analizing a Rob Pike's implementation of a Regex Engine and step by step build your own engine.

- [BYO Router](https://vluxe.io/golang-router.html) - Build your own Router (also known as a mux) in Go like many frameworks implement out there.

- [BYO Search Engine](https://youtu.be/cY7pE7vX6MU) - Build your own simple search engine like Elasticsearch in Python.

- [BYO Virtual DOM](https://medium.com/@deathmood/how-to-write-your-own-virtual-dom-ee74acc13060) - Understand how the Virtual DOM works writing one version in less than ~50 lines of code.

- [BYO Webserver](https://ruslanspivak.com/lsbaws-part1/) - Step by step learn how to build a web server from scratch.

## System

- [BYO Container](https://www.infoq.com/articles/build-a-container-golang) - Write your own version of Linux Containers in less than 100 lines of Go.

- [BYO Kernel](http://wiki.osdev.org/C%2B%2B_Bare_Bones) - Tutorial to write a simple kernel for 32-bit x86 and boot it. This is the first step in creating your own operating system.

- [BYO Operating System](https://github.com/cfenollosa/os-tutorial) - Learn how to build from scratch step by step your own Operating System Unix like.

- [BYO QT Terminal](https://codekoalas.com/blog/build-your-own-minimal-terminal) - Tutorial of how to write a QT based terminal in C++.

- [BYO Rich Command Line](http://www.lihaoyi.com/post/BuildyourownCommandLinewithANSIescapecodes.html) - Build your own Command Line with ANSI escape codes from scratch with Python.

- [BYO Shell](https://brennan.io/2015/01/16/write-a-shell-in-c/) - It is a walkthrough on how to write your own simplistic Unix shell in C.

- [BYO Text Editor](https://viewsourcecode.org/snaptoken/kilo/) - This booklet walks you through building the editor in 184 steps. Each step, you’ll add, change, or remove a few lines of code.

- [BYO Virtual CPU](http://megalomaniacbore.blogspot.ch/2014/04/virtual-cpu-in-c-4001-cpu.html) - Write your own Virtual CPU in C++.

- [BYO Window Manager](https://seasonofcode.com/posts/how-x-window-managers-work-and-how-to-write-one-part-i.html) - A series of posts that aim to demystify how window managers work and how you might go about writing one yourself. (incomplete)

## Others

- [BYO Calculator](https://www.freecodecamp.org/challenges/build-a-javascript-calculator) - Serie of videos for building a calculator using Javascript.

-----

# License [![CC0](https://i.creativecommons.org/p/zero/1.0/88x31.png)](https://creativecommons.org/publicdomain/zero/1.0/)
This work is licensed under a [CC0 1.0 Universal (CC0 1.0).](https://creativecommons.org/publicdomain/zero/1.0/)