January 5, 20265 min read
PerformanceEngineering

A Field Guide to Fast-Feeling Websites

Practical ways to make a site feel instant without a rewrite.

Theo MarchettiPrincipal Engineer, nularUI

Why do some sites feel instant on a mid-range phone, while heavier-funded products feel like wading through syrup?

Performance work has a reputation problem. Teams picture a quarter-long rewrite, a new framework, a migration doc nobody wants to own. So the slow site stays slow, and every redesign adds another layer.

The truth is less dramatic. Most of what users experience as "fast" comes from a handful of habits that fit inside normal feature work. This guide collects the ones we apply on every project, in the order they usually pay off.

Start Reading

Measure the feeling, not just the number

Lab scores are useful, but users don’t experience percentiles — they experience moments: the first paint, the first tap, the first scroll.

Before optimizing anything, write down the three moments that define your product’s first minute. Then measure only those. A team with three honest numbers beats a team with a dashboard of forty.

Ship less JavaScript, not faster JavaScript

The cheapest millisecond is the one you never ship.

  • Render static sections as static HTML — most of a marketing site needs no runtime at all.
  • Hydrate islands, not pages. A carousel needs script; a heading does not.
  • Audit dependencies quarterly. The date library from 2021 is probably a one-line Intl call now.

Only after the diet is done does optimization make sense.

Make waiting feel intentional

Perceived speed is design work as much as engineering work:

  • Reserve layout space so nothing jumps when data arrives.
  • Prefer skeletons that match the final shape over spinners that match nothing.
  • Animate entrances once, briefly, and never block input while doing it.

A 400ms wait that looks deliberate feels faster than a 200ms wait that flickers.

Cache like you mean it

Most repeat visits should cost almost nothing:

  1. Immutable, hashed assets with year-long cache headers.
  2. HTML that revalidates quietly in the background.
  3. Fonts served from your own origin, subset to what you use.

The second visit is where trust is built — it should be instant.

Budgets beat heroics

A performance sprint decays; a performance budget endures. Pick limits a reviewer can check in seconds — total transfer on the landing page, script bytes per route, image weight per section — and wire them into CI so a regression is a failed build, not a postmortem.

Start this week

Pick the one page that earns you money, measure its three moments on a cheap phone, and delete something. Fast sites aren’t built in migrations; they’re kept fast in code review.