NewEdit your site from ChatGPT or Claude. Same rules as the built-in assistant.See how

← All guides

Guide: Next.js

Next.js client editing: the handover, step by step.

The site is done, deployed on Vercel, and the client wants to change their own texts. You do not want to bolt a CMS onto finished components, and you do not want to be the typo desk. Here is the handover that gives them the small edits and keeps the code yours.

Updated November 3, 2026for agencies and freelancers

A finished client site after the client changed the headline and Saturday hours themselves

The short answer

Next.js handover in short.

Before handover, settle who owns the GitHub repository, the Vercel (or other) project and the domain, and keep production deploying from main.

Then connect the repository to CMS Chat: the client changes texts, prices and photos in components, MDX or JSON by asking, and each change is a commit that deploys like yours.

Components, layout, routes and config stay locked; new pages and features come back to you as requests.

The handover problem

What actually breaks when you hand over a Next.js site.

01

Text is inside components

In most finished Next.js sites the headline sits in app/page.tsx and the opening hours in the footer component. A headless CMS means replacing those strings with fetched fields, which is a project of its own.

02

Three things to own

The GitHub repository, the hosting project (often Vercel) and the domain can sit in three different accounts. If you keep them, write that down; if the client takes them, transfer before the editing starts.

03

Preview and production

With deploy-on-push hosting, every commit to main goes to production. Edits that matter for search, like titles and headings, should wait for an OK first.

04

Roles on the client side

The owner, a marketing person and an assistant rarely need the same rights. Give each their own login with the role they need.

Before you hand over

The checklist. Ten minutes now saves the support mail.

  • The repository, the hosting project and the domain each have a named owner
  • Production deploys from main on every push
  • The build passes from a clean clone (TypeScript, lint), so content commits do not surprise you
  • Strings that change often are plain text in components, MDX or a JSON file
  • Environment variables are documented outside the hosting dashboard
  • Titles, meta descriptions and H1/H2 are set to ask before they change

Step by step

From Next.js project to a client who edits.

The connect part takes about 2 minutes once the code is on GitHub. Inviting the client and the first change take another ten.

  1. 01

    Check the repository and the deploy

    The Next.js project should be in a GitHub repository that your host deploys on push. If it is only on your machine, push it to a new repository and connect your host to it.

  2. 02

    Install the CMS Chat GitHub App on that one repository

    In CMS Chat, open Add a site and pick “Other code on GitHub”: you see only the steps for that tool. Then install the GitHub App on the site's repository only. It can read that repository, write to it and open pull requests on it. Nothing else in the account.

    Add a site in CMS Chat: pick where the site was built, then follow that tool's steps
  3. 03

    Pick the repository and check what is editable

    CMS Chat scans the repository, detects how the site is built and suggests what the client may edit: texts, prices, photos, opening hours. Page titles and headings ask before they change. Layout and code stay locked.

    The site workbench: the live page on the left, the chat with saved changes on the right
  4. 04

    Invite your client

    Add the client under Clients and Sites, assign the site and send the invite link. Your client gets a login that shows their site and nothing else: no agency dashboard, no other clients, no settings to break.

    The agency's site list, grouped by client, with framework and repository
  5. 05

    Make the first change together

    Ask for one small change while your client watches, for example “Saturday we are open 9 to 14”. They see before and after, the change is committed to the repository, and riskier edits wait for an OK.

    A change in the chat: Saturday hours and the home headline, with before and after

How a change goes live on a Next.js site

CMS Chat commits to the default branch and your host deploys it like any of your commits. With deploy-on-push set up, the change list shows the deploy status. Riskier edits go to a review branch behind a pull request instead.

Small fix or agency job

Where the line sits after the handover.

The client handles the small edits on their own plan. Everything that changes how the site works or looks stays with you, as a request you can quote.

Your client, alone, in a sentence

  • Headlines, paragraphs, button texts in components
  • MDX pages and blog posts
  • Prices and plans in a JSON or TS data file
  • Photos, team members, opening hours
  • FAQ answers

Your agency, quoted and built

  • New routes and pages
  • New components or sections
  • Forms, auth, payments, APIs
  • Layout and design changes
  • next.config, middleware, dependencies

What your client sees

One box to ask. One list to undo.

Your client opens their home, types the change, and sees it in their list of recent changes with an undo. Bigger asks go to you from the same screen.

  • Their own login, their site only
  • Every change in their history, with an undo
  • “Ask your agency for something bigger” on the same page
The client's home: a box to ask for a change, recent changes with undo, and requests to the agency
The agency's client requests: a new landing page and an online booking page, with a quote

What you see

Bigger asks arrive as requests. Ready to quote.

When your client asks for a new page or a booking form, the request lands with you, in their words. You reply with a quote and update the status.

Next.js specifics

What goes wrong and how to avoid it.

01

Type errors break the build

A content edit in a .tsx file is still code to the compiler. Locked zones keep the client in strings, and riskier files can ask before they change.

02

Metadata exports

Page titles and descriptions live in metadata exports. They count as SEO-critical, so the client sees a plain-language warning before changing them.

03

Server data

Content fetched from an API or a database at build or request time is not in the repository. Database content can be edited on the Pro plan once the database is connected.

04

i18n message files

With next-intl or similar, keep each language in its own message file. Changes can then be kept in sync across languages on the Growth plan.

05

Vercel team access

Your client does not need a seat in your Vercel team to edit. They edit through CMS Chat; the deploy runs as before.

06

Branch protection

If main is protected so that nobody can push to it, routine commits cannot land there. Allow the CMS Chat GitHub App to push to main in your branch rules.

Who pays for what

Clear money, no awkward invoices.

Your client’s editing

Your client picks a plan from the public price list and pays CMS Chat directly, from EUR 29 / month incl. VAT. Same price with or without an agency.

The AI

Your own ChatGPT or Claude: not metered by us. Built-in assistant: a monthly allowance that resets each month.

Your bigger work

New pages, features and redesigns stay between you and your client, quoted and invoiced by you as before.

Questions

Next.js handover, asked before

Anything missing: write to hello@cmschat.ai and a person replies.

How do I let a client edit a Next.js site after handover?
Connect the site's GitHub repository to CMS Chat and invite the client. They change texts, prices and photos by asking; each change is a commit your host deploys. Components, layout and config stay locked.
Do I need a headless CMS for a small Next.js site?
Not for the usual small edits. A headless CMS pays off for large, structured content; for a handful of texts, prices and photos, editing the repository directly avoids rebuilding the site around a content model. The comparison is in our Next.js guide on the blog.
Should the client own the Vercel project?
Either works. What matters is that ownership of the repository, the hosting project and the domain is written down, and that production deploys from main.
Can the client edit text inside .tsx components?
Yes, inside the parts marked safe. The AI edits the string and leaves the component code alone; anything that touches structure becomes a request to you.
Who pays for the client's editing?
Your client picks a CMS Chat plan from the public price list and pays CMS Chat directly. Hosting and your development work stay separate.

Hand it over. Keep the big work.

Connect the repository, invite your client, make the first change together.

month to monthundo any changecode stays in your GitHub

Prefer to see it first? Ask for a walkthrough