Open source - Git-first editing

Add Editability to your Next.js site. Edit copy in place. Publish as a GitHub commit.

Let non-technical teammates edit text on the live site, review a friendly diff, then publish changes as a commit that triggers your normal CI redeploy. Guests can enter edit mode from the floating Edit button and preview everything before sign-in.

Edit in place

Edit headings, lists, and links in place, with a true WYSIWYG preview.

Git-native workflow

Publish creates one commit with attribution (or hashed editor email for public repos). Review, rollback, and audit in Git.

No extra state

No CMS, no database. Content stays inside your components in the repo.

Editor-only cost

The Lexical editor bundle only loads in edit mode.

How it works

1. Wrap content

Developers wrap existing blocks with the Editability component.

2. Guest preview

Anyone can open the editing UI and iterate locally without auth.

3. Sign in to publish

Publishing is locked until allowlisted Google identity is verified. Then one GitHub commit is created.

4. CI redeploys

Your existing pipeline (Vercel or similar) deploys the change.

What it is (and is not)

It is

  • Inline editing for existing Next.js text blocks.
  • One commit per publish with clear history.
  • Great for marketing sites, docs, and content-heavy pages.
  • Minimal setup with no extra database.

It is not (v0)

  • A page builder or full CMS.
  • A full schema/modeling platform with migrations and admin workflows.
  • Built for highly dynamic app UIs.
  • Supporting images, tables, or complex layouts.

Minimal setup

Install and wrap

Install two packages, wrap text blocks, add one API route, use EditableDocumentView for docs split mode, and opt into `_draft/[slug]` preview routes for collection items when needed.

pnpm add @editability/next @editability/swc

// next.config.ts
export default withEditability(nextConfig);

// app/api/editability/[...action]/route.ts
export { GET, POST } from "@editability/next/api";

Set your env

Use a Google client ID and a fine-grained GitHub token. Optional deploy webhook support is built in.

EDITABILITY_GOOGLE_CLIENT_ID=...
EDITABILITY_SESSION_SECRET=...
EDITABILITY_GITHUB_TOKEN=...
EDITABILITY_REPO_OWNER=...
EDITABILITY_REPO_NAME=...
# optional
EDITABILITY_DEPLOY_WEBHOOK_URL=...

Honest by design

Editability is intentionally small and boring. It avoids hidden state, keeps edits in Git, and stays out of the way.

If you need a full CMS or a page builder, this is not that.