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- 100Lighthouse score on a new site
- 0 KBJavaScript sent by default
- 1.7 KBStarter page download
- 0.5 sTo build the starter
- MITFree and open source
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.mdbecomes/pricing/. Pages can be drafts, carry tags that get their own pages, or wait for a publish date. A page with a futuredatePublishedstays out of the build, the sitemap and the feeds until that day, then appears with the next build.A local editor
npm run devalso 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.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:visibleto a React component and it becomes an interactive island on that page only.Several languages
Put translations in a folder per language. vagejs sets each page's language, writes
hreflanglinks between versions, and warns about pages that still need translating.
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 checkreads 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 auditbuilds the site and holds every page to size budgets, such as 100 KB of JavaScript.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 verifycompares the live site with your files.See security
Safe deploys
vage deploypublishes 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 thedistfolder.See deployment
Contact forms without JavaScript
On Cloudflare Workers, a contact form needs no script on the page:
vage deployadds 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.
npx vage info --json # every command and setting, in one reply
claude mcp add --transport stdio --scope project vagejs -- npx -p vagejs vage mcpGuides 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