Extending editsy

The pieces are small and composable. Most sites never need this page; it's here for when you do.

Bring your own storage

All content I/O goes through a ContentBackend interface: list files, read, write (with a revision for conflict checks), list assets. Local disk and GitHub implementations ship in @editsy/cli; implement the interface to put content anywhere else, and pass it to createEditsy({ backend }).

Bring your own email

Magic-link login sends mail through a one-method Mailer interface. SMTP is built in (EDITSY_SMTP_URL); wire any API-based service by passing createEditsy({ mailer }) an object with a send({ to, subject, text }) method.

Working with AI coding agents

editsy ships a conventions document. Point your agent at docs/AI-CONVENTIONS.md in the repo from your project instructions, and it will keep every human-editable string in content files and render through the safe helpers, so the sites it builds are editable by construction.

The programmatic API

@editsy/cli exports the whole toolkit: the fetch-style request handler (createApiHandler), the AST reader/writer (readContent, applyValues), auth utilities, and the backends. @editsy/next is about 80 lines on top of it, and a good template for adapters to other frameworks.