
I just wrapped Phase 0 of FoxWatch, a free PC health monitor I'm building, and the milestone is kind of funny to type out: the app now successfully does nothing.
You launch it and there's no window. Just a little fox in your system tray. Click it and you get a dashboard that basically says "everything's fine." That's it. That's the whole Phase 0 deliverable, and honestly I think it's the most important call in the entire project.
Let me explain why I'm weirdly proud of an app that opens to a blank slate.
The whole idea
Every PC monitor out there shows you the same stuff: CPU graph, memory graph, disk gauge, a wall of temperatures. And here's the thing. Collecting all that is free. The OS just hands it to you. There are a dozen libraries that wrap it in an afternoon.
So if the data's free, the data can't be the product. Right?
The actual product is the part that decides what's worth bugging you about, and 99% of the time the honest answer is "nothing, your machine is fine." That's the bet FoxWatch is making. Not "here's another dashboard to check." More like a quiet watcher that earns the right to interrupt you exactly once, when your SSD is actually dying, and stays invisible every other day.
Once I framed it that way, a lot of decisions got easy. FoxWatch isn't something you open. It's something you forget about until it taps you on the shoulder.
And honestly that's the part I need, personally. My brain (ADHD, plus a few years of a military always-be-scanning habit) does not need one more thing to half-watch in the background. I want something that's got my six. Something quietly holding the watch so I don't have to carry it around in my head. Less to track, less load. For me that is the feature, more than any graph could be.
So yeah, the first feature is being invisible
Which is why Phase 0 is deliberately an app that opens to nothing:
- Lives in the tray, not the taskbar. The tray icon color is the UI. Green means ignore, amber means "eh, worth a look, no rush," red means deal with this now. You read your machine's health with a glance and never open anything.
- Closing it hides it, doesn't quit it. Hit the X and it tucks back into the tray and keeps running. An always-on monitor you can accidentally close by clicking X isn't really always-on.
- Starts with Windows, straight to the tray. No window flashing on login, it's just quietly there.
- The dashboard default is "you're good." Not a grid of gauges, just "everything's healthy, nothing needs you," plus a little sleep log: how long the fox has been napping. (Mine's on a 2-day nap as I write this.)
None of that was technically hard. The hard part was not filling the empty space. Every builder instinct I have says put something on the screen. But the rule I set is: if it doesn't map to something you'd actually do, it doesn't get shown. The empty screen is the feature.
What's actually under it
Phase 0's a Tauri v2 shell: Rust core, Svelte frontend running in the native WebView. I went Tauri specifically because I didn't want to ship a whole browser like Electron would; an always-on watcher needs to be tiny. Tray, hide-on-close, autostart, all wired and working.
The part I'm quietly happy about: the triage engine is already in there. I'd written it as a spike before committing to the architecture, and it's a pure function (metrics + history in, decisions out, no I/O, no reading the clock) so I can test the hell out of it. It's sitting in the core right now with literally nothing to do. Asleep, basically. Which, for a thing built by Narcoleptic Fox, feels about right... it looks like it's dozing, but it's wired to snap awake the second you need it. Phase 1 gives it real data. Phase 2 is where it actually wakes up.
Also, real talk: I nearly nuked the whole design folder this week. Ran a scaffolder in a folder that wasn't empty and it happily wrote over my stuff. Got it back, moved the project somewhere clean, and left myself a big angry warning in my own notes. Building in public means posting the dumb ones too.
The thing I had to get comfortable with
An app whose goal is "the user never opens it" is a strange thing to build. There's no engagement number to chase. If it's doing its job you forget it exists for weeks, and then one random Tuesday it goes "hey, your drive's failing, back up today," — and that one correct interruption is worth more than a thousand dashboard opens.
So Phase 0 opening to nothing isn't missing features. It's the whole personality showing up in the first ten seconds: quiet, private, out of your way, only speaks when it matters.
Next up
Phase 1 is where it starts breathing. A sysinfo collector feeding real samples into local SQLite, and the dashboard finally showing your actual machine instead of a placeholder. Still quiet, but now quiet about something real.
More soon.





