← All projects
Personal · Built with Claude Code · 2026 · … min read

Jarvis Dashboard

A homelab control panel stitching together six external systems behind a typed FastAPI adapter layer, with a Next.js 16 / React 19 frontend.

FastAPI Next.js 16 React 19 Docker Jellyfin qBittorrent TMDB

Why

My homelab runs ten+ services, and every one of them has its own admin UI, auth, and quirks. I wanted one place to see everything, and I wanted to build it fast enough that I'd actually finish.

What it does

  • System monitoring: live CPU, memory, disk, and network charts from the host.
  • Docker: list, start, stop, restart containers; tail logs live.
  • Media: Jellyfin "continue watching" and library grid; qBittorrent torrent search and add.
  • Discovery: mood-based movie and show discovery across 12 categories, powered by TMDB and Reddit subreddit scraping.
  • Files: full filesystem explorer across the host.

Architecture

Browser → Next.js → FastAPI → (Docker / Jellyfin / qBittorrent / TMDB / Reddit / SSH).

Every external system sits behind its own typed adapter module on the FastAPI side, with its own auth handling, retry policy, and health check. The frontend never talks to external systems directly — everything goes through the adapter layer, which means I can swap or add services without touching the UI.

6+
External systems integrated
12
Mood-based discovery categories
Typed
Adapter layer per service

Shipping velocity

Built almost entirely via Claude Code skill-based workflows. The adapter-per-service pattern and typed interfaces meant I could add a new integration in a single afternoon. This is the edge of agentic development: the pattern is the product.

Stack

FastAPI · Next.js 16 · React 19 · TypeScript · Docker SDK · Jellyfin API · qBittorrent API · TMDB · Reddit · Tailwind

github.com/Animesh98