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.

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.
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.
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.
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.
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.
- 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.
- 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.

- 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.

- 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.

- 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.

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


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.
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.
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.
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.
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.
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.
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?
Do I need a headless CMS for a small Next.js site?
Should the client own the Vercel project?
Can the client edit text inside .tsx components?
Who pays for the client's editing?
Other builders
Building sites for clients? See how CMS Chat works for agencies.
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