AvalonAvalon
GitHub

Avalon vs Astro

JSX and MDX pages versus Astro `.astro` templates.

Short answer

Both build HTML-first sites (blogs, docs, marketing) with islands for the bits that need to be interactive.

Astro pages are .astro. Astro includes content collections to query files as typed data.

Avalon pages are JSX or MDX. Avalon includes Nitro so APIs, middleware, and deploy presets sit next to those pages.

What is similar

  • Islands: server-rendered HTML first; interactive regions hydrate on the client.
  • Content-heavy sites: landers, blogs, docs, and guides with occasional widgets.
  • File-based routing and MDX.

Where they diverge

DimensionAstroAvalon
Page authoring.astro templates as the default page formatJSX and MDX pages and layouts (.tsx / .mdx)
Typed content in the repoContent collections: schemas, getCollection, getEntry from a src/content treeNo first-party collection API. Content is routes (.tsx / .mdx under modules or src/pages/), imports, or data you load at build or request time
Server / deploymentStatic output by default; server and on-demand output through deployment adapters (for example @astrojs/node)Nitro presets plus API routes, middleware, server actions, and cron jobs
Skills and ecosystemIntegrations directory and tutorials centered on Astro APIsVite, JSX, and Nitro skills that carry over from other app stacks

When Astro is the better fit

  • Your team wants to author pages in .astro and embed UI frameworks from that template language.
  • You want Astro’s content collections to validate, list, and query markdown/MDX as data, not only as routable pages.
  • You plan to rely on Astro’s integrations directory and Astro-oriented guides for setup and deployment.

When Avalon is the better fit

  • You want JSX and MDX pages and layouts for marketing, docs, and product UI in one authoring style.
  • You want Nitro as the default server and deployment story for APIs, middleware, and presets alongside those pages.
  • You ship interactive product UI in the same repo as marketing and docs, with JSX, MDX, and Nitro end to end.
  • Your team already works in Vite + JSX + Nitro and wants islands without adopting .astro or Astro-only content APIs.

What this guide is not

  • A benchmark. No “faster,” “smaller,” or “better SEO” claim. Measure your routes.
  • A migration recipe.
  • An independent review. Check Astro’s docs.

Primary sources