Modern frameworks and performance that users actually notice
December 2, 2025
Framework choice matters less than render discipline, caching strategy, and shipping the smallest useful page.
Pick a framework for the team, not the trend
React, Next.js, and Svelte can all ship great experiences. A better question is:
- Can the team debug it quickly?
- Does it support your rendering needs (SSR, SSG, streaming)?
- Is the ecosystem stable for your dependencies?
Performance basics that compound
Most wins are not exotic:
- Reduce JavaScript shipped to the browser
- Prefer server rendering for content pages
- Cache aggressively at the edge when possible
- Load images correctly (sizes, formats, lazy loading)
Treat the network as slow and the main thread as expensive.
Example (opt into framework primitives for images):
import Image from "next/image"
export function Avatar() {
return <Image src="/profile-rbd.avif" alt="Profile photo" width={96} height={96} />
}
A practical rendering checklist
When a page feels slow, look for:
- Too much work during hydration
- Components re-rendering unnecessarily
- Large client-side bundles pulled in by one import
- Long task spikes from third-party scripts
Measure with Web Vitals and ship changes that move a metric, not just code.
Make accessibility the default
Accessible pages tend to be more robust:
- Semantic HTML first
- Keyboard navigation and visible focus states
- Respect reduced-motion preferences
- Meaningful form labels and errors
It’s easier to build accessible components than to retrofit them.
Treat the UI as a system
Consistency reduces bugs:
- Shared primitives (buttons, inputs, dialog patterns)
- A small design token set (spacing, color, typography)
- Linting and CI checks to keep regressions out
References
Hi, I'm Martin Duchev. You can find more about my projects on my GitHub page.