Favicon of astro

astro

Astro is a website build tool combining a fast developer experience with lightweight, framework-agnostic output, supporting React, Vue, Svelte, and more.

Astro is a website build tool aimed at developers who want fast page loads without giving up a modern component-based workflow. It ships a project scaffolding CLI, a build pipeline, and a growing set of official integrations, and it's designed so you can pull in React, Vue, Svelte, Solid, or Preact components without committing your whole site to one framework.

Key features

  • Framework-agnostic components: official integrations exist for React, Preact, Solid.js, Svelte, Vue, and Alpine.js, so you can mix components from different UI libraries in the same project.
  • create-astro scaffolding: the create-astro package sets up a new project with the recommended npm create astro@latest command.
  • Deployment integrations: official adapters target Node, Vercel, Cloudflare, and Netlify, covering common hosting setups out of the box.
  • Content tooling: built-in support for MDX and RSS feed generation, plus a sitemap integration for SEO.
  • Performance-oriented add-ons: a Partytown integration offloads third-party scripts to a web worker to keep the main thread free.
  • Editor and type tooling: a language server, TypeScript plugin, and @astrojs/check package provide editor support and type checking for .astro files, alongside a VS Code extension.
  • Modular package structure: the project is organized as a monorepo of independently versioned packages, each with its own changelog.
  • Related official projects: the Astro compiler and the Starlight documentation-site framework are maintained as separate repositories under the same organization, extending what you can build with Astro beyond what lives in this repo.

Ideal use cases

Astro suits content-heavy sites: blogs, marketing pages, documentation, and portfolios where fast load times matter and most of the page doesn't need to be an interactive app. Because integrations are optional, it also works for teams migrating gradually from an existing framework, dropping in React or Vue components only where interactivity is actually needed.

It's a weaker fit for building a fully interactive, app-like product where nearly every part of the UI needs client-side state and routing, since that kind of app is closer to what dedicated SPA frameworks are built for. If your project is essentially a single-page application rather than a collection of mostly static pages, a framework built around that model may fit more naturally.

Installation

The recommended way to start a new project is the create-astro scaffolding command:

npm create astro@latest

You can also add Astro to an existing setup manually:

npm install astro

For quick experimentation without a local setup, the project offers a browser-based way to open a starter project instantly through astro.new.

Documentation, guides, and integration setup instructions live at the official docs site, and the project maintains a Discord server for support and for new contributors looking to get involved. The repository itself is organized as a monorepo, with each package (astro core, create-astro, and each integration) versioned and changelogged independently under packages/.

Astro is open source and free to use, with development funded by sponsors through Open Collective rather than a commercial license, and the project follows an open governance model with published voting procedures for major decisions. New contributors are explicitly welcomed: the contributing guide is written to get a first pull request merged quickly, and the Discord server is positioned as the place to meet maintainers directly rather than working things out entirely through GitHub issues.

The project also tracks its security posture publicly through a CII (Core Infrastructure Initiative) Best Practices badge, which is a useful signal if you're evaluating Astro for use inside an organization with its own security review process. Each package's changelog is kept next to its source under packages/, so you can check exactly what changed in a given release of Astro core or any individual integration before upgrading.

Categories:

Frequently asked questions

Share:

Stars
60.8K
Forks
3.6K
Last commit
2 hours ago
Repository age
5 years
Self-hosted
No
Activity score
86/100
View Repository
Built with:

Similar to astro

Favicon

 

  
  
Favicon

 

  
  
Favicon