New: start your site with your AI assistant

The Static Site Generator
Built for AI Website Development

Write pages as plain text files, or let your AI coding assistant write them: Claude Code, Cursor, Codex, Copilot or Gemini CLI. vagejs is a free, open-source static site generator that turns them into a fast, secure website that search engines and AI assistants understand.

npm create vagejs@latest my-site

Copy the command · you'll need Node.js 22.12 or newer

MIT licensed · v0.16.2 · Open source on GitHub · Lighthouse report

Get startedUse it with Claude CodeAsk your AI assistant to build your site

~/projects
  1. $ npm create vagejs@latest my-site
  2. Created ~/projects/my-site
  3. Install and start the site now? (Y/n) y
  4. added 80 packages in 9s
  5. Build your site with: 1. Claude Code 2. Codex 3. The browser editor 4. Just open the site
  6. Choose a number (Enter for 1): 1
  7. vagejs dev server running at http://localhost:5173/
  8. same server: http://[::1]:5173/
  9. editor: http://[::1]:5174/ (edit pages in your browser; only on this computer)
  10. Starting Claude Code in my-site.

Your AI assistant

  • Claude Code
  • Cursor
  • GitHub Copilot
  • OpenAI Codex
  • Gemini CLI
Guides for each assistant

Your host

  • Cloudflare
  • Netlify
  • GitHub Pages
  • Vercel
  • Any static host
Every deploy option

Not a developer?
Build your website with an AI assistant.

Let your AI assistant set it up

Paste one of our ready-made prompts into Claude Code, Cursor or another AI coding assistant. It creates the site, adds your pages and checks them, and you approve each step.

Build your prompt Free website tools

Or have an agency build it

These agencies build and look after vagejs sites for their clients.

About the partner program

You ask. Your AI assistant builds.
vagejs checks every page before it goes live.

When you create a site, pick your assistant and it starts with a first prompt that sets the site up with you. Every new site comes with an instructions file, AGENTS.md, that tells your assistant the commands and the rules. So it builds pages the right way, fixes what the check finds, and asks you before anything is published.

  1. Your promptAdd a pricing page
  2. AI assistantFollows AGENTS.md
  3. Page filessrc/pages/pricing.md
  4. vage checkLinks, titles, accessibility
  5. You approveThe plan comes first
  6. Live siteDone only when it answers
  1. You ask

    Describe the page you want, in your own words.

  2. It writes the page

    The page is a plain text file you can read and edit yourself.

  3. vagejs checks it

    The check names the exact file and problem, and the assistant fixes it before you see it.

  4. You approve the deploy

    You see the plan first. It goes live only when you say yes, and only says done when your site answers.

Add a pricing page with our three plans. On it: writing pricing.md
--- title: Pricing description: Simple plans. --- # Pricing Pick the plan that fits your team. src/pages/pricing.md
# Pricing Pick the plan that fits. [Team](/plans/team/) [Team](/pricing/#team) Basic, Team, Business. Prices are per month. src/pages/pricing.md $ vage check 1 error 0 errors
Deploy plan: 5 pages to Cloudflare Proceed? [y/N] Yes Uploading 5 pages example.com · 200 OK

Set it up with your AI assistant

Edit in your browser.
See the page as you type.

npm run dev also starts a local editor: the next steps for a new site, every page, a form for its details, the text with a live preview in your site's design, image upload and the check results. It edits the same files your AI assistant does, and it never becomes part of your live site.

The vagejs editor: a blog post's title, description, date and author in a form on the left, and a live preview of the page in the site's design on the right.

How the editor works

Real sites, built with vagejs.
Static site examples, with the source to copy.

See the showcase

Everything a content site needs.
SEO, sitemaps and llms.txt, built in.

  • Write

    Pages are text files or MDX. Layouts in TypeScript, React or Vue.

    • Pages from files

      Drop a text file into a folder and it's a page. Tag pages by topic, keep drafts hidden, or date a post to publish later.

      How to use: src/pages/pricing.md → /pricing/
    • Edit in your browser

      A form for each page, a live preview in your design and the next steps for a new site, on your own computer. Or edit the files directly.

      How to use: npm run dev
    • React, Vue and MDX

      Write layouts as components and pages as MDX. They become plain HTML, and only components you mark interactive run in the browser.

      How to use: <Counter client:load />
    • Smaller images

      Photos get resized WebP and AVIF copies, and each browser picks the size it needs.

      How to use: images: { optimize: true }
  • Get found

    Search engines and AI assistants get an accurate picture of every page.

    • Sitemap, robots.txt and llms.txt

      Made from the pages that really exist, plus RSS feeds and Markdown copies of pages for AI tools.

      How to use: npm run build
    • Search and social previews

      Page summaries, a share image for every page, breadcrumbs and structured data that help Google and AI assistants understand each page.

      How to use: defaultImage: "/images/og.png"
    • Sites in several languages

      A folder for each language, the right language tags on every page, and a check for missing translations.

      How to use: i18n: { locales: ["fr"] }
    • You choose the AI crawlers

      Allow or block AI training and AI search crawlers separately.

      How to use: robots: { aiTraining: "disallow" }
  • Check and protect

    Problems show up on your machine, before visitors see them.

    • Built-in site check

      Catches broken links, missing details and accessibility slips, and points to the file.

      How to use: npx vage check
    • Speed and accessibility audits

      Size limits for each page, accessibility rules, and Lighthouse when you want it.

      How to use: npx vage audit
    • Protected from spam injection

      Hidden scripts and links to unapproved websites never make it onto your pages.

      How to use: npx vage links
    • No leaked secrets

      Passwords, API keys and .env files are never published, and nobody's work is overwritten.

      How to use: npx vage deploy
  • Publish and grow

    Go live with one command, then see how people find you.

    • One-command publishing

      Cloudflare, Netlify or GitHub Pages. You approve a plan first, and your site stays online while it deploys.

      How to use: npx vage deploy
    • Contact forms

      A form that emails you, with spam protection and no JavaScript, on Cloudflare.

      How to use: contact: { to, from }
    • Privacy-friendly analytics

      Google Analytics, Tag Manager, Plausible or Clarity. Off until you turn it on, and it waits for consent.

      How to use: ga4: { measurementId: "G-…" }
    • Search reports and IndexNow

      Search Console numbers in the terminal, and a ping to search engines when pages change.

      How to use: npx vage report search

See every feature How vagejs compares

Fast out of the box.
100 on Lighthouse, 0 KB of JavaScript.

We tested a brand-new vagejs site with Google's Lighthouse tool. It scored a perfect 100 in every category, and the page loaded in under a second on a simulated phone connection.

  • 100Lighthouse score

    In performance, accessibility, best practices and SEO, on a brand-new site.

  • 0.8 sMain content visible

    On a simulated slow phone connection (Largest Contentful Paint).

  • 0 KBJavaScript sent

    Pages are plain HTML. JavaScript is added only where you add it, such as an interactive component.

  • 0.5 sTo build the site

    For the four-page starter site, ready to publish.

100Performance
100Accessibility
100Best Practices
100SEO
3/3Agentic Browsing
See every number and how we measured
Metricvagejs starterGood is
Main content appears (LCP)0.8 sunder 2.5 s
Layout jumps (CLS)0under 0.1
Time the page is frozen (TBT)0 mslower is better
First text appears (FCP)0.6 slower is better
JavaScript sent to visitors0 KBless is faster
Data downloaded1.7 KB in 2 requestsless is faster
Time to build the site0.5 s for 4 pagesfaster is better

How we measured: a fresh site from npm create vagejs@latest (vagejs 0.16.1), tested with Lighthouse 13.5.0 on mobile settings with a simulated slow network on 28 October 2026. We ran it twice and got the same numbers both times. These are lab results. Google also looks at data from real visitors, and your own numbers will depend on your images, content and hosting.

Questions people ask.
Straight answers.

What kinds of websites can I build with vagejs?

Content websites, such as company sites, blogs, documentation, portfolios and sites for a shop, café or clinic. Our showcase has a live portfolio, docs site and bakery you can copy. For apps with logins and live data, an application framework is a better fit.

How fast is a vagejs site?

A brand-new vagejs site scored 100 in every Lighthouse category, showed its main content in 0.8 s on a simulated slow phone connection and sent 0 KB of JavaScript. These are lab results from 28 October 2026, and your own numbers will depend on your images, content and hosting.

How do I build a website with Claude Code, Codex or Cursor?

Run npm create vagejs@latest my-site and pick your assistant when it asks. It starts with a first prompt that sets the site up with you. Or ask your assistant to build a site with vagejs: every new site includes an AGENTS.md file that tells it the commands and the rules.

How does vagejs stop AI assistants from publishing mistakes?

vage check reads every page before it goes live and names the file behind each broken link, missing title or invalid structured data, so your assistant fixes it first. Links to websites you haven't approved fail the check, and nothing is published until you say yes.

Where do my pages live?

In plain Markdown files in your project's src/pages folder, and each file's place decides its address: src/pages/pricing.md becomes /pricing/. Your AI assistant and the browser editor change the same files, so all of your content stays in files you own.

How do I publish my site?

Run npx vage deploy. It checks the site, shows you a plan and publishes to GitHub Pages, Cloudflare or Netlify only after you say yes, and it says done only when your site answers. Any other static host, such as Vercel, can serve the built dist folder.

See all questionsStep-by-step guides

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

npm create vagejs@latest my-site

Get started

Supported by

Become a sponsor