Guides

What a Next.js Development Agency Should Own: Architecture, Hosting, Performance and Handover

The five things a Next.js development agency should own and hand back: rendering decisions, hosting setup, field performance, security upgrades and a clean transfer of repo and project.

Summarize with AI
Octo Agency cover: What a Next.js Development Agency Should Own, with a purple hexagon pattern

Only 35.7% of Next.js sites pass all three Core Web Vitals on mobile, according to HTTP Archive's September 2026 crawl of 395,345 Next.js origins, against 52.8% for the web as a whole. The framework is not slow. A Next.js build is only as fast, secure and maintainable as the decisions behind it, and most of those are invisible in a demo.

This guide is for founders and marketing leads hiring a Next.js development agency or a React development agency. It sets out the five areas the agency should own and what you should receive in each, using the Next.js documentation, Vercel's pages, the 2025 security advisories and HTTP Archive field data.

The five things a Next.js agency should own

Webflow decides hosting, caching and upgrades for you. With Next.js, someone has to decide them and keep them working: the agency, until it hands over.

What the agency owns, and what you should receive
AreaWhat the agency ownsWhat you should receive
ArchitectureWhich routes are static, which render per request, where data and auth checks liveA one-page rendering map and a data access diagram
HostingPlatform choice, environments, cache and scaling configurationThe project in your account, with a list of every environment variable and its owner
PerformanceField Core Web Vitals, not only a Lighthouse scoreA baseline from real-user data and a monitoring set-up you can read
Security and upgradesPatching advisories, staying on a supported major versionAn upgrade log and a named contact for the next advisory
HandoverTransferring code, project, domains and integrationsThe repository and the hosting project in your organisation, plus a runbook

An agency can be excellent at components and careless about the right-hand column. The right-hand column is what you still have in month thirteen.

Architecture: the rendering decisions should be written down

Every route in a Next.js app is either prerendered or rendered at request time, and since version 16 a single route can be both. The production checklist in the Next.js documentation warns that request-time APIs such as `cookies` and `searchParams` opt the entire route into dynamic rendering, and the whole application if they are used in the root layout. One careless call in a shared layout turns a site of static pages into a site that renders on a server for every visitor.

Caching is now opt-in. Next.js 16, released on 21 October 2025, introduced Cache Components and the `use cache` directive. The release notes say caching under this model is "entirely opt-in", and that dynamic code runs at request time by default. Older App Router projects cached implicitly, so the same code can behave differently after an upgrade.

Auth checks belong next to the data. The same checklist tells teams to verify authentication and authorisation inside each Server Action, and not to rely on Proxy, layout or page checks alone. The 2025 middleware advisory, covered below, showed why: a request filter is not an authorisation layer.

What to ask for. A rendering map: every route, whether it is static, dynamic or partly prerendered, and why. A data access diagram showing where database calls sit and which ones check the user. An agency that cannot produce either is choosing by default. For the backend layer itself, our MVP tech stack for 2026 sets out the database, auth and payments choices we would start with, and the Next.js and Supabase architecture guide on this blog covers Row Level Security in detail.

Hosting: three routes, three sets of responsibilities

The Next.js deployment docs list four options: a Node.js server and a Docker container, which both support every feature; a static export, which supports a limited set; and platform adapters, where support varies. Only two adapters are verified against the full Next.js test suite: Vercel and Bun. Cloudflare and Netlify offer their own integrations while they build verified ones.

Hosting routes and what the agency has to configure
RouteFeature supportWhat the agency must set upCost basis
VercelAll, verified adapterTeam and project in your account, environment variables per environment, spend limitsPro at $20 per developer seat a month, 1 TB transfer included, then from $0.15 per GB
Self-hosted Node.js or DockerAllReverse proxy, shared cache handler, encryption key, deployment ID, streaming, graceful shutdownYour server or container bill, plus the time to run it
Cloudflare via OpenNextMost; Node Middleware from 15.2 not yet supportedWrangler configuration, image optimisation through Cloudflare ImagesYour Cloudflare Workers plan
Static exportLimited: no features that need a serverA CDN or static host; images optimised by a custom loaderStatic hosting only

Sources: Next.js deploying and self-hosting docs; Vercel pricing; OpenNext Cloudflare docs, read 2026-10-28

The Hobby trap. Vercel's pricing page says its Hobby plan "is for personal, non-commercial use". A business site launched on a developer's Hobby account is a licence problem and an ownership problem at once.

Self-hosting is a configuration job. The Next.js self-hosting guide, updated 15 October 2026, says the cache lives on each instance's local disk by default, so with two containers a `revalidateTag` call on one leaves the other serving stale pages until a shared store coordinates them. All instances also need the same `NEXT_SERVER_ACTIONS_ENCRYPTION_KEY`, or users see "Failed to find Server Action" errors, plus a `deploymentId` against version skew and a proxy that does not buffer streamed responses. Each item is a line in a runbook or an outage waiting to happen.

Performance: judge the agency on field data

Lighthouse runs a lab test on one simulated device. Google's Core Web Vitals are measured on real Chrome users at the 75th percentile: Largest Contentful Paint of 2.5 seconds or less, Interaction to Next Paint of 200 milliseconds or less, and Cumulative Layout Shift of 0.1 or less (web.dev). The Next.js production checklist itself says a Lighthouse run "should be paired with looking at field data".

Next.js origins passing Core Web Vitals on mobile, Chrome UX Report field data
MetricNext.js, Sept 2025Next.js, Sept 2026All origins, Sept 2026
All three passed28.1%35.7%52.8%
Largest Contentful Paint47.7%53.5%65.6%
Interaction to Next Paint52.5%59.7%79.4%
Cumulative Layout Shift66.4%73.5%83.4%
Origins measured (all three)243,155395,3458,569,446

Source: HTTP Archive Core Web Vitals Technology Report, read through its API on 2026-10-28; raw file research/OB-0139-httparchive-cwv-2026-10-28.json

Interaction to Next Paint is the weakest metric relative to the web, about 20 points behind, which points at client-side JavaScript: large `use client` boundaries, third-party scripts and hydration work. The overall rate rose more than seven points in a year.

The aggregate mixes marketing sites with dashboards and single-page apps, so it says little about any one build. Our Webflow or Next.js comparison breaks the same data down against Webflow and Astro. What it does say is that passing is not the default, so the agency should commit to a field-data target.

What to ask for. A real-user baseline, the `useReportWebVitals` hook or an equivalent wired to your analytics, and a bundle analysis.

Security and upgrades: the part that happens after launch

Two critical advisories in 2025 show why a Next.js app needs an owner after launch.

The two critical Next.js advisories of 2025
AdvisoryPublishedSeverityWhat was affectedWhat the owner had to do
CVE-2025-29927, middleware authorisation bypass21 March 2025Critical, CVSS 9.1Self-hosted apps on versions 11.1.4 to 15.2.2 that used middleware for authUpgrade to 12.3.5, 13.5.9, 14.2.25 or 15.2.3; Vercel-hosted apps were protected automatically
CVE-2025-66478, React Server Components remote code execution3 December 2025Critical, CVSS 10.0App Router apps on 15.x, 16.x and later 14.3 canariesUpgrade to a patched release such as 15.5.7 or 16.0.7, then rotate every secret if the app was online and unpatched on 4 December

Sources: GitHub Security Advisory GHSA-f82v-jwr5-mffw; Next.js security advisory CVE-2025-66478

The December advisory is the one to quote to anyone who thinks a finished site needs no maintenance. The Next.js team wrote that there was "no workaround" and that upgrading was required, then added guidance to rotate secrets.

Version support. Under the Next.js support policy, each major stays in Active LTS until the next major ships, then in Maintenance LTS for two years from its first release, receiving only critical fixes. Version 16 is in Active LTS. Version 15 is in Maintenance LTS, and its original end date of 21 October 2026 has been extended to a date not yet announced. Version 14 and earlier are unsupported. Next.js 16 raised the minimum Node.js version to 20.9 and removed synchronous access to `params`, `cookies` and `headers`, so an upgrade is scoped work, not a version bump.

What to ask for. Which major version the agency will build on, who watches the advisories, how fast a critical patch goes out, and whether that is in the contract or billed per incident. We would expect a written answer to all four.

Handover: what moves, and what does not

A Next.js handover is two transfers and a document, and both transfers have gaps.

  1. The repository. GitHub's documentation says issues, pull requests, wiki, stars and commit history move with a transfer, and links to the old location redirect, while GitHub Pages URLs do not. Better still, keep the repository in your organisation from day one, with the agency as collaborators.
  2. The Vercel project. Vercel's docs say a project moves between teams with zero downtime in 10 seconds to 10 minutes, carrying deployments, environment variables, domains, cron jobs and the Git link. Integrations, log data, monitoring data, log drains and usage history do not move, and environment variables defined in `vercel.json` must be migrated first.
  3. Environment variables and third-party accounts. Every key in the project belongs to an account somewhere: the database, auth, payments, email, analytics. The handover list should name the account owner for each one.
  4. The runbook. How to run the project locally, how deploys work, how to roll back, where logs live, which Node.js and Next.js versions are pinned, and what to do when the next advisory lands.
  5. The documents from the sections above. The rendering map, the data access diagram, the performance baseline and the upgrade log.

If a lighter tool would do the job, the trade-off is worth a look before you hire a full Next.js team: our Wized vs custom code comparison sets out where a Webflow front end with a no-code app layer stops being enough.

How to check an agency before you sign

Ask about last year's advisories. How many days did the agency take to patch CVE-2025-66478 for existing clients, and did it rotate secrets? A specific answer is a good sign.

Ask where the last project lives. If previous client apps sit in the agency's own Vercel team or GitHub organisation, yours will too.

Ask for a rendering map and a field-data number. A team that decides rendering deliberately can show one in five minutes, plus a Chrome UX Report result for a site it built.

What this means for choosing a Next.js development agency

Pick the agency on the right-hand column of the first table, not only on its portfolio. The rendering map, hosting account, field-data baseline, patch record and transfer plan decide whether the app is still fast, safe and yours a year after launch. We build applications in Next.js and marketing sites in Webflow, so we have a bias towards splitting the two; we would set the five handover documents as deliverables in the scope and quote per project. Our web apps service page explains how we scope a Next.js build.

Frequently asked questions

What does a Next.js development agency do?

It designs and builds web applications and sites on Next.js, and should also own the decisions the framework leaves open: which routes render statically or per request, where the app is hosted and how it is configured, how real-user performance is measured, how security advisories are patched, and how code and hosting are handed over. A good agency leaves a rendering map, a runbook and a performance baseline behind, not only working code.

Should a Next.js app be hosted on Vercel?

Vercel is one of two hosts verified against the full Next.js test suite, and its Pro plan costs $20 per developer seat a month with 1 TB of transfer included. Its Hobby plan is for personal, non-commercial use only. Self-hosting on Node.js or Docker supports every feature too, but needs a shared cache, a fixed encryption key and a deployment ID when you run more than one server.

How long is a Next.js version supported?

Each major version is in Active LTS until the next major ships, then in Maintenance LTS for two years from its original release, with only critical fixes. Version 16, released on 21 October 2025, is in Active LTS. Version 15 is in Maintenance LTS, with its end date extended beyond 21 October 2026. Versions 14 and earlier are listed as unsupported in the Next.js support policy, so plan an upgrade rather than wait for patches.

What should a Next.js project handover include?

The repository in your GitHub organisation, the hosting project in your team, a list of every environment variable with the account that owns it, and a runbook for deploys, rollbacks and upgrades. Vercel transfers move deployments, domains and environment variables, but not integrations, logs or monitoring data. Add the rendering map, the performance baseline and the upgrade log so the next team can work without the agency.

Are Next.js sites fast?

They can be, but it is not the default. HTTP Archive's September 2026 field data shows 35.7% of 395,345 Next.js origins passing all three Core Web Vitals on mobile, against 52.8% across all origins. The rate rose from 28.1% a year earlier. Interaction to Next Paint is the weakest metric, which usually points to too much client-side JavaScript, so ask the agency for a field-data target.

Sources

  1. Core Web Vitals Technology Report, Next.js HTTP Archive, 2026
  2. Core Web Vitals Technology Report, all origins HTTP Archive, 2026
  3. Web Vitals web.dev, Google, 2024
  4. How to optimize your Next.js application for production Next.js documentation, Vercel, 2026
  5. Next.js 16 Next.js blog, Vercel, 2025
  6. Support policy Next.js, Vercel
  7. Deploying Next.js documentation, Vercel, 2026
  8. How to self-host your Next.js application Next.js documentation, Vercel, 2026
  9. Pricing Vercel
  10. Transferring a project Vercel documentation, 2026
  11. OpenNext Cloudflare adapter OpenNext
  12. Authorization bypass in Next.js middleware, GHSA-f82v-jwr5-mffw Vercel via GitHub Security Advisories, 2025
  13. Security advisory: CVE-2025-66478 Next.js blog, Vercel, 2025
  14. Transferring a repository GitHub Docs

Tags

  • Next.js
  • Web apps
  • Agencies
  • Handover
Mihajlo Stojanovic

Mihajlo Stojanovic

Co-founder, Octo Agency

Mihajlo runs the technical side of Octo Agency: Webflow builds, custom backends and the systems that keep a site editable after launch. He has shipped more than twenty Webflow sites a year as a white-label partner and writes about what survives contact with a real marketing team.

Veljko Nikolic

Reviewed by

Veljko Nikolic

Founder, Octo Agency

Veljko runs the build side of Octo Agency. He has shipped marketing sites for B2B teams in legal tech, health and manufacturing, and writes about what survives contact with a real review cycle.