Frontend Engineering
Why I Switched to Server Components for Portfolio Sites
September 11, 2026
The default should be server
A portfolio site is mostly static content — bio, projects, blog posts. None of that needs to ship as client JavaScript.
My rule of thumb: a component is a Client Component only if it does one of these:
- Uses state or effects
- Listens to browser events
- Depends on a browser-only API
Everything else — including my entire blog listing and post pages — stays a Server Component that fetches data directly, no client-side loading spinner required.