Skip to main content

About this project

Infrastructure deserves good documentation.

This site is a personal record of every piece of hardware in my homelab. Not tutorials. Not reviews. Technical storytelling about what I actually built, what runs on it, and the decisions behind every choice.

Why document a homelab?

Homelabs accumulate complexity fast. Within a year you have a dozen services, three subnets, and a NAS config you don't fully remember. The first time something breaks at 2 AM is when you realize you should have written it down.

But most homelab documentation is a markdown file in a private git repo, a pile of bookmarks, or — nothing. This is an attempt to do it properly: each device gets a structured page that answers the questions I'll actually ask when debugging.

The format

Each device page is structured around five questions:

  • What did I build?

    Concrete outcomes, not aspirations. What actually works and is running.

  • What runs on it?

    Every service and technology in use, with version context.

  • How is it architected?

    The actual topology, config structure, and data flows.

  • Why did I choose X?

    The decisions that shaped the setup, with the reasoning preserved.

  • What would I change?

    Honest retrospective. What works, what doesn't, what's next.

The design

I wanted documentation that feels as considered as the hardware itself. Apple's product pages set a standard for communicating technical detail without visual noise. This borrows that structure — cinematic heroes, clear hierarchy, premium spacing — and applies it to technical documentation instead of marketing.

No neon. No gradients for the sake of gradients. Just a dark, focused surface that gets out of the way of the content.

Adding a device

Each device is an MDX file in src/content/devices/. The schema enforces consistency: every device has a name, status, role, services list, decisions, and specs. The MDX body is free-form — use it for architecture diagrams, config samples, tables, anything that needs more than bullets.

# Create a new device
cp src/content/devices/rpi4-home-assistant.mdx src/content/devices/my-new-device.mdx

# Edit the frontmatter
# - Set name, type, status, headline, role
# - Add services[], stack[], outcomes[]
# - Fill in decisions and specs
# - Add photos to public/assets/devices/

# The page builds automatically at /device/my-new-device

Tech stack

Astro 5Tailwind CSSMDXContent CollectionsView Transitions APIIntersectionObserverWeb Animations API