Inferred fields
No schema to author. The editing form comes from the values in your file.
for small sites with typed content
Your content already lives in typed TypeScript files. editsy turns them into an editing UI. No database, no dashboard SaaS, no migration, and edits land as clean git diffs.
$ npx editsy editView on GitHub →// content/home.ts
export default defineContent({
hero: {
heading: "A tidy little website.",
launched: "2026-07-02",
cta: {
label: "View on GitHub",
href: f.url("…"),
},
},
});Point editsy at the content files you already have. Short strings become text inputs, 2026-10-09 becomes a date picker, arrays of objects become collections. This very page is edited with editsy, and every word here lives in content/home.ts.
"short string" → text input"2026-07-02" → date pickerf.markdown() → WYSIWYG[{…}, {…}] → collectionNo schema to author. The editing form comes from the values in your file.
Every save shows the exact file change first. AST rewrites, never regex.
See edits on the real site as you type, before anything is saved.
Content is files in your repo. Git is the history. Nothing to babysit.
Remote saves become attributed git commits, and your host redeploys.
Markdown is WYSIWYG, images get a picker, dates get a calendar. No syntax required.
Add one route and yoursite.com/editsy becomes a login page. Editors sign in with a password or an emailed link, see changes live before saving, and publish. Behind the scenes that's a git commit, and your host redeploys like it would for any push.
import { createEditsy } from "@editsy/next";
export const { GET, POST } = createEditsy();No. If your content files export plain objects or arrays, editsy edits them as-is (as const and satisfies included). The defineContent() wrappers are optional and add type-safety when you want it.
In your repo, in the TypeScript files you already have. There's no separate content store, so there's nothing to migrate into or out of.
Password or an emailed login link. No GitHub account needed. Editors are a small list in your deployment's environment, with passwords stored as scrypt hashes. No user database.
editsy ships a conventions doc you can point your agent at. Sites that follow it are editable by construction, and human-written sites with the same habits get the same benefit.
$ npm install editsy @editsy/nextMIT licensed. Works on files you already have; add defineContent() wrappers when you want type-safety and richer fields.