One Static HTML File With No Version Control Was Running My Whole Dashboard
The moment a personal dashboard felt risky enough to rebuild properly, and the reframe that turned a cleanup into an operating system.
A single static HTML file with no version control ran my entire personal dashboard, the one tracking every active build. One bad edit could have wiped out months of project tracking with no way to undo it. That's the kind of risk that sits quietly for a long time until you actually notice it.
First move was simple: bring it into Claude Code, where every change has history.
The second move took longer to land on. Instead of treating the dashboard as one app needing a cleanup, I reframed it as an operating system, not just a display, but something that should eventually trigger work, hold memory across sessions, and route tasks to the right agent. That reframe changed what got built next.
The four layers
Kernel
Makes decisions. A daily timer checks whether the date has changed since the dashboard was last opened, and fires a reset signal if so, no more remembering to hit refresh.
Memory layer
Remembers state between sessions. The app points at a local vault folder where session debriefs live, a real second brain on my own machine instead of scattered across a dozen tools.
Process layer
Agents doing the actual work.
Input/output system
Triggers and results.
For the eventual desktop version, I chose Electron over Tauri, mainly because the existing code was already plain HTML and JavaScript, so there was no new language to learn just to wrap it. The technical snag came weeks later, while building the kernel itself: getting Electron's preload script talking to the main process without breaking the existing dashboard, since Electron enforces strict isolation between those two for security reasons.
This is a "the thinking is the part that determines whether the build goes smoothly" piece, and I want to keep that front and center rather than lead with the code. The reframe happened weeks before any code got written. That's the part that made the actual build, kernel first, then memory, go as smoothly as it did once it started.
Go deeper
The First Real Decision in a Multi-Agent Hackathon Build Wasn't About Agents →
Choosing a database under deadline pressure, and why the boring infrastructure call was the one that actually mattered.
The Same Question Kept Coming Up, So It Became a Skill Instead of Staying Buried in Chat History →
Packaging hackathon troubleshooting into a reusable reference so the next integration starts from what was already learned.
Get new guides and builds in your inbox
No noise. New artifacts, skills, and lessons when they drop — and early access when agents launch.
Want a full structured path instead of one-off guides?
That's Learn AI with AI — a sequenced course that takes you from zero to building real things, with community and accountability built in.
Check out Learn AI with AI →