← Back to projects
In progress 2026

MeOS — Personal Data OS

A local-first hub that aggregates the data from my own life into one place, visualizes it, and puts an LLM in the loop to make sense of it — with an interactive personal-network graph as the centerpiece.

  • TypeScript
  • Three.js / D3
  • Claude / LLM
  • Local-first
  • Data viz

The idea

Most of my data lives scattered across apps that don’t talk to each other and that I don’t really own. MeOS is the system I’m building to fix that for myself: a local-first hub that pulls in data I legitimately own — contacts, calendar, notes, and my own platform exports — aggregates it in one place, visualizes it, and keeps an LLM in the loop to summarize and route what matters.

The design goal is honest ownership: my data plus a local store that outlives any cloud vendor, built as composable modules so it grows over time. Existing tools I’ve built — a job tracker, a training coach — are early modules of this same system.

The centerpiece: a personal-network graph

The first piece I built is the part that’s the most fun to show: an interactive, force-directed graph of the people in my life and how they connect. Each node is a person, with notes on how I know them, last contact, and shared context; edges are the relationships between them. You can drag, zoom, and explore the graph in real time.

Crucially, it’s populated only from data I own and consent to — my own contacts and my own platform “download your data” exports. It deliberately does not scrape anyone else’s hidden social-graph data; that’s fenced off both legally and on principle.

What’s technically interesting

  • A real-time force-directed graph rendered in the browser, built to stay smooth as the node count grows — the kind of data-heavy, interactive visual that’s genuinely hard to make feel good.
  • An LLM as connective tissue. A universal capture box where any note or link is routed by Claude to the right module, plus a daily one-page brief assembled across modules — structured-output calls, not free-text guesswork.
  • Local-first by design. The data model is owned and stored locally so the system doesn’t depend on a vendor staying alive.
  • A modular architecture — each life area is a module behind a shared shell, so the system composes instead of becoming one monolith.

Where it is now

In progress, and honest about it: the network-graph module works and is the piece I demo. The aggregation pipeline and the cross-module daily brief are actively being built out. I’m the demanding first user — which is exactly why it keeps getting better.