The editor your Astro site already describes

Vesper reads your content collections and builds the studio from them. People edit in plain forms, every save is a file in your repository, and the site stays static on any host.

Read the docsInstall

No second schema

Other git-based editors ask you to describe your content a second time, in their own config. Vesper reads src/content.config.ts instead.

  • Fields from your Zod schema

    Text, numbers, dates, lists, objects, references and images each get a control. Add a field to the schema and it's in the studio.

  • Hints where you need them

    Labels, help text and widgets come from Zod's meta(), or from Vesper's field helpers, which are plain Zod underneath.

  • Blocks for page builders

    A list of z.discriminatedUnion objects becomes blocks. Editors add a kind from a menu, and each kind gets its own fields.

Vesper's editor for the post “Harbor at dawn”, with its title, Content and Details tabs, a summary, and a hero image with its alt textVesper's editor for the post “Harbor at dawn”, with its title, Content and Details tabs, a summary, and a hero image with its alt text

Your tags and components, as blocks

The body editor reads the tags in markdoc.config.mjs, and the MDX components you declare, and shows each one as a block with its own settings.

  • Settings, not syntax

    A block's settings are its attributes, with the same controls as fields. Changing one rewrites only that attribute's bytes.

  • Checked like your build

    The studio reads the body with the parser and options your site builds with, and won't save one the build would refuse.

  • Tables as a grid

    Pipe tables are edited cell by cell, with rows and columns that move, in Markdown, Markdoc and MDX alike.

A Markdoc body in Vesper's editor, with two callouts, a YouTube video and a partial shown as blocks, each with a Settings buttonA Markdoc body in Vesper's editor, with two callouts, a YouTube video and a partial shown as blocks, each with a Settings button

Content stays yours

Everything is a file in your repository, in the format you chose.

  • Saves change only what changed

    Vesper splices each edit into the file and keeps your formatting, comments and key order, so diffs stay small and readable.

  • Any static host

    The built site and the studio are plain files. Netlify, Cloudflare, Vercel, S3 or a shared host over FTP all work, with no adapter.

  • Open source

    The studio, local editing, GitHub editing, accessibility checks and search are free, under the MIT license.

Editing that people can do

Made for the people who write the content, not only the people who built the site.

  • Vesper's Pages outline with Academics, Nursing and Clinical placements unfolded, and that page open in the editor beside itVesper's Pages outline with Academics, Nursing and Clinical placements unfolded, and that page open in the editor beside it

    Pages in an outline

    Move a page and Vesper moves its files, updates the order, adds redirects and fixes links, all in one change.

  • An image field's focal point marker on a harbor sunset, with Across and Down values and Wide 16:9 and Square crop previewsAn image field's focal point marker on a harbor sunset, with Across and Down values and Wide 16:9 and Square crop previews

    Images with focal points

    Editors set the focal point, and a crop for each shape the site uses. The original file is never changed.

  • Accessibility notes under a page body in Vesper, such as alt text that looks like a file name, a skipped heading level and a “click here” linkAccessibility notes under a page body in Vesper, such as alt text that looks like a file name, a skipped heading level and a “click here” link

    Accessibility notes

    Missing alt text, skipped headings and vague links are noted beside the field, while there's still time to fix them.

  • Vesper's Media screen with four files, each with its thumbnail, folder and size, and the page that uses itVesper's Media screen with four files, each with its thumbnail, folder and size, and the page that uses it

    Media in one place

    The Media screen lists everything in src/assets and public, with the pages that use each file.

A cloud for teams without GitHub

The paid Vesper cloud adds what a static site can't do on its own. It isn't open for sign-ups yet.

  • Sign in without GitHub

    Editors sign in with a link sent by email, and Vesper's GitHub App writes to your repository for them.

  • Drafts and review

    Saves are drafts until someone who may publish approves them, as one change.

  • Roles scoped to folders

    Give an editor one section of the site, and the studio shows them only that section.

Works with coding agents

Your content is files, so a coding agent can already edit it. Vesper tells it how.

  • Instructions from your schema

    The vesper agents command writes a section of your AGENTS.md from your site's own collections, fields and tags, with the rules that keep the studio working.

  • Docs as Markdown

    Every page of the docs is also Markdown, and llms.txt lists them all.

And the rest

Smaller things that make a day of editing go well.

  • Search, built in

    Each build indexes the site with Pagefind. Search is static files, free, on any host.

  • Uploads cleaned first

    Location and camera data come off each photo in the browser, sideways photos turn upright, and huge ones are scaled down.

  • Redirects that keep up

    Every move writes a redirect for each old address, and every build collapses the chains.

  • Keyboard all the way

    Blocks, tables and the page outline all move, open and reorder from the keyboard.

  • Light or dark

    The studio follows your computer's setting, or keeps the one you choose.

  • Astro 6 and 7

    Vesper works with the content collections you already have, with no adapter and no server.

Add Vesper to your site

One command installs it. Then run npm run dev, open /admin/ and make your first edit.

npx astro add vespercms

Get startedRead the docs