← Projects

Terminal Dashboard

A keyboard-first TUI that streams system metrics, logs and deploy status into one composable view.

Year
2026
Stack
Rust, Ratatui, Tokio, WebSockets
Abstract dashboard panels floating over a blue gradient

The problem

I was juggling five terminal tabs to keep an eye on a deploy. I wanted one screen that showed everything — and could be rearranged with a few keystrokes.

How it works

Each panel is a small async task that publishes to a shared channel. The renderer diffs state at 60 fps and only redraws what changed.

let (tx, rx) = tokio::sync::watch::channel(Metrics::default());
tokio::spawn(collect_metrics(tx));
ui::run(rx).await?;

What I learned

  • Terminal rendering is fast — until you redraw everything every frame.
  • Designing keybindings is UX design, just with fewer pixels.

A screenshot can go here — drop the image next to this file