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.