Engineering
Why we build agency websites server-first in Next.js
Most marketing sites ship far more JavaScript than they need. Here is how the App Router lets us keep pages fast without giving up interactivity.
By Liaqat Ali Khan · · 4 min read
A surprising number of agency websites load megabytes of client-side JavaScript to render what is, in the end, text and images. The Next.js App Router makes the opposite the default: components render on the server unless you opt a specific piece into the client.
What stays on the server
Navigation, content sections, product grids and case studies are plain server components. They render to HTML, ship no component code to the browser, and can read data directly.
What becomes a client component
- The mobile navigation toggle
- The shopping cart, which needs local state
- Form inputs that show inline validation
- A small scroll-reveal helper that respects reduced-motion settings
The result
Pages that are fast on cheap phones, easy to index, and simple to reason about. Interactivity is added deliberately, not inherited from a template.