vagejs features
What vagejs does for your site.

vagejs is a free, open-source static site generator built for AI coding assistants. Its main features are Markdown and MDX pages, React and Vue components, sites in several languages, the files search engines and AI assistants look for, a check of every page before it goes live, spam protection and safe deploys. You write the pages, or let your AI assistant write them. Here's everything it does, with a link to the docs for each part.

npm create vagejs@latest my-site

Get startedUse it with your AI assistant

Write and build your pages

Plain files you own, with components only where you want them.

  • Writing pages

    Each page is a Markdown file in src/pages, and its folder decides its address: src/pages/pricing.md becomes /pricing/. Pages can be drafts, carry tags that get their own pages, or wait for a publish date. A page with a future datePublished stays out of the build, the sitemap and the feeds until that day, then appears with the next build.

    See content authoring

  • A local editor

    npm run dev also starts an editor in your browser: a form for each page, the text with a live preview in your site's design, image upload and the page's check results. It refuses to overwrite a page that changed since you opened it, works only on your own computer, and is never part of the built site.

    See edit in your browser

  • React, Vue and MDX

    Layouts can be TypeScript functions or React and Vue components, and pages can be MDX with React components. All of it becomes plain HTML. Add client:visible to a React component and it becomes an interactive island on that page only.

    See React, Vue and MDX

  • Several languages

    Put translations in a folder per language. vagejs sets each page's language, writes hreflang links between versions, and warns about pages that still need translating.

    See multi-language sites

Get found by search engines and AI

Everything search engines and AI assistants read is written for you, from the pages you have.

The sitemap, robots.txt, llms.txt, canonical links, sharing tags, structured data and RSS feeds come from the pages that exist. In robots.txt you can treat AI training crawlers (such as GPTBot and ClaudeBot) differently from AI search crawlers (such as OAI-SearchBot and PerplexityBot). See SEO and AI search.

Publish without surprises

Every page is checked before it goes live, and nothing ships that you didn't approve.

  • Checks before you publish

    vage check reads every page without writing anything and reports broken links, missing or duplicate titles and descriptions, invalid structured data and basic accessibility slips, each with the file to fix. vage audit builds the site and holds every page to size budgets, such as 100 KB of JavaScript.

    See checks and audits

  • Protection from spam injection

    Every outside website your pages link to is listed in links.lock.json. A link to a website that isn't on the list, or a link hidden from visitors, fails the check. vage verify compares the live site with your files.

    See security

  • Safe deploys

    vage deploy publishes to GitHub Pages, Cloudflare Workers, Cloudflare Pages or Netlify. It runs the check first, shows a plan and waits for your yes, refuses to commit secrets, and never force-pushes. Any other static host, such as Vercel, can serve the dist folder.

    See deployment

  • Contact forms without JavaScript

    On Cloudflare Workers, a contact form needs no script on the page: vage deploy adds a small Worker that emails each message, with a spam trap and a limit per visitor.

    See contact form

Built for AI coding assistants

Every new site includes AGENTS.md, which tells Claude Code, Codex, Cursor and other assistants the commands and the rules. vage info --json describes every command and setting in one reply, and vage mcp lets an assistant check the site directly. See the agent guides.

terminal
npx vage info --json   # every command and setting, in one reply
claude mcp add --transport stdio --scope project vagejs -- npx -p vagejs vage mcp

Guides and comparisons for vagejs features

The guides walk through specific jobs step by step, and vagejs compared shows how these features line up against other static site generators and CMSs.

Questions about vagejs features

Does vagejs send JavaScript to visitors?

No, not unless you ask for it. Pages are plain HTML, so a new site sends 0 KB of JavaScript. A React component marked client:visible, client:load or client:idle is the only thing that adds some, and only on the page that uses it.

Can I use React or Vue components?

Yes. Layouts can be React or Vue components, and MDX pages can use React components. They're turned into plain HTML when the site builds, so visitors don't download React or Vue unless a component needs to be interactive.

What does vage check look for?

Broken links, missing or duplicate titles and descriptions, invalid structured data, links to websites you haven't approved, and basic accessibility slips such as images without alt text. Each problem names the file to fix, so you or your AI assistant can fix it straight away.

Can I edit pages without a code editor?

Yes. npm run dev opens an editor in your browser with a form for each page and a live preview in your site's design. It only runs on your own computer and is never part of the published site.

Start with one command.
You'll have a site running in a minute.

npm create vagejs@latest my-site

Read the docsUse it with your AI assistant