# vagejs vs Astro

> An honest comparison of vagejs and Astro, two frameworks that send no JavaScript by default, covering components, SEO files, checks, AI agent support and hosting.

Astro and vagejs agree on the big idea: a content site should reach visitors as plain HTML, with no JavaScript unless you ask for it. They differ in what they build around that idea. Astro is a mature, flexible framework with a large ecosystem. vagejs is a newer, narrower tool focused on checks, safety and working with AI coding assistants.

| Feature | vagejs | Astro |
| --- | --- | --- |
| License | MIT | MIT |
| Templates | TypeScript functions with an escaping `html` tag | `.astro` components, plus React, Vue, Svelte and others as "islands" |
| JavaScript sent to visitors | None by default | None by default; components opt in with `client:*` |
| Output | Static files | Static by default; on-demand pages with a server adapter |
| Content | Markdown with frontmatter, lists via `collection()` | Content collections: Markdown, MDX, Markdoc, YAML, TOML, JSON |
| Sitemap | Built in | Official `@astrojs/sitemap` integration |
| robots.txt | Built in, with AI crawler settings | Written by you, or generated with an endpoint |
| llms.txt | Built in | Community integrations |
| Checks before publishing | `vage check`: links, SEO, structured data, accessibility, spam | Not built in |
| Spam-injection protection | Link lock, hidden-link checks, `vage verify` | Not built in |
| AI coding assistants | `AGENTS.md` in every project, `vage info --json`, JSON check results | Official MCP server for the Astro docs |

## Where Astro is stronger

-   **Interactive components.** If parts of your site need React, Vue or Svelte, Astro's islands handle that well. vagejs has no client-side component model.
-   **Ecosystem.** A large catalogue of integrations and themes, and a big community. vagejs is new and small.
-   **On-demand rendering.** With an adapter, Astro can render pages per request. vagejs is static only.
-   **Rich content formats.** MDX and Markdoc let you put components inside content.

## Where vagejs is stronger

-   **Correct by default.** Sitemaps, robots.txt, llms.txt and structured data come from the pages that really exist, and `vage check` stops the build when something's missing or broken.
-   **Built for AI assistants.** Every project explains itself to coding agents, and every command answers in JSON with the file to fix.
-   **Protection against injected spam.** Links to unapproved websites and hidden links fail the check, and `vage verify` compares the live site with your files.
-   **Safe publishing.** Deploys show a plan, refuse to commit secrets and never force-push.

## Which to choose

Choose **Astro** for sites with interactive parts, teams that want a mature ecosystem, or projects that may need server rendering later. Choose **vagejs** for content sites where you want guardrails, especially if an AI assistant writes much of the site.

Sources: [Astro docs](https://docs.astro.build/), [Astro islands](https://docs.astro.build/en/concepts/islands/), [content collections](https://docs.astro.build/en/guides/content-collections/), [sitemap integration](https://docs.astro.build/en/guides/integrations-guide/sitemap/), [building with AI](https://docs.astro.build/en/guides/build-with-ai/). Checked October 2026.
