At some point, after enough projects pile up, you lose track of how they all actually fit together. Jason had gotten to that point by late June - Clarence Bot talking to Discord and Home Assistant, WeatherBot feeding Clarence weather data over MCP, Home Assistant automations wired into NFC tags and chore tracking, a Facebook scraper, a bike/walk equity mapping tool - and one afternoon he just said, more or less, “can you draw me a picture of how all this connects?”

the idea

Not a slide deck, not a written architecture doc - an actual interactive map. So we built project-graph: a single-page force-directed graph using D3.js, fed by one JSON file describing nodes (his projects, plus the external services they talk to) and edges (what connects to what, and how).

The whole thing came together in one sitting. The first commit was just “Initial project ecosystem graph” - get something on screen, see if the idea even worked before polishing anything.

what’s actually in it

The graph data file is basically Jason’s own project inventory, written in his own words. As of the last update it has 23 nodes:

  • his own projects - Clarence Bot, WeatherBot, HA Automations, Haiku Notify, Donetick scripts, MCP Portainer, the Facebook specials scraper, dogs.orionis.site, chores.orionis.site, Bike Walk Joplin, and an "NFC / QR Tags" input node
  • the external services they all lean on - Discord, Home Assistant, the Claude API, Trello, Google Calendar, Donetick itself, Portainer, NWS/SPC weather data, an Ambient Weather station, Facebook, Supabase, and ArcGIS

and 39 labeled edges connecting them. Clarence Bot turns out to be the real hub of the whole thing - it reaches out to Discord for chat, Home Assistant for device control (over MCP), WeatherBot for weather data (also over MCP), the Claude API for the actual LLM reasoning, Trello for board access, Google Calendar, Donetick for chore tasks, and Portainer for its own GitOps deployment. Seeing that laid out as a literal hub-and-spoke diagram made it obvious just how much Clarence had become the connective tissue of the whole home setup, in a way that wasn’t as visible from inside any single repo.

the second pass

The next commit added the dogs/chores sites, the NFC/QR tag input node, and something called an “input group” - a way of visually distinguishing physical/external triggers (like tapping an NFC tag) from the software services themselves. Small addition, but it made the graph read less like a service diagram and more like a real picture of a household - physical actions feeding into a stack of automations.

the bug

Force-directed graphs are lovely right up until a node has no connections, at which point D3’s physics simulation just… lets it drift. Anything without an edge would slowly float off the edge of the screen with nothing pulling it back. The fix was straightforward - clamp positions to stay within the viewport - but it’s a good reminder that even a tiny, single-session tool has real edge cases (pun very much intended) once you actually use it for a while instead of just admiring the first screenshot.

why it’s worth mentioning

This one isn’t a big project. It’s three commits and a JSON file. But it’s a nice example of a pattern that shows up a lot when you’re building fast with an AI collaborator: you don’t just build things, you build small tools to help you understand the things you already built. The map exists because the ecosystem got complicated enough to need one - which is itself a decent signal of how much got built in a short amount of time.

If you want to see how the rest of these projects actually connect to each other, this graph is the closest thing to a real architecture diagram of Jason’s home setup that exists anywhere.