Everything is a client component
The whole tree marked as client-side, so the server rendering you are paying for does almost nothing.
[ Development / Next.js Development ]
Next.js gives you four ways to render every page and no warning when you pick the wrong one. Most slow Next.js sites are not slow because of the framework — they are slow because of a rendering decision made early and never revisited.
Free build review · Fixed scope · Measured results
[ What goes wrong ]
The framework is not the problem. These six decisions usually are.
The whole tree marked as client-side, so the server rendering you are paying for does almost nothing.
Huge JavaScript bundles shipped for pages that are mostly static text.
Sequential requests that could run in parallel, each one adding to time-to-content.
Full static generation of thousands of pages on every deploy, so shipping a typo fix takes twenty minutes.
Stale content in production, or no caching at all, because the caching model was never deliberately chosen.
Metadata generated client-side, so crawlers see an empty shell where the content should be.
[ How it works ]
Rendering strategy per route, bundle composition, data-fetching patterns and Core Web Vitals from real users. You get a written report with the impact of each fix.
New features built, or the existing app restructured route by route, shipped as reviewable pull requests rather than one enormous branch.
Real-user metrics compared before and after, build times measured, and the reasoning documented so the next developer keeps the decisions intact.
[ What actually changes ]
Rendering strategy first, because it determines everything downstream. Micro-optimizations come last and matter least.
[ Example engagement ]
A marketing and docs site statically generating every page on each deploy, with most components marked client-side. Restructured with incremental regeneration and proper server components.
Illustrative example of a typical engagement. Figures vary with the state of your systems and are not a guarantee of a specific outcome.
[ Free · 48 hours ]
Point me at your repository or live site. You get a written review of rendering strategy, bundle size and Core Web Vitals, with the fix ranked by impact.
[ Pricing ]
Tell me the number you have to work with. I'll tell you honestly what's achievable within it — and if it isn't enough, I'll say so before we start rather than halfway through.
Scope agreed in writing, price agreed in writing, before any work starts. No hourly creep and no invoice you haven't already approved.
For ongoing work — maintenance, monitoring, updates and small changes. Month to month, cancel whenever, no minimum term.
For a single bug or a short task where writing a full scope would cost more than simply doing the work.
Budget too tight for the whole thing? I'll often suggest doing the highest-value part first and the rest later, rather than doing all of it badly.
[ Questions ]
App Router for new projects. For an existing Pages Router application that works well, migrating purely for its own sake is rarely worth the disruption — the two can also coexist during a gradual move.
No. Managed platforms are convenient and often the right answer, but Next.js runs perfectly well in a container on your own infrastructure, and I can set either up.
Yes. I build from designs in any standard format, and will flag where a design will cost you performance before it gets built rather than after.
If you need SEO, server rendering or routing, Next.js. If you are building an internal dashboard behind a login where none of that matters, plain React with a lighter setup is often simpler and cheaper.
Yes, and that is most of this work. The review comes first so you know what you are buying before committing to the fix.
[ Related services ]
[ Let's talk ]
Describe it in a few lines and you'll get a straight answer on scope, cost and timeline โ same working day, from the person who'd actually build it.