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.