Projects

Build real things

A curated set of real projects to build, organized by role and difficulty. Each has a full guide: what you build, how it works, and where to start. The fastest way to learn a skill is to ship with it.

For your role

By level

Beginner

20

AI & Agents

Recall: AI Flashcard Generator

Paste study text and generate clean question-and-answer flashcards you can review with spaced repetition, all stored locally.

TypeScriptAI
6 guides

Backend & APIs

Shrtn: URL Shortener API

Build a REST API that turns long links into short codes, redirects on lookup, and counts clicks, with rate limiting and tests.

TypeScript
6 guides

Data & ML

DataLab: Clean and Chart a Real Dataset

Take a messy public CSV, clean and reshape it, then produce labeled charts and a short findings write-up in a notebook.

Python
6 guides

Games

Starshard: A 2D Arcade Game

Build a playable space shooter with sprites, collisions, enemy waves, score, sound, and a game-over screen.

GDScript
6 guides

Mobile

Streaks: A Habit Tracker App

Build a cross-platform mobile app to track daily habits with streaks, local persistence, and reminder notifications.

TypeScript
6 guides

Security

SafeKey: Password Strength and Breach Checker

Build a tool that scores password strength and checks if a password leaked using the k-anonymity range API, exposing nothing.

Python
6 guides

Systems & CLI

Jot: A Terminal Notes CLI

Build a fast CLI to add, list, search, and tag notes saved locally, packaged as a single installable binary.

Go
6 guides

Systems & CLI

minigrep: A Search Tool from Scratch

Build a command-line text search tool that recurses directories, matches patterns, and prints colored line-numbered hits.

Rust
6 guides

Web

Developer Portfolio Site

A fast, personal site that shows your projects and gets you found.

TypeScript
6 guides

Web

Inkwell: Markdown Blog Engine

Build a fast static blog that turns Markdown files into pages with tags, RSS, and SEO meta, deployed for free.

TypeScript
6 guides

Web

Shopfront: Product Listing UI

Build a shoppable product grid with search, multi-filter, sort, and a persistent cart that survives page reloads.

TypeScript
6 guides

Web

SkyCast: Live Weather Dashboard

Build a responsive dashboard that geolocates the user, fetches a live forecast API, and renders 7-day charts with loading and error states.

TypeScript
6 guides

Web

TaskFlow: Full-Stack Task App with Auth

Build a task manager where users sign up, log in, and CRUD their own tasks backed by a real Postgres database.

TypeScript
6 guides

Systems & CLI

wc: Build a Word Count Tool

Build a command-line tool that counts the bytes, characters, words, and lines of a file or piped input, mirroring the behavior and flags of Unix wc.

Go
1 guide

Systems & CLI

Build a Calculator

Build a command-line calculator that evaluates arithmetic expressions with correct operator precedence and parentheses using a tokenizer and a recursive-descent parser.

Python
2 guides

Systems & CLI

cut: Build a Column Extractor

Build a command-line tool that extracts selected fields or columns from delimited text using -f and -d flags, just like Unix cut.

Python
1 guide

Security

Build a Port Scanner

Build a tool that scans a host for open TCP ports concurrently with configurable ranges, timeouts, and a clean summary report.

Go
1 guide

Web

Build a QR Code Generator

Build a generator that encodes text into a scannable QR code image by implementing the data encoding and error-correction steps yourself.

Python
1 guide

Games

Snake in the Browser

Build the classic Snake game in vanilla JavaScript on an HTML canvas, with a game loop, growth, collision detection, scoring, and a game-over state.

JavaScript
1 guide

Games

Tic-Tac-Toe with an Unbeatable Bot

Build a Tic-Tac-Toe game whose computer opponent uses the minimax algorithm and therefore can never lose.

Python
1 guide

Intermediate

21

AI & Agents

Ask-a-Podcast RAG Search

Transcribe a podcast back-catalog, chunk and embed it, then answer questions with cited timestamps that deep-link into episodes.

PythonAI
6 guides

AI & Agents

Chatbot That Remembers You

Build a chat assistant that persists facts about each user across sessions and recalls them in later conversations.

TypeScriptAI
6 guides

AI & Agents

LLM Trip Planner With Live Tools

Build an agent that plans a trip by calling real flight, weather, and maps APIs through function calling and streaming the itinerary.

TypeScriptAI
6 guides

AI & Agents

Local LLM Workstation

Run open models like Llama 3 and Qwen fully offline, with a clean chat UI.

PythonAI
6 guides

Backend & APIs

URL Shortener With Click Analytics

Build a link shortener that survives traffic spikes, with cached redirects, custom slugs, and a live per-link click dashboard.

TypeScript
6 guides

Data & ML

Custom Image Classifier, Shipped

Fine-tune a vision model on your own labeled photos and serve real-time predictions from a web app with confidence scores.

PythonAI
6 guides

Data & ML

Streaming Event Analytics Pipeline

Ingest a firehose of clickstream events, aggregate them in real time, and serve sub-second metrics to a live dashboard.

Python
6 guides

DevOps & Cloud

GitOps Deploy Pipeline

Containerize an app and ship it on every git push with a CI pipeline that builds, scans, and auto-deploys to Kubernetes.

YAML
6 guides

Games

Authoritative Multiplayer Game Server

Build a top-down .io game with a server-authoritative loop, client prediction, and reconciliation so cheating and lag both lose.

TypeScript
6 guides

Mobile

Offline-First Mobile App With Sync

Build a cross-platform notes-and-tasks app that works fully offline and syncs cleanly the moment a device reconnects.

TypeScript
6 guides

Security

End-to-End Encrypted Chat

Build a 1-to-1 messenger where keys live only on devices and the server stores nothing but ciphertext it cannot read.

TypeScript
6 guides

Systems & CLI

Distributed Rate Limiter & API Gateway

Build an API gateway that enforces per-key sliding-window rate limits across multiple nodes backed by Redis.

Go
6 guides

Web

Realtime Collaborative Whiteboard

Build a multiplayer canvas where many cursors draw and edit live with no merge conflicts, using CRDTs over WebSockets.

TypeScript
6 guides

Systems & CLI

Build a JSON Parser

Write a hand-rolled lexer and recursive-descent parser that turns raw JSON text into native objects, arrays, numbers, and strings with precise error messages.

TypeScript
2 guides

Systems & CLI

jq: Build a JSON Query Tool

Build a command-line tool that reads JSON on stdin and filters, indexes, and transforms it with a small path-and-pipe query language you design and implement.

Go
2 guides

Backend & APIs

Build Your Own Redis

Build an in-memory key-value server that speaks the Redis RESP protocol over TCP and serves GET, SET, and key expiry to many concurrent clients.

Go
2 guides

Backend & APIs

Build a Rate Limiter

Build HTTP middleware that throttles requests per client using token-bucket and sliding-window algorithms backed by Redis, returning standard rate-limit headers.

TypeScript
1 guide

Backend & APIs

Real-Time Chat with WebSockets

Build a WebSocket chat server and client supporting multiple rooms, presence and typing indicators, and live message broadcast to all connected members.

TypeScript
2 guides

Games

Build Tetris

Build a playable Tetris with a fixed-timestep game loop, all seven tetrominoes, rotation and collision detection, line clears, leveling, and scoring.

C++
1 guide

Backend & APIs

Build a Search Engine

Index a collection of documents into an inverted index and rank full-text queries by relevance using TF-IDF scoring.

Python
1 guide

Web

Build Your Own Virtual DOM

Build a tiny virtual DOM library with an h() function, a diff algorithm, and reconciliation that patches only the changed parts of the real DOM.

JavaScript
1 guide

Advanced

21

AI & Agents

Agentic RAG Knowledge Platform

Build a hybrid-search RAG service that routes queries across retrieval, web fallback, and a reranker, with citations and an offline eval harness that scores faithfulness.

PythonAI
6 guides

AI & Agents

Autonomous Coding Agent

Build an agent that reads a GitHub issue, plans, edits files in a sandbox, runs tests, self-corrects on failures, and opens a pull request, then score it on real SWE-bench tasks.

PythonAI
6 guides

AI & Agents

Build Your Own LLM From Scratch

Train a small GPT-style model end to end: write the tokenizer, the transformer, pretraining, supervised fine-tuning, and a chat inference server you can talk to.

PythonAI
6 guides

AI & Agents

Multimodal Semantic Search Engine

Index images and text into one embedding space with CLIP, build a low-latency vector index with metadata filtering, and serve cross-modal search where text queries find images.

PythonAI
6 guides

AI & Agents

RAG Over Your Notes

A chatbot that answers from your own PDFs, notes, and Obsidian vault, with sources.

PythonAI
6 guides

AI & Agents

Real-Time Voice Agent With MCP Tools

Build a sub-second speech-to-speech agent that calls live tools through a Model Context Protocol server you write, with barge-in, streaming audio, and turn-taking handled cleanly.

PythonAI
6 guides

Data & ML

Fine-Tune and Serve a Domain LLM

Curate a domain dataset, fine-tune an open model with QLoRA, quantize it, serve it behind a fast inference endpoint, and prove the lift with an LLM-judge eval suite.

PythonAI
6 guides

Data & ML

Real-Time Fraud Detection Pipeline

Stream transactions through Kafka and Flink, compute online features in a feature store, score them with a model in under a second, and watch precision and recall drift on a live dashboard.

PythonAI
6 guides

Data & ML

Two-Tower Recommender Engine

Build a production recommender with two-tower retrieval and a ranking model, serve nearest-neighbor candidates from an ANN index, and run an offline-to-online A/B eval loop.

PythonAI
6 guides

Data & ML

Vectorized Columnar Query Engine

Build a small analytical query engine that parses SQL, plans and optimizes it, and executes vectorized scans and joins over columnar Parquet files with predicate pushdown.

Rust
6 guides

Security

Supply-Chain Security Scanner

Build a CLI that generates an SBOM for a repo, flags known CVEs and risky transitive dependencies, verifies build provenance with signatures, and gates a CI pipeline on policy.

Go
6 guides

Systems & CLI

Distributed Key-Value Store With Raft

Implement Raft leader election and log replication from scratch, build a replicated key-value store on top, add snapshots and membership changes, and survive partitions under a fault injector.

Go
6 guides

Web

Collaborative Editor With CRDTs

Build a real-time multiplayer document editor where edits merge without conflicts using a CRDT, sync offline-first over WebSockets, and show live cursors and presence.

TypeScript
6 guides

Systems & CLI

Build Your Own Shell

Write a Unix shell in C that runs external programs, pipes them together, redirects their I/O, and handles signals like a real terminal.

C
2 guides

Systems & CLI

Build a Text Editor

Write a terminal text editor in about 1000 lines of C with raw-mode input, VT100 screen rendering, syntax highlighting, and incremental search.

C
1 guide

Systems & CLI

Build a Database

Build a small relational database with a SQL REPL, a paged storage engine, and a B-tree index that persists rows to disk.

C
1 guide

Systems & CLI

Build Your Own Git

Reimplement the core of Git as a content-addressable store with init, add, commit, log, and branches backed by SHA-1 blobs, trees, and commits.

Python
2 guides

Games

Build a Ray Tracer

Write a physically based ray tracer that renders spheres with diffuse, metal, and glass materials, plus anti-aliasing and depth of field, to an image file.

C++
1 guide

Backend & APIs

Build a BitTorrent Client

Write a BitTorrent client that parses a .torrent file, contacts the tracker, and downloads a real file in pieces over the peer wire protocol.

Go
1 guide

Security

Build a DNS Resolver

Write a DNS resolver that builds and parses binary DNS packets over UDP and recursively resolves names starting from the root servers.

Rust
2 guides

DevOps & Cloud

Build a Container Runtime

Run a process inside an isolated container using Linux namespaces, cgroups, and a chrooted root filesystem, with no Docker involved.

Go
2 guides

Pro

19

AI & Agents

Agent Evaluation & Observability Harness

A test rig that replays agent trajectories against graded task suites, scores them with an LLM judge, and tracks regressions across model and prompt versions

PythonAI
6 guides

AI & Agents

Build Your Own AI Coding Agent

A terminal coding agent that reads your repo, plans edits, runs tools in a loop, and opens PRs with a real agent harness and permission gates

TypeScriptAI
6 guides

AI & Agents

Multi-Agent Research Swarm

An orchestrator-worker system where a lead agent spawns parallel sub-agents that fan out web searches, critique each other, and merge a cited report

PythonAI
6 guides

AI & Agents

Personal Agent That Lives in Your Chats

A Telegram and iMessage agent with long-term memory and a cron scheduler that proactively runs jobs, remembers context, and acts across your tools

TypeScriptAI
6 guides

Backend & APIs

Relational Database With a Query Planner

A SQL database engine with a B+tree storage layer, a write-ahead log, MVCC transactions, and a cost-based optimizer that plans real queries

Rust
6 guides

Data & ML

LLM Inference Server From Scratch

A GPU inference server that loads open weights and serves them with a KV cache, paged attention, and continuous batching behind an OpenAI-compatible API

PythonAI
6 guides

Data & ML

Text-to-Image Diffusion Model From Scratch

Implement a latent diffusion model with a U-Net denoiser and CLIP conditioning, train it on an image set, and sample new images from a text prompt

PythonAI
6 guides

Data & ML

Train a Small Language Model From Scratch

Pretrain a ~100M-parameter transformer on your own tokenized corpus, then instruction-tune and align it with DPO until it follows chat prompts

PythonAI
6 guides

DevOps & Cloud

Container Runtime From Scratch

A Docker-like runtime in Go that isolates processes with Linux namespaces and cgroups, pulls OCI images, and runs them with an overlay rootfs

Go
6 guides

Games

Physically-Based Ray Tracer

A from-scratch path tracer that renders photoreal scenes with global illumination, materials, and a BVH acceleration structure on multiple threads

Rust
6 guides

Systems & CLI

Optimizing Compiler to Native Code

A compiler for a small typed language that parses to an SSA IR, runs real optimization passes, and emits native machine code via LLVM

Rust
6 guides

Systems & CLI

Build a TCP/IP Stack

Implement a userspace TCP/IP stack over a TUN/TAP device that speaks Ethernet, ARP, IPv4, and ICMP and drives a real TCP connection through its full state machine.

C
2 guides

Systems & CLI

Build a Programming Language

Build a complete dynamic language with a scanner, a Pratt parser, a single-pass bytecode compiler, and a stack-based virtual machine with its own garbage collector.

C
1 guide

Systems & CLI

Write a C Compiler

Build a compiler that lexes and parses a growing subset of C and emits real x86-64 assembly, stage by stage, until it compiles non-trivial programs.

Python
1 guide

Systems & CLI

Build an OS Kernel in Rust

Build a bare-metal x86-64 kernel in Rust that boots, prints to the screen, handles CPU exceptions and hardware interrupts, and manages memory with paging and a heap allocator.

Rust
1 guide

Games

Build a Game Boy Emulator

Emulate the Game Boy's CPU, memory map, timers, and pixel-processing unit accurately enough to boot the BIOS and run real commercial ROMs.

C++
2 guides

Web

Build a Browser Rendering Engine

Parse a subset of HTML and CSS into a DOM and style tree, lay it out with the box model, and paint the resulting boxes to a bitmap.

Rust
2 guides

DevOps & Cloud

Build a Layer-7 Load Balancer

Build an HTTP reverse proxy that spreads requests across a pool of backends with active health checks and pluggable balancing algorithms.

Go
1 guide

Backend & APIs

Build an MQTT Broker

Build a publish/subscribe message broker that speaks MQTT with topic matching, QoS levels, retained messages, and persistent sessions on an event-loop server.

C
1 guide