Back to Writing

Building for Performance

2 min read

Speed is a feature. Not in the abstract, aspirational sense — in the very concrete sense that every hundred milliseconds of latency costs you users. People don’t analyze why a product feels sluggish. They just leave.

Performance is perception

Two interfaces can have identical load times and feel completely different. The one that shows a skeleton screen, animates content into place, and prioritizes above-the-fold rendering will always feel faster than the one that shows a spinner for the same duration.

This means performance optimization isn’t purely a back-end concern. Designers have enormous influence over perceived speed through loading strategies, transition design, and progressive disclosure.

The cost of convenience

Modern front-end tooling makes it trivially easy to add dependencies. A date picker here, an animation library there, a charting framework for a single graph. Each addition is small in isolation, but they compound.

I’ve audited projects where the JavaScript bundle exceeded two megabytes — for what was essentially a content website. The fix wasn’t a technical miracle. It was discipline: removing unused dependencies, replacing heavy libraries with lightweight alternatives, and questioning whether each abstraction earned its weight.

Core Web Vitals as design constraints

Largest Contentful Paint, First Input Delay, Cumulative Layout Shift — these aren’t just engineering metrics. They’re design constraints. A hero image that takes three seconds to load is a design failure as much as a technical one.

The best approach I’ve found is to treat performance budgets like design constraints from day one. If the page budget is two hundred kilobytes, that shapes which design patterns are viable. It’s a healthy constraint that often leads to more creative solutions.

Ship less, ship faster

The fastest code is the code you don’t ship. The fastest image is the one you optimize. The fastest interaction is the one that doesn’t require a network round-trip.

Performance isn’t something you bolt on at the end. It’s a value that shapes every decision from the first sketch to the final deploy.