The Web App That Replaced the Terminal Tab

Engineers keep two things open: a terminal and too many browser tabs. The terminal is fast — you type, things happen, your hands never leave the keyboard. The tabs are slow — menus, clicks, context-switching every time you want to do something.

The question nobody asked is: why can't the browser tab work like the terminal?

The recording opens on the in-app hero, so it can look like a static banner until playback.

Stack-One Logs — command palette, vim navigation, error sorting. No mouse required.

Type what you want. Get what you need.

Press ⌘K. A palette opens. Type "sort errors". Hit enter. Done.

That is the entire interaction. No hunting through column headers. No right-click menus. No reaching for the mouse. The dashboard responds to typed intent — the same way a terminal does — but with something the terminal cannot offer: a chart that shows you exactly where the problem is before you type anything.

The chart and the table are connected. Click a spike at 14:23 and the table filters to that twelve-second window. One click collapses "something went wrong around 2pm" into "here are the seventeen requests that failed." The investigation that used to take ten minutes of grep and mental arithmetic takes one.


It runs like an app, not a tab

Install it. It leaves the browser. It gets its own window, its own dock icon, and it opens instantly — no address bar, no tab group, no "wait which one was the logs?"

It sits beside the terminal the way a second terminal window does. Same alt-tab behaviour. Same cognitive weight. Engineers who work in dark mode get a UI that matches their terminal by default — no configuration required.


Why this matters beyond this one tool

This is not a feature story. It is a pattern.

Any developer dashboard — logs, metrics, deploys, incidents — can be built this way. Command palette as the fast path. Keyboard shortcuts for the actions you do twenty times a day. URL-synced state so you can share an investigation with a link instead of a screenshot. PWA install so the tool earns a place in the dock instead of disappearing into browser tab chaos.

The browser has been underestimated as a platform for serious developer tooling. The assumption that you have to choose between a good interface and a fast one is wrong — and the tools that make that choice will age poorly.

Technical implementation details

The keyboard surface is built from three layers: a ⌘K command palette (via cmdk wrapped in a Radix Dialog), vim-style row navigation (j/k/Enter/Esc), and single-key shortcuts (/ for search, r for refresh).

Every filter, chart slice, selected log, and open drawer tab is stored in the URL via useSearchParams. Share a URL and the full investigation state restores — time range, selected log, open tab, everything.

The PWA is powered by vite-plugin-pwa. The app shell is precached by the service worker so the interface loads instantly on cold open. The chart uses Visx with a Zustand hover store for bidirectional sync between bars and rows — hovering a bar highlights matching rows, hovering a row lifts the matching bar.

The dark mode default follows prefers-color-scheme and persists an explicit override only when the user sets one. prefers-reduced-motion zeros all animation durations site-wide.

The live demo runs at stack-one.hyperdrift.io/logs. Source at github.com/yannvr/stack-one-logs.


Building tools that respect how engineers actually work — keyboard-first, focused, fast — is what Hyperdrift is for. If that's the kind of work you want to do or commission, .

Get weekly intel — courtesy of intel.hyperdrift.io