Unfreez°

Use case

Make a Next.js site editable by your client — no CMS refactor

Your App Router site — hand-written TSX, no data layer — becomes client-editable in minutes. Unfreez anchors every string in your components and gives your client a safe visual editor. No Contentful, no Sanity, no rewrite.

boulangerie-aurore.fr

Artisan bakery — hand-coded

Sourdough is what we do, since 1987

Naturally leavened breads and pure-butter pastries, kneaded every night in our bakehouse.

Order for tomorrow
Sourdough loaves, just out of the oven Butter croissants and pastries, freshly baked

Headline

Sourdough is what we do, since 1987

Bakehouse photo

Drop a new photo Butter croissants and pastries, freshly baked
content: update Headline & Photo (via Unfreez) main · just now

You built a Next.js site by hand because you wanted control over every component. When the client needs to change a line, there's a much smaller move than bolting on a CMS.

Why a CMS means a rewrite

A headless CMS wants to own your content: schemas to model, a data layer to wire, every string migrated out of your components. You rewrite a working site so a client can change two words in it.

Anchors, not schemas

Unfreez finds the human-facing values in your TSX — headlines, alt text, the items in a const array — and pins each to a deterministic spot in the syntax tree. At publish it rewrites exactly there, byte-exact, and refuses when anything is ambiguous. No language model goes near the write.

A handoff clients can use

You curate what's editable and lock the rest. Your client edits on a live preview and clicks Publish — one signed commit, reversible in a tap — while you keep pushing code without ever being overwritten.

Editing that respects the code you wrote

Zero refactor

No schema, no data layer, no content migration. Point Unfreez at the repo and it finds the strings, images and list items already in your TSX — App Router or Pages Router, server or client components.

No AI in the write path

Edits are spliced at a deterministic spot in the syntax tree, byte-exact. At the slightest ambiguity Unfreez refuses to write rather than risk a production file — and every publish undoes in one tap.

You keep shipping

Push whenever you want. Unfreez notices the code moved, re-anchors, and holds any conflicting client edit for your review — your work is never overwritten.

Fits your stack

Next.js today, plus React (Vite/CRA), Astro, Vue single-file components and plain HTML. The same editor everywhere; more stacks as we go.

From repo to client-editable in three steps

1

Connect the repo

Install the GitHub App on the repos you choose — nothing else. Unfreez scans your components and lists every editable value.

2

Curate what's editable

Check what the client may change, label it in their words, lock everything structural. Nothing is editable without your say-so.

3

Invite your client

They sign in with Google, edit on a live preview, and hit Publish. Each publish is one atomic commit on your branch, signed by Unfreez.

Unfreez vs a headless CMS for a hand-coded Next.js site

Headless CMS Unfreez
Setup Model schemas, wire a data layer, migrate the content Connect the repo, curate fields — minutes
Your components Rewritten to read from the CMS Untouched — the code stays the source of truth
Where content lives A third-party database Your repo, as commits you own
Client edits Through an admin, deployed via webhook On a live preview, as one signed commit
If you stop paying Content locked in their platform Site, repo and history stay exactly as they are

Next.js editing, answered

Does it work with the App Router?

Yes — App Router and Pages Router, server and client components. Unfreez reads the JSX/TSX itself, so where a string is rendered doesn't matter.

Do I need a CMS or a database?

No. There's no schema and no data layer. The editable values stay in your components; Unfreez writes to them in place.

Will it touch my logic or props?

No. It only edits the human-facing values you curated — text, image sources, list items. Everything else is locked, and ambiguous targets are refused rather than guessed.

Does my client need a GitHub account?

No. They sign in with Google and never see git, branches or commits. Every publish is a commit on your branch behind the scenes.

How does deploying work?

A publish is a commit. If Vercel or your host auto-deploys, changes go live in minutes; otherwise they ship with your next deploy. No extra CI required.

Make your Next.js site client-editable.

Try Unfreez for free