Skip to main content
Str8shiftDigital

~/dreamboard · build in public

Build it from scratch.

The fastest way to really understand something is to build it yourself, badly, until it works. This is our running list of the hard, foundational projects worth building from nothing. We ship client work for a living; we build these to get sharper at it. Each one we finish becomes a write-up on the blog.

25 to build · 3 up next · 6 fields

//

Tooling

5

The tools we live in every day, taken apart and rebuilt.

01Up next

Shell

Command parsing, processes, pipes, and job control from scratch.

02Up next

Version control

Commits, diffs, and history. Understand git by rebuilding it.

03

Text editor

Raw terminal input, a buffer, and a cursor that behaves.

04

Package manager

Resolve dependencies, fetch, and install without breaking everything.

05

IDE

Editor, runner, and tooling stitched into one place.

//

Web & Networks

3

Everything that happens between a request and a response.

06Up next

Web server

Raw sockets to HTTP responses. The thing every site secretly is.

07

Browser

Fetch, parse, lay out, and paint a page from first principles.

08

Network protocol

Design the packets, the handshake, and the rules of the conversation.

//

Languages & Compilers

2

Teach a machine to read a language of our own.

09

Programming language

Lexer, parser, and interpreter for a small language of our own.

10

Compiler

Source code in, real machine or byte code out.

//

Data & Crypto

3

Where the bytes are kept, and kept secret.

11

Database

Storage, an index, and a query layer that does not lose your data.

12

Encryption algorithm

Learn cryptography the only honest way: by getting it wrong first.

13

Blockchain

Blocks, hashing, and consensus, demystified by building it.

//

Graphics & Engines

3

Pixels, windows, and the loops that drive them.

14

Game engine

A loop, a renderer, and a scene that comes alive.

15

GUI toolkit

Widgets, layout, and events without a framework underneath.

16

Window manager

Decide where every window lives and how it moves.

//

Systems & OS

9

The machine underneath the machine. The deep end.

17

Virtual machine

A byte code and the machine that runs it.

18

CPU emulator

Fetch, decode, execute. A processor in software.

19

File system

Inodes, blocks, and directories on top of raw storage.

20

Memory allocator

malloc and free, written by hand, fragmentation and all.

21

Scheduler

Decide which task runs next, and make it feel fair.

22

Container runtime

Namespaces and cgroups: what Docker is really doing.

23

Operating system

Boot, manage memory, run processes. The big one.

24

OS kernel in assembly

Down to the metal: a kernel written in assembly.

25

Hypervisor

Run whole machines inside a machine.

We build the hard stuff for fun.

That is the kind of team building your project. Follow along on the blog, or put us to work on something of your own.