local-first · no account required

Learn infrastructure engineering by building the real thing.

First Principles is a self-paced curriculum of 17 real systems — rate limiters, load balancers, container runtimes, Raft-replicated stores — built from scratch in Go, Rust, or TypeScript. Backed by an interactive knowledge base and an AI assistant that actually knows your content.

systems built from scratch
17
systems built from scratch
knowledge-base chapters
11
knowledge-base chapters
interactive topics
70+
interactive topics
local, runs in your browser
100%
local, runs in your browser
fpr.joshthebuilder.dev/levels

Roadmap

17 Levels

Rate Limiter

Completed

Networking

IntermediateTS

Redis Clone

In Progress

Databases & Storage

AdvancedRust

Service Discovery

In Progress

Distributed Systems

AdvancedGo

Tiny Docker Runtime

Not Started

Containers

AdvancedGo

Built for engineers who learn by shipping, not skimming.

Project-based, not video-based

Every concept is paired with a real system to build from scratch in Go, Rust, or TypeScript — not another lecture to sit through.

Local-first and private

The whole app runs on IndexedDB in your browser. No login, no tracking, no server round-trips.

Depth over breadth

A coherent progression from OS fundamentals through distributed systems to platform engineering — not a grab-bag of tutorials.

An AI partner that knows your content

Answers grounded in the app's own levels, topics, and notes — not a generic chatbot.

Everything in one place

Project specs, a knowledge base, notes, tasks, reading lists, and progress dashboards — no five-tool juggling act.

The Curriculum

17 real systems, built from scratch.

Every level ships with a tiered spec — minimum requirements through production features — real-world context, failure scenarios, benchmarks to hit, a source-reading list, and a step-by-step build guide with working code in Go, Rust, or TypeScript.

Shell & Systems Programming

Tiny Bash

BeginnerGo~1 week

Shell & Systems Programming

Unix Utilities

BeginnerRust~1 week

Networking

Netcat Clone

BeginnerGo~1 week

Networking

HTTP Server

IntermediateGo~2 weeks

Networking

Reverse Proxy

IntermediateGo~2 weeks

Networking

Rate Limiter

IntermediateTypeScript~1 week

Databases & Storage

Redis Clone

AdvancedRust~3 weeks

Distributed Systems

BullMQ Clone

AdvancedTypeScript~3 weeks

Distributed Systems

Cron Scheduler

IntermediateTypeScript~1 week

Distributed Systems

Service Discovery (Consul)

AdvancedGo~2 weeks

Networking

Load Balancer (HAProxy)

AdvancedGo~2 weeks

Networking

API Gateway (Kong)

AdvancedGo~3 weeks

Containers & Orchestration

Tiny Docker Runtime

AdvancedGo~3 weeks

Containers & Orchestration

Tiny Railway

AdvancedGo~3 weeks

Containers & Orchestration

Tiny Nomad

AdvancedGo~3 weeks

Security

Tiny Vault

AdvancedRust~2 weeks

Containers & Orchestration

Mini Brimble

AdvancedTypeScript~4 weeks

Every level is more than a spec sheet.

  • Tiered spec: minimum → recommended → advanced → production features
  • Real-world systems this pattern powers in production
  • Concrete failure scenarios and benchmarks to hit
  • A curated source-code reading list
  • Step-by-step build guide with real, working code
  • Article, video, and interview-question prompts
rate_limiter.go — how-to-build-this
func (l *Limiter) Allow(key string) bool {
now := time.Now().UnixNano()
bucket := l.buckets[key]
// refill tokens based on elapsed time
elapsed := float64(now - bucket.last) / 1e9
bucket.tokens = min(l.capacity, bucket.tokens+elapsed*l.rate)
 
if bucket.tokens < 1 {
return false
}
bucket.tokens--
return true
}
Topics

An interactive knowledge base, not a wall of markdown.

11 chapters, ~70 topics — each with a concept explanation, an analogy-driven mental model, real-world examples, common mistakes, and production lessons. Browsable, searchable, and built to be read in five minutes, not fifty.

Go vs. Node.js, side by side

The Concurrency chapter covers Go's goroutine scheduler and Node's event loop as two variants of the same topic, with a toggle to flip between them.

Real diagrams, not ASCII art

TCP handshakes, the LSM-tree write path, Raft leader election, CAP theorem, Linux namespaces — hand-built, theme-aware diagrams for the ideas that need a picture.

Cross-linked with the curriculum

Every topic links to the level(s) that put it into practice, and every level links back to the topics behind it — so theory and the build stay connected.

  1. 00

    Foundations and Method

    The mental models everything else builds on

  2. 01

    Operating Systems

    Processes, memory, files, signals

  3. 02

    Networking

    TCP, HTTP, reverse proxies, load balancing

  4. 03

    Concurrency

    Go goroutines vs. the Node.js event loop

  5. 04

    Databases and Storage Engines

    WALs, indexing, concurrency control

  6. 05

    Infrastructure Components

    Rate limiters, queues, gateways, service discovery

  7. 06

    Distributed Systems

    CAP, Raft, sharding, consistent hashing

  8. 07

    Platform Engineering

    Containers, deploy pipelines, PaaS internals

  9. 08

    Production Engineering

    HA, observability, deployment strategy, chaos

  10. 09

    Security Engineering

    Threat modeling, secrets, mTLS, supply chain

  11. 10

    Career Building

    Getting known for infrastructure engineering

Ask AI — grounded in your levels & topics
Context pulled from: Rate Limiter · Failure Scenarios
Why does my rate limiter let bursts through right after a refill?
That's expected with a token bucket — refills happen in discrete steps, so a full bucket can release its entire capacity at once. Your Rate Limiter level's Failure Scenarios section covers this exact case.
Ask a question...
AI Assistant

Ask questions. Get answers grounded in what you’re studying.

A slide-out chat, powered by your own free Google Gemini API key — no subscription, no middleman server. It’s the one deliberate exception to the app’s local-first design, and it only runs when you ask it to.

Grounded in your own content

Before answering, it automatically pulls in relevant context from your Levels, Topics, and Notes — so answers point back to material you already have.

Multiple named, searchable sessions

Every conversation is saved locally as its own session, with a searchable list — no more losing a good answer in one giant thread.

Syntax-highlighted responses

Code in AI replies is parsed and highlighted automatically, matching the same theme-aware highlighting used across the rest of the app.

Study Workflow

One app to run the whole self-study program.

Notion-style notes

A rich-text editor on every level — bold, headings, task lists, blockquotes, links, and live syntax-highlighted code blocks. Clean list view, full-page editor, autosave.

BoldH1/H2TasksCode

Dashboards, streaks, and a timeline

Progress by level, current streak, resources completed, articles written — plus an auto-generated activity timeline every time you write a note, finish a task, or complete a resource.

17

levels

🔥 4

day streak

62%

complete

Keyboard-first navigation

A global ⌘K command menu jumps to any level, topic, or page instantly. A dedicated search page covers every entity in the app — levels, topics, notes, tasks, resources.

Kjump anywhere
Own Your Data

Local-first, by design — not as a compromise.

This isn’t a web app with a database behind it. It’s a progressive, browser-native app: your levels, notes, tasks, and study history live in your browser’s own storage. Close the tab, come back next week, everything is exactly where you left it.

Everything stored locally

IndexedDB in your browser. Nothing is uploaded anywhere by default.

No account, no sign-up

No login screen, no password, no server round-trip for core functionality.

One-click full data export

Export every level, note, task, and log to a single JSON file, any time.

Light & dark mode

A clean interface that adapts to how you actually like to read at 11pm.

Settings — Data Management

Export all data

first-principles-export-2026-07-09.json

Export

Storage

IndexedDB · on this device only

Account

None required

17 systems to build.
0 servers of your own.

Every level, note, and study log lives in your browser’s own storage — not on a server we run.

Stop reading about infrastructure. Start building it.

Free, local-first, no account required. Open the app and pick your first level.