Designing for performance: a 2026 playbook.
What changed, what stayed the same, and how I optimise modern web apps without losing the human touch.
Performance used to be a luxury. In 2026, it's the floor. Users will not wait, search engines will not rank, and conversions will not convert. The sites that earn attention are the sites that respect it. This is the playbook I use on every project — design choices first, code second.
1. The 3-second rule
Real users don't measure "Time to Interactive". They measure when can I do the thing I came here for? If your nav takes 3 seconds to be interactable, you've lost them — even if your JS bundle is 80kb.
The fix is structural: ship HTML first, hydrate progressively. Anything beyond that is a paper cut users notice every visit.
"A fast site is one where the user feels ready before they feel waiting."
2. Pick the right bones
Most marketing sites do not need React. Most dashboards do not need Next.js Server Components. Most blogs do not need a database. Most WordPress sites need WordPress — accept that and move on.
- Marketing site → Astro / Eleventy / plain HTML
- Web app with auth → Server-rendered framework + islands
- E-commerce → Headless commerce + storefront (or Solid Shopify)
- Blog / content → Static or WordPress headless
3. The image stack
In 2026, if your images are not .avif or .webp with explicit width & height, you're leaving 30–60% of your page weight on the table. Add loading="lazy" below the fold.

4. CSS > JS
Toggles, accordions, hovers, focus rings — anything expressible in CSS should be. Reach for JavaScript only when you need state, persistence, or async data. The result is fewer scripts, fewer bugs, and a faster page.
5. Measure on the right device
"Lighthouse 100 on a MacBook Pro" is a vanity metric. Measure on a mid-range Android over 4G with CPU throttled. That's where the real users live.
6. RUM > Lab
Synthetic Lighthouse is great for regression catching. But real-user-metrics (Core Web Vitals in CrUX, RUM SDKs) tell you what's happening at the 90th percentile in production. Hunt for the long tail — that's where most performance wins hide.
Closing thought
Performance is a design discipline, not a deployment step. It belongs in the Figma file, in the work estimate, and in the QA checklist. Treat it as craft, not compliance — and your users will feel it.
Have a project in mind that needs this kind of head-treatment? Let's talk.
G M Ashiqur Rahaman
AuthorSoftware developer & UI designer. Writing about the messy middle between Figma and deployed.
More about G M Ashiqur Rahaman