Unfreez°

July 17, 2026

Making a hand-coded website editable, without refactoring it

Every developer who ships hand-coded sites knows the email. “Can you change the opening hours?” Two lines of JSX, five minutes of work, and somehow it still costs you a context switch, a deploy, and a small piece of your soul.

The industry’s answer has always been the same: migrate. Move your content into a CMS, split your site into templates and schemas, teach your client an admin panel. You rewrite a working site so that someone can change two words in it.

We think that’s backwards. The code you shipped is the source of truth — it’s fast, it’s versioned, it’s exactly what you wanted. The only thing missing is a safe way for a non-developer to touch the words inside it.

Anchors, not schemas

Unfreez parses your source — Next.js or Vite React components, Astro pages, Vue single-file components, or plain HTML — and finds the human-facing values: headlines, paragraphs, image sources, list items, SEO tags. It reads them where they actually live: in the markup, or in that const array your template maps over. Each value gets an anchor — a deterministic path in the syntax tree, plus a content hash and a snapshot of its neighborhood.

When your client hits Publish, we re-resolve every anchor against the current code. If it resolves cleanly, we write the new value — surgically, byte-exact around it — and commit. If anything is ambiguous, we refuse to write. Not a warning. A refusal. A tool that writes to other people’s repositories has no business guessing.

No LLM in the write path

It would be easy to throw a language model at this: “find the headline, replace it”. It would work often. And “often” is exactly the problem — a probabilistic writer on a deterministic medium means that someday, on someone’s production site, it rewrites the wrong thing convincingly.

So the write path is boring on purpose: parse, anchor, hash, resolve, splice, commit. Every publish is atomic — one rejection means zero bytes written. Every publish is one commit, signed, with a one-tap rollback.

You keep coding

Sites aren’t frozen for us either. Push whenever you want: Unfreez detects that the code moved, marks the affected fields, and holds any conflicting client edit for your review instead of overwriting either side.

That’s the whole product: your site stays a hand-coded site. It just stops being frozen.