Framework and architecture
Next.js applicationsbuilt to stay fastand up to date
- Who it’s for
- Teams starting a new Next.js build, Teams on an older version, Agencies whose sites became applications
- To start, send
- The existing repository, if there is one
- Pricing
- Quoted for each project
New Next.js builds, upgrades and rescues, with each page set up to render, cache and deploy the right way.
- Interface (used by this service)
- Logic (not central to this service)
- Data (not central to this service)
- Integrations (not central to this service)
- Deployment (used by this service)
Is this for you?
With Next.js, each page can be built ahead of time, rebuilt when content changes, rendered on the server for every visit, or run in the browser. Those choices decide how fast the site is, what hosting costs, what search engines see, and how quickly an edit goes live. Our frontend service covers the interface itself; this one covers how the application around it is put together.
For new builds we use the App Router. The decisions that matter most are which parts run on the server, which pages are cached and for how long, and where calls to other services happen. Get them right and the site is fast and cheap to run. Get them wrong and it feels fine on a laptop but turns slow, expensive or out of date once it’s live.
Who it’s for
Teams starting a new Next.js build
You want the routing, rendering, data and deployment set up properly from the start.
Teams on an older version
Your application is on the Pages Router or an older major version, and it isn’t clear how to upgrade it.
Agencies whose sites became applications
A marketing site now has logged-in areas, personalisation or integrations, and the original setup is struggling.
Usually, one of these has just happened
- Pages are slow, or content changes take ages to appear, or appear on some pages and not others.
- Hosting costs have grown faster than traffic.
- Search engines can’t see content that only appears once the browser runs JavaScript.
- A major upgrade keeps getting postponed because nobody’s sure what it will break.
Every route, rendered on purpose
The biggest Next.js decision is when each page gets rendered. Here’s how we’d set up a typical agency-built site, giving each page the cheapest option that keeps its content correct.
| Route | StaticBuilt once | RevalidatedRebuilt on change | DynamicPer request | ClientIn the browser | Why |
|---|---|---|---|---|---|
| /Homepage | Static | Only changes when the content does, so it’s built once and served from a CDN. | |||
| /services/[slug]Service pages | Static | Generated for each service at build time. | |||
| /journal/[slug]CMS articles | Revalidated | Rebuilt when an editor publishes, triggered by the CMS. | |||
| /productsProduct listing | Revalidated | Refreshed every few minutes, because stock levels come from another system. | |||
| /searchSearch results | Dynamic | Different for every search, so it’s rendered on the server each time. | |||
| /accountSigned-in area | Dynamic | Shows personal data, so it’s rendered for each visit and never cached publicly. | |||
| /account → mapInteractive map widget | Client | Only the map runs in the browser. The rest of the page comes from the server. |
What you get
A rendering plan per route
Which pages are built ahead of time, which refresh when content changes, and which render on every visit, written down so new pages follow the same rules.
Application structure
Routes, layouts and shared components, with code that handles secrets or the database kept on the server and away from the browser.
Data fetching and caching
Calls to your CMS and other services made from the server, and cached until the content actually changes.
Technical SEO foundations
Content in the HTML search engines receive, plus page titles, canonical URLs, sitemaps and structured data generated from the same content as the pages.
A deployment setup
Separate settings for development, preview and production, and, where your hosting supports it, a preview link for each change and a way to roll back a release.
Before we start
What we’ll need from you
- The existing repository, if there is one
- The version, router, packages and hosting decide where we start.
- Where the content comes from
- A CMS, a database, files or another company’s API each suit different approaches.
- How often content changes
- Prices that change hourly and a policy page that changes yearly shouldn’t be handled the same way.
- Where it has to be hosted
- Vercel, another platform or your own cloud account changes which features are available.
- Your traffic and audience
- How many visitors you get, and where they are, affects caching and cost.
Decisions we’ll help you make
Vercel or self-hosted?
Vercel supports every Next.js feature with the least setup. Hosting it yourself in a container works, and is sometimes required, but some features then need extra configuration. We’ll recommend whichever fits your situation.
How much JavaScript in the browser?
As little as the page needs. We render on the server by default and only send JavaScript for the parts people interact with. That makes pages faster on real phones, and it’s much easier to keep it low from the start than to cut it down later.
Upgrade incrementally or rebuild?
The old and new routers can run side by side, so most upgrades can happen one route at a time. A rebuild only makes sense if the application needs restructuring anyway.
When is Next.js the wrong choice?
For a simple brochure site that non-developers update, a hosted website builder may be cheaper to run and easier to change. We’ll tell you if that’s the case.
How the work runs
- 1
Review
We read the code or the brief and list where content comes from and how often it changes.
- 2
Plan
A short written plan covering the routes, rendering, data and deployment.
- 3
Foundations
Project setup, layouts, metadata, environments and automated checks.
- 4
Build or migrate
One route at a time, so each can be checked on its own.
- 5
Measure
We check speed and caching on a setup that matches production.
- 6
Hand over
Notes on how to add routes and content without undoing the structure.
Usually included
- New Next.js applications and sites
- Upgrades between major versions, including Pages Router to App Router
- Decisions on rendering, caching and data fetching
- Technical SEO implementation
- Deployment setup on Vercel or in containers
Not included unless agreed
- Content strategy and keyword research
- Managing your hosting account billing
- Promises about search rankings
Next.js changes often, and hosting platforms differ in what they support. Your CMS or other services may also limit how often we can fetch from them or how long we can cache.
The full process, from first message to handover, is on How we work.
How the costis worked out
Next.js work ranges from a short review to a full build. For an existing project, we usually suggest starting with the review, because it gives us something solid to estimate the rest from.
After a first call, we send a written quote that says what’s included and what isn’t.
What affects the cost
- Whether it’s a new build, an upgrade or a migration
- How many page types and content sources there are
- Sign-in and personalised content
- Other services the pages depend on
- Where it’s hosted, and what that host allows
- The size and condition of the existing code
Questions
How is this different from your frontend development service?
Frontend development covers the interface: components, responsive layouts and accessibility, in whatever framework you use. This service covers how the Next.js application around it works: rendering, routing, data, caching and deployment. Plenty of projects need both.
Can you upgrade our Next.js app to the current version?
Usually, yes. We’d run the official upgrade tools, check which of your packages are affected by the changes, and do the upgrade on a separate branch so it can be tested before anything goes live.
Will Next.js make our site rank better?
Not on its own. It makes it easy to serve fast pages with the right metadata, which removes technical problems, but rankings depend on much more than that.
Do we have to host on Vercel?
No. It’s the simplest option, but Next.js also runs on other platforms and in containers. We’ll explain what changes if you host elsewhere.
Related services and reading
- Frontend developmentWe build your designs as responsive, accessible pages and components, including the states a design file doesn’t show.
- Web performance optimisationWe measure what’s making your pages slow, fix the causes that matter most, and help stop them coming back.
- Backend developmentUser accounts, permissions, databases and business rules for web applications and portals.
- Insight, 3 minTaking over an unfinished codebase: what the first week should produce