What it is
Astro is a web framework built for content-driven sites: blogs, marketing pages, docs, and lightweight e-commerce. Instead of shipping a big JavaScript bundle by default, Astro renders pages to HTML and only hydrates the interactive “islands” that need JavaScript in the browser.
You write components in React, Svelte, Vue, Solid, or plain HTML/MDX, and Astro stitches them together into fast, static or hybrid pages.
With Astro 5, the framework leans into being a content hub: you can pull content from local files, headless CMSes, or APIs and treat it all as a single, type-safe content layer that feeds the site.
What’s new
Astro is currently in the 5.x line, and recent releases have focused on making large, content-heavy projects easier to manage and debug rather than introducing breaking changes.
Astro 5.0 introduced the Content Layer, a unified way to load content from any source (files, CMS, APIs) into type-safe collections, plus Server Islands that combine cached static pages with dynamic, personalised regions. It also simplified prerendering and upgraded the toolchain to Vite 6 with better type-safe environment variables.
The more recent Astro 5.13 release in August 2025 continues polishing the developer experience: experimental improvements to how environment variables are handled, tighter integration with Chrome DevTools workspaces (so you can edit Astro files directly from DevTools), and a stream of smaller quality-of-life updates.
The ongoing 5.13.x patches through September 2025 refine behaviour around things like the image endpoint (better detection of remote paths) and component typings, while keeping upgrades low-friction for existing 5.x sites.
What else is similar to it
Astro lives in the same general space as frameworks like Next.js, SvelteKit, Nuxt, Gatsby, Hugo and Eleventy. They all let you build modern sites with some mix of static generation, server rendering and client interactivity.
Next.js and SvelteKit lean more towards full web applications with rich routing and server logic. Hugo and Eleventy are closer to traditional static site generators with templating and content pipelines. Gatsby historically focused on GraphQL-centric content sourcing.
They all help you ship content and pages, but differ in how much JavaScript they expect you to run in the browser and how “app-like” they want your site to be.
Why it’s different
Astro’s main bet is that most content sites don’t need a full SPA runtime. It renders HTML first, hydrates only the interactive components you opt into, and lets you mix multiple component frameworks in the same project.
It makes Astro feel “content-first”: you organise collections, loaders and pages, and the framework handles how to render and ship it efficiently rather than pushing you into a full client-side app model.
How to get started
- Go to astro.build and read the “Getting Started” and “Upgrade to v5” guides to understand the current 5.x model and Content Layer.
- Create a new project with the official starter using your package manager:
npm create astro@latest(or thepnpm/yarnequivalents). - Choose a minimal starter (blog or docs) and inspect the generated src/content and src/pages structure to see how content collections and routes are wired.
- Add a few Markdown or MDX files to a collection and query them through the Content Layer so you see the type-safe content API in practice.
- Experiment with one interactive “island” using your preferred component framework (e.g. a React or Svelte component on an otherwise static page) to get a feel for Astro’s partial-hydration model.
