Skip to content

The Stack

Everything below runs something I actually use — most of it every day. Here is how the pieces sit on top of each other.

36 tools 5 layers 4 self-hosted 2 machines

How it fits together

Top is what I touch. Bottom is what it all runs on. Hover a layer for what it does.

Interface
VS Code Claude Code Ghostty

The three windows open all day. Everything else I only see when it breaks.

Agents
LangGraph LangChain FastMCP

Where a prompt becomes a plan — state, tools, and the loop that decides what to do next.

Serving
FastAPI n8n

The layer that turns all of it into something another system can call.

Data & models
Qdrant Postgres Vertex AI Gemini Ollama

Retrieval and inference. Private work stays on the Mac Mini; the rest goes to Vertex.

Runtime
Docker Caddy Tailscale Cloudflare GCP Vercel

Containers, TLS, and a private mesh — so nothing above has to care where it is running.

Machines
MacBook Pro M4 · 24GB · work
Mac Mini M4 · 32GB · always on

Two boxes. One travels, one never sleeps.

Daily drivers

The ones I would replace first if they disappeared tomorrow.

MacBook Pro 14"

Hardware

M4, 24GB, 2024. The work machine — client projects, heavy builds, and anything that has to travel.

daily work since 2024

Mac Mini

Hardware

M4, 10 cores, 32GB, 2024. The personal machine, and the always-on server every self-hosted service on this page runs on.

daily personal since 2024

VS Code

Development

Back to a plain editor. Cursor held this seat for close to two years; once Claude Code moved the agent into the terminal, the editor went back to being an editor.

daily free

Claude Code

Development

Terminal-first, so it lives where the work lives. Best at the tasks I can describe but do not want to type.

daily paid

LangGraph

AI & ML

In production for climate-data workflows. Chose it over plain chains the first time an agent needed to remember what it had already tried.

daily production

n8n

Automation

Self-hosted on the Mac Mini and quietly running most of my life. 3 of my workflow templates are in the official n8n gallery.

daily self-hosted free

Docker

Infrastructure

The reason "works on my machine" stopped being a sentence I say. Compose files are the real documentation for every project here.

daily free

Ghostty

Development

Replaced Warp in 2025. Native, fast, no config-file bankruptcy — and now where most of the work happens, since Claude Code lives here.

daily free

Everything else

Tap any tool for the reason it is here.

What changed

A stack that never moves is a stack nobody uses.

2026 Cursor → VS Code + Claude Code

after nearly two years on Cursor, the agent moved to the terminal and the editor went back to being an editor

2026 Trialled Antigravity

wanted the experience firsthand — it stayed a test, not a tool

2025 Warp → Ghostty

native rendering, and a config I own

2024 Added the Mac Mini as an always-on server

self-hosted services should not depend on a laptop lid being open