Most Next.js projects I inherit are not slow because of Next.js — they are slow because everything became a client component, every request refetched, and nothing was cached. I build Next.js applications the other way around: server-first, with rendering decided per route rather than per habit. Static where content rarely changes, ISR where it changes on a schedule, dynamic only where the request genuinely differs per user.
A marketing page, a dashboard and a product listing have nothing in common in how they should be rendered. I map every route to a strategy up front — static, incrementally regenerated, or dynamic — and document why. That single decision usually does more for perceived speed than any amount of bundle shaving and performance optimization afterwards.
Next.js caching is powerful and easy to get wrong in ways that only show up in production. I set explicit revalidation and cache tags, so content updates land when they should and nothing serves stale data by accident. When something does go stale, there is a documented way to invalidate it rather than a redeploy.
Plenty of the Next.js work I take on is not greenfield. It is an existing app on the Pages Router, a WordPress site being replatformed, or a half-finished App Router migration where the previous team left mid-refactor. I audit first, deliver a written list of what is costing you performance and maintainability, then migrate incrementally so the site keeps shipping the whole time.
Yes, and incrementally — both routers can coexist while the migration runs, so there is no big-bang release. I usually start with the routes that benefit most from Server Components, prove the pattern, then move the rest.
Vercel is where Next.js works with the least friction, and it is my default recommendation. But I have deployed Next.js to self-hosted Node and Docker setups too. If you already have infrastructure, I will work with it rather than push you to move.
A focused marketing site with a CMS behind it is usually three to five weeks. A full application with authentication, dashboards and integrations is measured in months. After a scoping call I give you a written estimate with the assumptions spelled out.