UI Refresh 2026: What We Shipped and What We Learned

August 4, 2026

After months of iteration, we shipped a major frontend overhaul. Here's what changed and why.

Date Filter on the Homepage

Operators kept asking for yesterday's numbers without going through a calendar every time. We added a Today / Yesterday / Custom toggle on the Home page. Custom still opens the full date picker for longer investigations.

Skeleton Loading Instead of Spinners

The old pattern was: blank space, spinner appears, spinner vanishes, content pops in. On a slow connection this cycle repeated constantly and made the app feel broken even when it wasn't.

We replaced every spinner with skeleton loaders that match the actual layout. Same card heights, same gutters. Navigation feels faster because the layout never collapses. Real content slots straight into a skeleton that was already the right shape.

While we were at it, we fixed a stale closure bug that was causing home page charts to go blank when you navigated back.

Error Boundaries

Before: a crash deep in a chart would kill the whole page. Now every routed page is wrapped in an error boundary. Operators get a clean error card with a retry button instead of a blank screen, and the sidebar stays alive so they don't lose context.

We also found a connection to a server that had been decommissioned years ago. The app was still trying to reach it on every load.

Performance

Two targeted wins. Static config that used to be fetched at runtime on every page load is now bundled at build time, cutting a round-trip that added nothing. And the initial loading path was reworked to eliminate the visible spinner flash on first load.

What the Operators Noticed

The skeletons loaded faster. The date filter saved clicks. The charts stayed visible on navigation. The engineering improvements were real.

But the UI refresh also moved some menus and buttons. Things that seemed minor to us. Six years of muscle memory made those changes more disruptive than we expected. That's a separate lesson.