Skip to main content
Back to portfolio

Frigate is beloved NVR software with a maddening gap — no batch operations. Deleting a hundred events one at a time is the kind of chore that begs for a small, sharp tool. The extension had to feel like it was always part of the app, not bolted on.

Frigate Boost

Role
Solo — Design & Engineering
Timeline
2025
Stack
Vue · TypeScript · WebExtension APIs · Vite
Frigate Boost — full-page screenshot
Typescript · Vue · Browser Extension

Reads like a native panel

The overlay uses Frigate's own spatial rhythm — same grid, same panel weight, same focus states. It doesn't announce itself. If a maintainer merged this upstream tomorrow, it would look like it had always been there.

Bulk selection that respects the surface

Multi-select is shift-drag, keyboard-first, and reversible. Selected events dim rather than mark; the visual weight of the selection matches the weight of the action.

Zero-config safe defaults

The extension detects a Frigate instance without configuration and refuses to run against unknown surfaces. Batch delete is behind a two-step confirm with a plain-language count. No accidental fleet wipes.

Motion has a job.

Every animation in this project earns a place by telling the reader something they'd otherwise have to guess at.

Selection ink-drop

Selecting an event drops a subtle ink of accent color onto the tile — a two-frame transition that reads as commitment, not a hover flourish.

Batch confirm scrub

The confirm dialog counts up to the target number over three hundred milliseconds. It slows down enough for the eye to catch the last digit — a designed pause before an irreversible action.

Read the source.

github.com/shotcowboystyle/frigate-boost-ext