# Astro > This is the full developer documentation for Astro ## Pages - [Astro Documentation](astro-documentation.md) - [Why Astro?](why-astro.md): Astro is the web framework for building content-driven websites like blogs, marketing, and e-commerce. Learn why Astr... - [Islands architecture](islands-architecture.md): Learn about how Astro's islands architecture helps keep sites fast. - [Install Astro](install-astro.md): How to install Astro and start a new project. - [Project structure](project-structure.md): An introduction to the basic file structure of an Astro project. - [Develop and build](develop-and-build.md): How to start working on a new project. - [Configuration overview](configuration-overview.md): Get to know the ways you can configure and customize your new project and your development experience. - [Astro Courses](astro-courses.md): Learn Astro with out-of-this-world courses and tutorials. - [Components](components.md): An introduction to Astro components. - [Pages](pages.md): An introduction to Astro pages. - [Title](title.md): This is my page, written in **Markdown.** - [Layouts](layouts.md): An introduction to layouts in Astro. - [Contribute to Astro](contribute-to-astro.md): How to get involved and contribute to Astro. - [Editor setup](editor-setup.md): Set up your code editor to build with Astro. - [Astro Docs](astro-docs.md): Guides, resources, and API references to help you build with Astro. - [create a new project with npm](create-a-new-project-with-npm.md): npm create astro@latest - [Actions](actions.md): Learn how to create type-safe server functions you can call from anywhere. - [Astro DB](astro-db.md): Learn how to use Astro DB, a fully-managed SQL database designed exclusively for Astro. - [Build with a remote connection](build-with-a-remote-connection.md): astro build --remote - [Develop with a remote connection](develop-with-a-remote-connection.md): astro dev --remote - [Authentication](authentication.md): An intro to authentication in Astro - [Use a backend service with Astro](use-a-backend-service-with-astro.md): How to use a backend service to add authentication, storage and data - [Appwrite & Astro](appwrite-astro.md): Add a backend to your project with Appwrite - [Firebase & Astro](firebase-astro.md): Add a backend to your project with Firebase - [Neon Postgres & Astro](neon-postgres-astro.md): Add a serverless Postgres database to your Astro project with Neon - [Prisma Postgres & Astro](prisma-postgres-astro.md): Add a serverless Postgres database to your Astro project with Prisma Postgres - [Monitor your Astro Site with Sentry](monitor-your-astro-site-with-sentry.md): How to monitor your Astro site with Sentry - [Supabase & Astro](supabase-astro.md): Add a backend to your project with Supabase - [Turso & Astro](turso-astro.md): Build locally with a SQLite file and deploy globally using Turso. - [Xata & Astro](xata-astro.md): Add a serverless database with full-text search to your project with Xata - [the same name as your git branch](the-same-name-as-your-git-branch.md): XATA_BRANCH=main - [Building Astro sites with AI tools](building-astro-sites-with-ai-tools.md): Resources and tips for building Astro sites with AI assistance - [...rest of your workflow configuration](rest-of-your-workflow-configuration.md): - uses: anthropics/claude-code-action@beta - [Scripts and event handling](scripts-and-event-handling.md): How to add client-side interactivity to Astro components using native browser JavaScript APIs. - [Use a CMS with Astro](use-a-cms-with-astro.md): How to use a CMS to add content to Astro - [ApostropheCMS & Astro](apostrophecms-astro.md): Edit content on the page in your Astro project using Apostrophe as your CMS. - [Builder.io & Astro](builderio-astro.md): Add content to your Astro project using Builder.io’s visual CMS - [ButterCMS & Astro](buttercms-astro.md): Add content to your Astro project using ButterCMS - [Caisy & Astro](caisy-astro.md): Add content to your Astro project using Caisy as a CMS - [CloudCannon & Astro](cloudcannon-astro.md): Add content to your Astro project using CloudCannon as a CMS - [Contentful & Astro](contentful-astro.md): Add content to your Astro project using Contentful as a CMS - [Cosmic & Astro](cosmic-astro.md): Add content to your Astro project using Cosmic as a CMS - [Craft CMS & Astro](craft-cms-astro.md): Add content to your Astro project using Craft CMS as a CMS - [Craft Cross CMS & Astro](craft-cross-cms-astro.md): Add content to your Astro project using Craft Cross CMS - [Crystallize & Astro](crystallize-astro.md): Add content to your Astro project using Crystallize as a CMS - [DatoCMS & Astro](datocms-astro.md): Add content to your Astro project using DatoCMS - [Decap CMS & Astro](decap-cms-astro.md): Add content to your Astro project using Decap as a CMS - [Directus & Astro](directus-astro.md): Add content to your Astro project using Directus as a CMS - [Drupal & Astro](drupal-astro.md): Add content to your Astro project using Drupal as a CMS - [Flotiq & Astro](flotiq-astro.md): Add content to your Astro project using Flotiq as a CMS - [Front Matter CMS & Astro](front-matter-cms-astro.md): Add content to your Astro project using Front Matter CMS - [Ghost & Astro](ghost-astro.md): Add content to your Astro project using Ghost as a CMS - [GitCMS & Astro](gitcms-astro.md): Integrate GitCMS into your Astro project for seamless content management - [Hashnode & Astro](hashnode-astro.md): Add content to your Astro project using Hashnode as a CMS - [Hygraph & Astro](hygraph-astro.md): Add content to your Astro project using Hygraph as a CMS - [JekyllPad & Astro](jekyllpad-astro.md): Manage your Astro site content with JekyllPad’s browser-based, GitHub-backed editor, no Git or Markdown hassles ever. - [Keystatic & Astro](keystatic-astro.md): Add content to your Astro project using Keystatic as a CMS - [KeystoneJS & Astro](keystonejs-astro.md): Add content to your Astro project using KeystoneJS as a CMS - [Kontent.ai & Astro](kontentai-astro.md): Add content to your Astro project using Kontent.ai as CMS - [microCMS & Astro](microcms-astro.md): Add content to your Astro project using microCMS - [Optimizely CMS & Astro](optimizely-cms-astro.md): Add content to your Astro project using Optimizely CMS - [Payload CMS & Astro](payload-cms-astro.md): Add content to your Astro project using Payload as a CMS - [Prepr CMS & Astro](prepr-cms-astro.md): Add content to your Astro project using Prepr as a CMS - [Prismic & Astro](prismic-astro.md): Add content to your Astro project using Prismic as a CMS - [Sanity & Astro](sanity-astro.md): Add content to your Astro project using Sanity as a CMS - [Sitecore Experience Manager & Astro](sitecore-experience-manager-astro.md): Add content to your project using Sitecore as your CMS. - [Sitepins & Astro](sitepins-astro.md): Use Sitepins to manage content for your Astro project with a Git-based visual CMS. - [Spinal & Astro](spinal-astro.md): Add content to your project using Spinal as your CMS. - [Headless Statamic & Astro](headless-statamic-astro.md): Add content to your Astro project using Statamic as a CMS - [Storyblok & Astro](storyblok-astro.md): Add content to your Astro project using Storyblok as a CMS - [Strapi & Astro](strapi-astro.md): Add content to your Astro project using Strapi Headless CMS - [StudioCMS & Astro](studiocms-astro.md): Build and manage content for your Astro project using StudioCMS, a headless CMS designed specifically for Astro. - [Tina CMS & Astro](tina-cms-astro.md): Add content to your Astro project using Tina as a CMS - [Umbraco & Astro](umbraco-astro.md): Add content to your Astro project using Umbraco as a CMS - [Headless WordPress & Astro](headless-wordpress-astro.md): Add content to your Astro project using WordPress as a CMS - [Content collections](content-collections.md): Manage your content with type safety. - [Data fetching](data-fetching.md): Learn how to fetch remote data with Astro using the fetch API. - [Deploy your Astro Site](deploy-your-astro-site.md): How to deploy your Astro site to the web. - [Deploy your Astro Site to AWS](deploy-your-astro-site-to-aws.md): How to deploy your Astro site to the web using AWS. - [Deploy your Astro Site to AWS with Flightcontrol](deploy-your-astro-site-to-aws-with-flightcontrol.md): How to deploy your Astro site to AWS with Flightcontrol - [Deploy your Astro Site to AWS with SST](deploy-your-astro-site-to-aws-with-sst.md): How to deploy your Astro site to AWS with SST - [Deploy your Astro Site to Azion](deploy-your-astro-site-to-azion.md): How to deploy your Astro site to the web using Azion. - [Deploy your Astro Site with Buddy](deploy-your-astro-site-with-buddy.md): How to deploy your Astro site to the web using Buddy. - [Deploy your Astro Site with Cleavr](deploy-your-astro-site-with-cleavr.md): How to deploy your Astro site to your VPS server using Cleavr. - [Deploy your Astro Site to Clever Cloud](deploy-your-astro-site-to-clever-cloud.md): How to deploy your Astro site to the web on Clever Cloud. - [Deploy your Astro Site to Cloudflare](deploy-your-astro-site-to-cloudflare.md): How to deploy your Astro site to the web using Cloudflare - [Deploy your Astro Site with CloudRay](deploy-your-astro-site-with-cloudray.md): How to deploy your Astro site to your Ubuntu Server using CloudRay - [Deploy your Astro Site with Deno](deploy-your-astro-site-with-deno.md): How to deploy your Astro site to the web using Deno. - [Deploy your Astro Site with DeployHQ](deploy-your-astro-site-with-deployhq.md): How to deploy your Astro site to the web using DeployHQ. - [Deploy your Astro Site to EdgeOne Pages](deploy-your-astro-site-to-edgeone-pages.md): How to deploy your Astro site to the web on EdgeOne Pages. - [Deploy your Astro Site to Google’s Firebase Hosting](deploy-your-astro-site-to-googles-firebase-hosting.md): How to deploy your Astro site to the web using Google’s Firebase Hosting. - [Deploy your Astro Site to Fleek](deploy-your-astro-site-to-fleek.md): How to deploy your Astro site to the web on Fleek. - [Deploy your Astro Site to Fly.io](deploy-your-astro-site-to-flyio.md): How to deploy your Astro site to the web using Fly.io. - [Deploy your Astro Site to GitHub Pages](deploy-your-astro-site-to-github-pages.md): How to deploy your Astro site to the web using GitHub Pages. - [Deploy your Astro Site to GitLab Pages](deploy-your-astro-site-to-gitlab-pages.md): How to deploy your Astro site to the web using GitLab Pages. - [Deploy your Astro Site to Google Cloud](deploy-your-astro-site-to-google-cloud.md): How to deploy your Astro site to the web using Google Cloud. - [build your container](build-your-container.md): docker build . - [Push your image to a registry](push-your-image-to-a-registry.md): docker push HOSTNAME/PROJECT-ID/IMAGE:TAG - [Deploy your Astro Site to Heroku](deploy-your-astro-site-to-heroku.md): How to deploy your Astro site to the web using Heroku. - [Deploy your Astro Site to Juno](deploy-your-astro-site-to-juno.md): How to deploy your Astro site to the web using Juno. - [Deploy your Astro Site to Kinsta Application Hosting](deploy-your-astro-site-to-kinsta-application-hosting.md): How to deploy your Astro site to the web on Kinsta Application Hosting. - [Deploy your Astro Site to Microsoft Azure](deploy-your-astro-site-to-microsoft-azure.md): How to deploy your Astro site to the web using Microsoft Azure. - [Deploy your Astro Site to Netlify](deploy-your-astro-site-to-netlify.md): How to deploy your Astro site to the web on Netlify. - [Deploy your Astro Site with Railway](deploy-your-astro-site-with-railway.md): How to deploy your Astro site using the Railway web interface. - [Deploy your Astro Site to Render](deploy-your-astro-site-to-render.md): How to deploy your Astro site to the web using Render. - [Deploy your Astro Site to Seenode](deploy-your-astro-site-to-seenode.md): How to deploy your Astro site to the web on Seenode. - [Deploy your Astro Site to Stormkit](deploy-your-astro-site-to-stormkit.md): Deploy your Astro site to Stormkit - [Deploy your Astro Site to Surge](deploy-your-astro-site-to-surge.md): How to deploy your Astro site to the web using Surge - [Deploy your Astro Site to Vercel](deploy-your-astro-site-to-vercel.md): How to deploy your Astro site to the web on Vercel. - [Deploy your Astro Site to Zeabur](deploy-your-astro-site-to-zeabur.md): How to deploy your Astro site to the web on Zeabur. - [Deploy your Astro Site to Zephyr Cloud](deploy-your-astro-site-to-zephyr-cloud.md): How to deploy your Astro site to the web using Zephyr Cloud. - [Deploy your Astro Site to Zerops](deploy-your-astro-site-to-zerops.md): How to deploy your Astro site to the web using Zerops. - [see https://docs.zerops.io/references/import for full reference](see-httpsdocszeropsioreferencesimport-for-full-reference.md): project: - [see https://docs.zerops.io/references/import for full reference](see-httpsdocszeropsioreferencesimport-for-full-reference-2.md): project: - [Dev toolbar](dev-toolbar.md): A guide to using the dev toolbar in Astro - [E-commerce](e-commerce.md): An introduction to adding e-commerce options to your Astro site - [Endpoints](endpoints.md): Learn how to create endpoints that serve any kind of data - [Using environment variables](using-environment-variables.md): Learn how to use environment variables in an Astro project. - [This will only be available when run on the server!](this-will-only-be-available-when-run-on-the-server.md): DB_PASSWORD="foobar" - [This will be available everywhere!](this-will-be-available-everywhere.md): PUBLIC_POKEAPI=" - [Using custom fonts](using-custom-fonts.md): Looking to add some custom typefaces to an Astro website? Use Google Fonts with Fontsource or add a font of your choice. - [Front-end frameworks](front-end-frameworks.md): Build your Astro website with React, Svelte, and more. - [Images](images.md): Learn how to use images in Astro. - [My Markdown Page](my-markdown-page.md): The HTML``tag can also be used to display images stored in`public/`or remote images without any image optimi... - [My MDX Page](my-mdx-page.md): // Local image stored in the the same folder - [Imports reference](imports-reference.md): Learn how to import different file types into your Astro project. - [Add Integrations](add-integrations.md): Learn how to add integrations to your Astro project. - [@astrojs/alpinejs](astrojsalpinejs.md): Learn how to use the @astrojs/alpinejs framework integration to extend component support in your Astro project. - [@astrojs/cloudflare](astrojscloudflare.md): Learn how to use the @astrojs/cloudflare adapter to deploy your Astro project. - [@astrojs/db](astrojsdb.md): Learn how to use the @astrojs/db integration in your Astro project. - [@deno/astro-adapter](denoastro-adapter.md): The Deno Astro adapter - [Lit](lit.md): Using Lit to extend component support in your Astro project. - [@astrojs/markdoc](astrojsmarkdoc.md): Learn how to use the @astrojs/markdoc integration in your Astro project. - [Welcome to Markdoc 👋](welcome-to-markdoc.md): {% aside type="tip" %} - [My Blog Post](my-blog-post.md): {% partial file="./_footer.mdoc" /%} - [Note: Can use either spaces or tabs for indentation](note-can-use-either-spaces-or-tabs-for-indentation.md): {% custom-tag %} - [@astrojs/mdx](astrojsmdx.md): Learn how to use the @astrojs/mdx integration in your Astro project. - [{title}](title-2.md): Or you can use that exported`title`in your page using`import`and`import.meta.glob()`statements: - [{frontmatter.title}](frontmattertitle.md): Written by: {frontmatter.author} - [@astrojs/netlify](astrojsnetlify.md): Learn how to use the @astrojs/netlify adapter to deploy your Astro project. - [@astrojs/node](astrojsnode.md): Learn how to use the @astrojs/node adapter to deploy your Astro project. - [@astrojs/partytown](astrojspartytown.md): Learn how to use the @astrojs/partytown integration in your Astro project. - [@astrojs/preact](astrojspreact.md): Learn how to use the @astrojs/preact framework integration to extend component support in your Astro project. - [@astrojs/prefetch](astrojsprefetch.md): The deprecated prefetch integration. - [@astrojs/react](astrojsreact.md): Learn how to use the @astrojs/react framework integration to extend component support in your Astro project. - [@astrojs/sitemap](astrojssitemap.md): Learn how to use the @astrojs/sitemap integration in your Astro project. - [@astrojs/solid-js](astrojssolid-js.md): Learn how to use the @astrojs/solid-js framework integration to extend component support in your Astro project. - [@astrojs/svelte](astrojssvelte.md): Learn how to use the @astrojs/svelte framework integration to extend component support in your Astro project. - [@astrojs/tailwind](astrojstailwind.md): Learn how to use the @astrojs/tailwind integration in your Astro project. - [@astrojs/vercel](astrojsvercel.md): Learn how to use the @astrojs/vercel adapter to deploy your Astro project. - [@astrojs/vue](astrojsvue.md): Learn how to use the @astrojs/vue framework integration to extend component support in your Astro project. - [Internationalization (i18n) Routing](internationalization-i18n-routing.md): Learn how to use Astro’s i18n routing features to localize your site’s pages. - [Markdown in Astro](markdown-in-astro.md): Learn about Astro's built-in support for Markdown. - [Hi there!](hi-there.md): This Markdown file creates a page at`your-domain.com/page-1/` - [Image and video hosting with Astro](image-and-video-hosting-with-astro.md): How to use a hosted media service to add images and videos to Astro - [Cloudinary & Astro](cloudinary-astro.md): Add images and videos to your Astro project using Cloudinary - [Mux & Astro](mux-astro.md): Add high-performance video to your Astro project using Mux - [Middleware](middleware.md): Learn how to use middleware in Astro. - [Migrate an existing project to Astro](migrate-an-existing-project-to-astro.md): Some tips and tricks for converting your site to Astro. - [Migrating from Create React App (CRA)](migrating-from-create-react-app-cra.md): Tips for migrating an existing Create React App project to Astro - [Migrating from Docusaurus](migrating-from-docusaurus.md): Tips for migrating an existing Docusaurus project to Astro - [Migrating from Eleventy](migrating-from-eleventy.md): Tips for migrating an existing Eleventy project to Astro - [Migrating from Gatsby](migrating-from-gatsby.md): Tips for migrating an existing Gatsby project to Astro - [My Markdown Page](my-markdown-page-2.md): In React (`.jsx`) components, use standard JSX image syntax (``). Astro will not optimize these images, but yo... - [Migrating from GitBook](migrating-from-gitbook.md): Tips for migrating an existing GitBook project to Astro - [Migrating from Gridsome](migrating-from-gridsome.md): Tips for migrating an existing Gridsome project to Astro - [Migrating from Hugo](migrating-from-hugo.md): Tips for migrating an existing Hugo project to Astro - [Migrating from Jekyll](migrating-from-jekyll.md): Tips for migrating an existing Jekyll project to Astro - [Migrating from Next.js](migrating-from-nextjs.md): Tips for migrating an existing Next.js project to Astro - [Migrating from NuxtJS](migrating-from-nuxtjs.md): Tips for migrating an existing NuxtJS project to Astro - [Migrating from Pelican](migrating-from-pelican.md): Tips for migrating an existing Pelican project to Astro - [Migrating from SvelteKit](migrating-from-sveltekit.md): Tips for migrating an existing SvelteKit project to Astro - [Migrating from VuePress](migrating-from-vuepress.md): Tips for migrating an existing VuePress project to Astro - [Migrating from WordPress](migrating-from-wordpress.md): Tips for migrating an existing WordPress project to Astro - [On-demand rendering](on-demand-rendering.md): Generate server-rendered pages and routes on demand with an adapter. - [Prefetch](prefetch.md): Prefetch links for snappier navigation between pages. - [Routing](routing.md): An intro to routing with Astro. - [Example: Static routes](example-static-routes.md): src/pages/index.astro -> mysite.com/ - [Server islands](server-islands.md): Combine high performance static HTML with dynamic server-rendered content. - [Sessions](sessions.md): Share data between requests for on-demand rendered pages. - [Styles and CSS](styles-and-css.md): Learn how to style components in Astro with scoped styles, external CSS, and tooling like Sass and PostCSS. - [Syntax Highlighting](syntax-highlighting.md): Learn how to highlight your code blocks in Astro. - [Testing](testing.md): An intro to testing in Astro - [Troubleshooting](troubleshooting.md): Need help? Stuck on something? We've got you covered. - [Example: Install integrations and frameworks together](example-install-integrations-and-frameworks-together.md): npm install @astrojs/react react react-dom - [TypeScript](typescript.md): Learn how to use Astro's built-in TypeScript support. - [Legacy v0.x Upgrade Guide](legacy-v0x-upgrade-guide.md): Archived guide documenting changes between pre-v1 versions of Astro - [(Read the full walkthrough: https://docs.astro.build/en/guides/integrations-guide)](read-the-full-walkthrough-httpsdocsastrobuildenguidesintegrations-guide.md): +npm install @astrojs/lit lit - [Example: Install integrations and frameworks together](example-install-integrations-and-frameworks-together-2.md): npm install @astrojs/react react react-dom - [Upgrade to Astro v2](upgrade-to-astro-v2.md): How to upgrade your project to the latest version of Astro. - [Upgrade to Astro v3](upgrade-to-astro-v3.md): How to upgrade your project to the latest version of Astro (v3.0). - [My Markdown Page](my-markdown-page-3.md): If you require more control over your image attributes, we recommend using the`.mdx`file format, which allows you t... - [Upgrade to Astro v4](upgrade-to-astro-v4.md): How to upgrade your project to the latest version of Astro (v4.0). - [Upgrade to Astro v5](upgrade-to-astro-v5.md): How to upgrade your project to Astro v5.0. - [View transitions](view-transitions.md): Enable seamless navigation between pages in Astro with view transitions. - [Astro recipes](astro-recipes.md): Short, focused how-to guides. - [Installing a Vite or Rollup plugin](installing-a-vite-or-rollup-plugin.md): Learn how you can import YAML data by adding a Rollup plugin to your project. - [Analyze bundle size](analyze-bundle-size.md): Learn how to analyze the bundle generated by Astro using`rollup-plugin-visualizer`. - [Build a custom image component](build-a-custom-image-component.md): Learn how to build a custom image component that supports media queries using the getImage function. - [Build HTML forms in Astro pages](build-html-forms-in-astro-pages.md): Learn how to build HTML forms and handle submissions in your frontmatter. - [Build forms with API routes](build-forms-with-api-routes.md): Learn how to use JavaScript to send form submissions to an API Route. - [Use Bun with Astro](use-bun-with-astro.md): Learn how to use Bun with your Astro site. - [create a new project with an official example](create-a-new-project-with-an-official-example.md): bun create astro@latest --template - [create a new project based on a GitHub repository’s main branch](create-a-new-project-based-on-a-github-repositorys-main-branch.md): bun create astro@latest --template / - [Call endpoints from the server](call-endpoints-from-the-server.md): Learn how to call endpoints from the server in Astro. - [Verify a Captcha](verify-a-captcha.md): Learn how to create an API route and fetch it from the client. - [Customize file names in the build output](customize-file-names-in-the-build-output.md): Learn how to change the default naming pattern for your built assets like JavaScript, CSS, and images in Astro using ... - [Build your Astro site with Docker](build-your-astro-site-with-docker.md): Learn how to build your Astro site using Docker. - [By copying only the package.json and package-lock.json here, we ensure that the following `-deps` steps are independent of the source code.](by-copying-only-the-packagejson-and-package-lockjson-here-we-ensure-that-the-fol.md) - [Therefore, the `-deps` steps will be skipped if only the source code changes.](therefore-the-deps-steps-will-be-skipped-if-only-the-source-code-changes.md): COPY package.json package-lock.json ./ - [Dynamically import images](dynamically-import-images.md): Learn how to dynamically import images using Vite's import.meta.glob function. - [Add icons to external links](add-icons-to-external-links.md): Learn how to install a rehype plugin to add icons to external links in your Markdown files. - [Add i18n features](add-i18n-features.md): Use dynamic routing and content collections to add internationalization support to your Astro site. - [Create a dev toolbar app](create-a-dev-toolbar-app.md): Learn how to create a dev toolbar app for your site. - [Add last modified time](add-last-modified-time.md): Build a remark plugin to add the last modified time to your Markdown and MDX. - [Add reading time](add-reading-time.md): Build a remark plugin to add reading time to your Markdown or MDX files. - [Add an RSS feed](add-an-rss-feed.md): Add an RSS feed to your Astro site to let users subscribe to your content. - [Share state between Astro components](share-state-between-astro-components.md): Learn how to share state across Astro components with Nano Stores. - [Share state between islands](share-state-between-islands.md): Learn how to share state across framework components with Nano Stores. - [Using streaming to improve page performance](using-streaming-to-improve-page-performance.md): Learn how to use streaming to improve page performance. - [Style rendered Markdown with Tailwind Typography](style-rendered-markdown-with-tailwind-typography.md): Learn how to use @tailwind/typography to style your rendered Markdown. - [Astro Adapter API](astro-adapter-api.md): Astro is designed to make it easy to deploy to any cloud provider for on-demand rendering, also known as server-side ... - [Astro render context](astro-render-context.md): When rendering a page, Astro provides a runtime API specific to the current render. This includes useful information ... - [Template expressions reference](template-expressions-reference.md): Astro component syntax is a superset of HTML. The syntax was designed to feel familiar to anyone with experience writ... - [CLI Commands](cli-commands.md): You can use the Command-Line Interface (CLI) provided by Astro to develop, build, and preview your project from a ter... - [Configuration Reference](configuration-reference.md): The following reference covers all supported configuration options in Astro. To learn more about configuring Astro, r... - [Astro Container API (experimental)](astro-container-api-experimental.md): **Added in:**`astro@4.9.0` - [Astro Content Loader API](astro-content-loader-api.md): Astro’s Content Loader API allows you to load your data from any source, local or remote, and interact with Astro’s c... - [Dev Toolbar App API](dev-toolbar-app-api.md): The Astro Dev Toolbar App API allows you to create [Astro Integrations](/en/reference/integrations-reference/) that a... - [Template directives reference](template-directives-reference.md): **Template directives** are a special kind of HTML attribute available inside of any Astro component template (`.astr... - [Error reference](error-reference.md): The following reference is a complete list of the errors you may encounter while using Astro. For additional assistan... - [Action unexpected called from the server.](action-unexpected-called-from-the-server.md): **ActionCalledFromServerError**: Action called from a server page or endpoint without using`Astro.callAction()`. Thi... - [Action not found.](action-not-found.md): **ActionNotFoundError**: The server received a request for an action named`ACTION_NAME`but could not find a match. ... - [An invalid Action query string was passed by a form.](an-invalid-action-query-string-was-passed-by-a-form.md): Deprecated - [Can't load the Astro actions.](cant-load-the-astro-actions.md): **ActionsCantBeLoaded**: An unknown error was thrown while loading the Astro actions file. - [Action handler returned invalid data.](action-handler-returned-invalid-data.md): **ActionsReturnedInvalidDataError**: Action handler returned invalid data. Handlers should return serializable data t... - [An invalid Action query string was passed by a form.](an-invalid-action-query-string-was-passed-by-a-form-2.md): Deprecated - [Actions must be used with server output.](actions-must-be-used-with-server-output.md): **ActionsWithoutServerOutputError**: A server is required to create callable backend functions. To deploy routes to a... - [Adapter does not support server output.](adapter-does-not-support-server-output.md): **AdapterSupportOutputMismatch**: The`ADAPTER_NAME`adapter is configured to output a static website, but the projec... - [Astro.glob() did not match any files.](astroglob-did-not-match-any-files.md): **AstroGlobNoMatch**:`Astro.glob(GLOB_STR)`did not return any matching files. - [Astro.glob() used outside of an Astro file.](astroglob-used-outside-of-an-astro-file.md): **AstroGlobUsedOutside**:`Astro.glob(GLOB_STR)`can only be used in`.astro`files.`import.meta.glob(GLOB_STR)`can... - [Astro.response.headers must not be reassigned.](astroresponseheaders-must-not-be-reassigned.md): **AstroResponseHeadersReassigned**: Individual headers can be added to and removed from`Astro.response.headers`, but... - [Cannot determine weight and style from font file.](cannot-determine-weight-and-style-from-font-file.md): An error occurred while determining the weight and style from the local font file. - [Cannot extract the font type from the given URL.](cannot-extract-the-font-type-from-the-given-url.md): An error occurred while trying to extract the font type from the given URL. - [Cannot fetch the given font file.](cannot-fetch-the-given-font-file.md): An error occurred while fetching font file from the given URL. - [Cannot load font provider](cannot-load-font-provider.md): Astro is unable to load the given font provider. Open an issue on the corresponding provider’s repository. - [Cannot optimize SVG](cannot-optimize-svg.md): An error occurred while optimizing the SVG file with SVGO. - [Astro can't render the route.](astro-cant-render-the-route.md): **CantRenderPage**: Astro cannot find any content to render for this route. There is no file or redirect associated w... - [Cannot use the astro:config module without enabling the experimental feature.](cannot-use-the-astroconfig-module-without-enabling-the-experimental-feature.md): Deprecated - [Astro.clientAddress is not available in current adapter.](astroclientaddress-is-not-available-in-current-adapter.md): **ClientAddressNotAvailable**:`Astro.clientAddress`is not available in the`ADAPTER_NAME`adapter. File an issue wi... - [Collection does not exist](collection-does-not-exist.md): Deprecated - [Legacy configuration detected.](legacy-configuration-detected.md): **ConfigLegacyKey**: Legacy configuration detected:`LEGACY_CONFIG_KEY`. - [Specified configuration file not found.](specified-configuration-file-not-found.md): **ConfigNotFound**: Unable to resolve`--config "CONFIG_FILE"`. Does the file exist? - [Collection contains entries of a different type.](collection-contains-entries-of-a-different-type.md): **ContentCollectionTypeMismatchError**: COLLECTION contains EXPECTED\_TYPE entries, but is configured as a ACTUAL\_TY... - [Content entry data does not match schema.](content-entry-data-does-not-match-schema.md): **Example error message:**\ - [Content entry is missing an ID](content-entry-is-missing-an-id.md): **Example error message:**\ - [Content loader returned an entry with an invalid id.](content-loader-returned-an-entry-with-an-invalid-id.md): **Example error message:**\ - [Content Schema should not contain slug.](content-schema-should-not-contain-slug.md): **ContentSchemaContainsSlugError**: A content collection schema should not contain`slug`since it is reserved for sl... - [Could not transform image.](could-not-transform-image.md): **CouldNotTransformImage**: Could not transform image`IMAGE_PATH`. See the stack trace for more information. - [CSP feature isn't enabled](csp-feature-isnt-enabled.md): The`experimental.csp`configuration isn’t enabled. - [CSS Syntax Error.](css-syntax-error.md): **Example error messages:**\ - [Data collection entry failed to parse.](data-collection-entry-failed-to-parse.md): `COLLECTION_ENTRY_NAME`failed to parse. - [Duplicate content entry slug.](duplicate-content-entry-slug.md): `COLLECTION_NAME`contains multiple entries with the same slug:`SLUG`. Slugs must be unique. - [The endpoint did not return a Response.](the-endpoint-did-not-return-a-response.md): **EndpointDidNotReturnAResponse**: An endpoint must return either a`Response`, or a`Promise`that resolves with a`... - [Invalid Environment Variable](invalid-environment-variable.md): Deprecated - [Invalid Environment Variables](invalid-environment-variables.md): The following environment variables defined in`env.schema`are invalid. - [Unsupported astro:env getSecret](unsupported-astroenv-getsecret.md): Deprecated - [Expected src to be an image.](expected-src-to-be-an-image.md): **ExpectedImage**: Expected`src`property for`getImage`or``to be either an ESM imported image or a stri... - [Expected image options.](expected-image-options.md): **ExpectedImageOptions**: Expected getImage() parameter to be an object. Received`OPTIONS`. - [Expected image options, not an ESM-imported image.](expected-image-options-not-an-esm-imported-image.md): **ExpectedNotESMImage**: An ESM-imported image cannot be passed directly to`getImage()`. Instead, pass an object wit... - [Experimental fonts are not enabled](experimental-fonts-are-not-enabled.md): **ExperimentalFontsNotEnabled**: The Font component is used but experimental fonts have not been registered in the co... - [Failed to retrieve remote image dimensions](failed-to-retrieve-remote-image-dimensions.md): Failed to get the dimensions for`IMAGE_URL`. - [Astro couldn't find the correct page to render](astro-couldnt-find-the-correct-page-to-render.md): **FailedToFindPageMapSSR**: Astro couldn’t find the correct page to render, probably because it wasn’t correctly mapp... - [Could not import file.](could-not-import-file.md): **FailedToLoadModuleSSR**: Could not import`IMPORT_NAME`. - [Glob patterns are not supported in the file loader](glob-patterns-are-not-supported-in-the-file-loader.md): **FileGlobNotSupported**: Glob patterns are not supported in the`file`loader. Use the`glob`loader instead. - [File parser not found](file-parser-not-found.md): **FileParserNotFound**: No parser was found for ‘FILE\_NAME’. Pass a parser function (e.g.`parser: csv`) to the`fil... - [Font family not found](font-family-not-found.md): No data was found for the`cssVariable`passed to the``component. - [Forbidden rewrite to a static route.](forbidden-rewrite-to-a-static-route.md): **ForbiddenRewrite**: You tried to rewrite the on-demand route ‘FROM’ with the static route ‘TO’, when using the ‘ser... - [Failed to generate content types.](failed-to-generate-content-types.md): **GenerateContentTypesError**:`astro sync`command failed to generate content collection types: ERROR\_MESSAGE - [Invalid use of getDataEntryById or getEntryBySlug function.](invalid-use-of-getdataentrybyid-or-getentrybyslug-function.md): **GetEntryDeprecationError**: The`METHOD`function is deprecated and cannot be used to query the “COLLECTION” collec... - [Missing params property on getStaticPaths route.](missing-params-property-on-getstaticpaths-route.md): **GetStaticPathsExpectedParams**: Missing or empty required`params`property on`getStaticPaths`route. - [Invalid value for getStaticPaths route parameter.](invalid-value-for-getstaticpaths-route-parameter.md): **GetStaticPathsInvalidRouteParam**: Invalid getStaticPaths route parameter for`KEY`. Expected undefined, a string o... - [getStaticPaths RSS helper is not available anymore.](getstaticpaths-rss-helper-is-not-available-anymore.md): Deprecated - [getStaticPaths() function required for dynamic routes.](getstaticpaths-function-required-for-dynamic-routes.md): **GetStaticPathsRequired**:`getStaticPaths()`function is required for dynamic routes. Make sure that you`export`a... - [The path doesn't contain any locale](the-path-doesnt-contain-any-locale.md): **i18nNoLocaleFoundInPath**: You tried to use an i18n utility on a path that doesn’t contain any locale. You can use ... - [i18n Not Enabled](i18n-not-enabled.md): **i18nNotEnabled**: The`astro:i18n`module can not be used without enabling i18n in your Astro config. - [Image missing required "alt" property.](image-missing-required-alt-property.md): **ImageMissingAlt**: Image missing “alt” property. “alt” text is required to describe important images on the page. - [Image not found.](image-not-found.md): **ImageNotFound**: Could not find requested image`IMAGE_PATH`. Does it exist? - [Cannot set both densities and widths](cannot-set-both-densities-and-widths.md): **IncompatibleDescriptorOptions**: Only one of`densities`or`widths`can be specified. In most cases, you’ll probab... - [You can't use the current function with the current strategy](you-cant-use-the-current-function-with-the-current-strategy.md): **IncorrectStrategyForI18n**: The function`FUNCTION_NAME`can only be used when the`i18n.routing.strategy`is set t... - [Invalid component arguments.](invalid-component-arguments.md): **Example error messages:**\ - [Content entry data does not match schema.](content-entry-data-does-not-match-schema-2.md): **Example error message:**\ - [Content entry frontmatter does not match schema.](content-entry-frontmatter-does-not-match-schema.md): **Example error message:**\ - [Invalid content entry slug.](invalid-content-entry-slug.md): `COLLECTION_NAME`→`ENTRY_ID`has an invalid slug.`slug`must be a string. - [Invalid dynamic route.](invalid-dynamic-route.md): **InvalidDynamicRoute**: The INVALID\_PARAM param for route ROUTE is invalid. Received **RECEIVED**. - [Invalid frontmatter injection.](invalid-frontmatter-injection.md): **InvalidFrontmatterInjectionError**: A remark or rehype plugin attempted to inject invalid frontmatter. Ensure “astr... - [Invalid value returned by a getStaticPaths path.](invalid-value-returned-by-a-getstaticpaths-path.md): **InvalidGetStaticPathParam**: Invalid params given to`getStaticPaths`path. Expected an`object`, got`PARAM_TYPE` - [Invalid entry inside getStaticPath's return value](invalid-entry-inside-getstaticpaths-return-value.md): **InvalidGetStaticPathsEntry**: Invalid entry returned by getStaticPaths. Expected an object, got`ENTRY_TYPE` - [Invalid value returned by getStaticPaths.](invalid-value-returned-by-getstaticpaths.md): **InvalidGetStaticPathsReturn**: Invalid type returned by`getStaticPaths`. Expected an`array`, got`RETURN_TYPE` - [Invalid glob pattern.](invalid-glob-pattern.md): **InvalidGlob**: Invalid glob pattern:`GLOB_PATTERN`. Glob patterns must start with ’./’, ‘../’ or ’/‘. - [Error while loading image service.](error-while-loading-image-service.md): **InvalidImageService**: There was an error loading the configured image service. Please see the stack trace for more... - [Invalid prerender export.](invalid-prerender-export.md): **Example error messages:**\ - [You attempted to rewrite a 404 inside a static page, and this isn't allowed.](you-attempted-to-rewrite-a-404-inside-a-static-page-and-this-isnt-allowed.md): Deprecated - [Error in live content config.](error-in-live-content-config.md): **Example error message:**\ - [Local images must be imported.](local-images-must-be-imported.md): **LocalImageUsedWrongly**:`Image`’s and`getImage`’s`src`parameter must be an imported image or an URL, it cannot ... - [Value assigned to locals is not accepted.](value-assigned-to-locals-is-not-accepted.md): **LocalsNotAnObject**:`locals`can only be assigned to an object. Other values like numbers, strings, etc. are not a... - [Astro.locals is not serializable](astrolocals-is-not-serializable.md): Deprecated - [locals must not be reassigned.](locals-must-not-be-reassigned.md): **LocalsReassigned**:`locals`can not be assigned directly. - [Content collection frontmatter invalid.](content-collection-frontmatter-invalid.md): Deprecated - [Failed to parse Markdown frontmatter.](failed-to-parse-markdown-frontmatter.md): **Example error messages:**\ - [Image not found.](image-not-found-2.md): Deprecated - [MDX integration missing.](mdx-integration-missing.md): **MdxIntegrationMissingError**: Unable to render FILE. Ensure that the`@astrojs/mdx`integration is installed. - [Can't load the middleware.](cant-load-the-middleware.md): **MiddlewareCantBeLoaded**: An unknown error was thrown while loading your middleware. - [The middleware didn't return a Response.](the-middleware-didnt-return-a-response.md): **MiddlewareNoDataOrNextCalled**: Make sure your middleware returns a`Response`object, either directly or by return... - [The middleware returned something that is not a Response object.](the-middleware-returned-something-that-is-not-a-response-object.md): **MiddlewareNotAResponse**: Any data returned from middleware must be a valid`Response`object. - [Missing image dimensions](missing-image-dimensions.md): Missing width and height attributes for`IMAGE_URL`. When using remote images, both dimensions are required in order ... - [Index page not found.](index-page-not-found.md): **MissingIndexForInternationalization**: Could not find index page. A root index page is required in order to create ... - [The provided locale does not exist.](the-provided-locale-does-not-exist.md): **MissingLocale**: The locale/path`LOCALE`does not exist in the configured`i18n.locales`. - [Missing value for client:media directive.](missing-value-for-clientmedia-directive.md): **MissingMediaQueryDirective**: Media query not provided for`client:media`directive. A media query similar to`clie... - [Enabled manual internationalization routing without having a middleware.](enabled-manual-internationalization-routing-without-having-a-middleware.md): **MissingMiddlewareForInternationalization**: Your configuration setting`i18n.routing: 'manual'`requires you to pro... - [Could not find Sharp.](could-not-find-sharp.md): **MissingSharp**: Could not find Sharp. Please install Sharp (`sharp`) manually into your project or migrate to anoth... - [Content and data cannot be in same collection.](content-and-data-cannot-be-in-same-collection.md): **MixedContentDataCollectionError**: **COLLECTION\_NAME** contains a mix of content and data entries. All entries mus... - [Cannot use Server-side Rendering without an adapter.](cannot-use-server-side-rendering-without-an-adapter.md): **NoAdapterInstalled**: Cannot use server-rendered pages without an adapter. Please install and configure the appropr... - [Cannot use Server Islands without an adapter.](cannot-use-server-islands-without-an-adapter.md): **NoAdapterInstalledServerIslands**: Cannot use server islands without an adapter. Please install and configure the a... - [No client entrypoint specified in renderer.](no-client-entrypoint-specified-in-renderer.md): **NoClientEntrypoint**:`COMPONENT_NAME`component has a`client:CLIENT_DIRECTIVE`directive, but no client entrypoin... - [Missing hint on client:only directive.](missing-hint-on-clientonly-directive.md): **NoClientOnlyHint**: Unable to render`COMPONENT_NAME`. When using the`client:only`hydration strategy, Astro needs... - [Could not process image metadata.](could-not-process-image-metadata.md): Could not process image metadata for`IMAGE_PATH`. - [No import found for component.](no-import-found-for-component.md): **NoMatchingImport**: Could not render`COMPONENT_NAME`. No matching import has been found for`COMPONENT_NAME`. - [No matching renderer found.](no-matching-renderer-found.md): Unable to render`COMPONENT_NAME`. There are`RENDERER_COUNT`renderer(s) configured in your`astro.config.mjs`file,... - [No static path found for requested path.](no-static-path-found-for-requested-path.md): **NoMatchingStaticPathFound**: A`getStaticPaths()`route pattern was matched, but no matching static path was found ... - [Prerendered routes aren't supported when internationalization domains are enabled.](prerendered-routes-arent-supported-when-internationalization-domains-are-enabled.md): **NoPrerenderedRoutesWithDomains**: Static pages aren’t yet supported with multiple domains. To enable this feature, ... - [Invalid type returned by Astro page.](invalid-type-returned-by-astro-page.md): Route returned a`RETURNED_VALUE`. Only a Response can be returned from Astro files. - [Page number param not found.](page-number-param-not-found.md): **PageNumberParamNotFound**: \[paginate()] page number param`PARAM_NAME`not found in your filepath. - [Astro.clientAddress cannot be used inside prerendered routes.](astroclientaddress-cannot-be-used-inside-prerendered-routes.md): **PrerenderClientAddressNotAvailable**:`Astro.clientAddress`cannot be used inside prerendered route NAME - [Prerendered dynamic endpoint has path collision.](prerendered-dynamic-endpoint-has-path-collision.md): **PrerenderDynamicEndpointPathCollide**: Could not render`PATHNAME`with an`undefined`param as the generated path ... - [Prerendered route generates the same path as another route.](prerendered-route-generates-the-same-path-as-another-route.md): **PrerenderRouteConflict**: Could not render`PATHNAME`from route`THIS_ROUTE`as it conflicts with higher priority ... - [A redirect must be given a location with the Location header.](a-redirect-must-be-given-a-location-with-the-location-header.md): A redirect must be given a location with the`Location`header. - [Attempted to render an undefined content collection entry.](attempted-to-render-an-undefined-content-collection-entry.md): Astro tried to render a content collection entry that was undefined. This can happen if you try to render an entry th... - [Invalid slot name.](invalid-slot-name.md): **ReservedSlotName**: Unable to create a slot named`SLOT_NAME`.`SLOT_NAME`is a reserved slot name. Please update t... - [Unable to set response.](unable-to-set-response.md): **ResponseSentError**: The response has already been sent to the browser and cannot be altered. - [Astro couldn't find the route to rewrite, or if was found but it emitted an error during the rendering phase.](astro-couldnt-find-the-route-to-rewrite-or-if-was-found-but-it-emitted-an-error-.md): Deprecated - [Cannot use Astro.rewrite after the request body has been read](cannot-use-astrorewrite-after-the-request-body-has-been-read.md): **RewriteWithBodyUsed**: Astro.rewrite() cannot be used if the request body has already been read. If you need to rea... - [Route not found.](route-not-found.md): **RouteNotFound**: Astro could not find a route that matches the one you requested. - [Module is only available server-side](module-is-only-available-server-side.md): **ServerOnlyModule**: The “NAME” module is only available server-side. - [Session storage was enabled but not configured.](session-storage-was-enabled-but-not-configured.md): Deprecated - [Session flag not set](session-flag-not-set.md): Deprecated - [Session storage could not be initialized.](session-storage-could-not-be-initialized.md): Error when initializing session storage with driver`DRIVER`.`ERROR` - [Session data could not be saved.](session-data-could-not-be-saved.md): Error when saving session data with driver`DRIVER`.`ERROR` - [Sessions cannot be used with an adapter that doesn't support server output.](sessions-cannot-be-used-with-an-adapter-that-doesnt-support-server-output.md): Deprecated - [Astro.clientAddress is not available in prerendered pages.](astroclientaddress-is-not-available-in-prerendered-pages.md): **StaticClientAddressNotAvailable**:`Astro.clientAddress`is only available on pages that are server-rendered. - [Astro.redirect is not available in static mode.](astroredirect-is-not-available-in-static-mode.md): Deprecated - [Unhandled rejection](unhandled-rejection.md): **UnhandledRejection**: Astro detected an unhandled rejection. Here’s the stack trace:\ - [Unknown CLI Error.](unknown-cli-error.md): Astro encountered an unknown error while starting one of its CLI commands. The error message should contain more info... - [Unknown compiler error.](unknown-compiler-error.md): Unknown compiler error. - [Unknown configuration error.](unknown-configuration-error.md): Astro encountered an unknown error loading your Astro configuration file. This is often caused by a syntax error in y... - [Unknown Content Collection Error.](unknown-content-collection-error.md): Astro encountered an unknown error loading your content collections. This can be caused by certain errors inside your... - [Unknown CSS Error.](unknown-css-error.md): Astro encountered an unknown error while parsing your CSS. Oftentimes, this is caused by a syntax error and the error... - [An unknown error occurred while reading or writing files to disk.](an-unknown-error-occurred-while-reading-or-writing-files-to-disk.md): An unknown error occurred while reading or writing files to disk. It can be caused by many things, eg. missing permis... - [Unknown Markdown Error.](unknown-markdown-error.md): Astro encountered an unknown error while parsing your Markdown. Oftentimes, this is caused by a syntax error and the ... - [Unknown Vite Error.](unknown-vite-error.md): Vite encountered an unknown error while rendering your project. We unfortunately do not know what happened (or we wou... - [Unsupported transform in content config.](unsupported-transform-in-content-config.md): **UnsupportedConfigTransformError**:`transform()`functions in your content config must return valid JSON, or data t... - [Unsupported or malformed URL.](unsupported-or-malformed-url.md): **UnsupportedExternalRedirect**: The destination URL in the external redirect from “FROM” to “TO” is unsupported. - [Unsupported image conversion](unsupported-image-conversion.md): **UnsupportedImageConversion**: Converting between vector (such as SVGs) and raster (such as PNGs and JPEGs) images i... - [Unsupported image format](unsupported-image-format.md): **UnsupportedImageFormat**: Received unsupported format`FORMAT`from`IMAGE_PATH`. Currently only SUPPORTED\_FORMATS... - [Configuring experimental flags](configuring-experimental-flags.md): Experimental features are available only after enabling a flag in the Astro configuration file. - [Experimental Chrome DevTools workspace](experimental-chrome-devtools-workspace.md): **Type:**`boolean`\ - [Experimental client prerendering](experimental-client-prerendering.md): **Type:**`boolean`\ - [Experimental Intellisense for content collections](experimental-intellisense-for-content-collections.md): **Type:**`boolean`\ - [Experimental Content Security Policy (CSP)](experimental-content-security-policy-csp.md): **Type:**`boolean | object`\ - [Experimental prerender conflict error](experimental-prerender-conflict-error.md): **Type:**`boolean`\ - [Experimental fonts API](experimental-fonts-api.md): **Type:**`FontFamily[]` - [Experimental Markdown heading ID compatibility](experimental-markdown-heading-id-compatibility.md): **Type:**`boolean`\ - [Experimental live content collections](experimental-live-content-collections.md): **Type:**`boolean`\ - [Experimental preserve scripts order](experimental-preserve-scripts-order.md): **Type:**`boolean`\ - [Experimental private meta environment variables inlining](experimental-private-meta-environment-variables-inlining.md): **Type:**`boolean`\ - [Experimental SVG optimization](experimental-svg-optimization.md): **Type:**`boolean | object`\ - [Image Service API](image-service-api.md): `astro:assets`was designed to make it easy for any image optimization service to build a service on top of Astro. - [Astro Integration API](astro-integration-api.md): **Astro Integrations** add new functionality and behaviors for your project with only a few lines of code. - [Legacy flags](legacy-flags.md): To help some users migrate between versions of Astro, we occasionally introduce`legacy`flags. - [Actions API Reference](actions-api-reference.md): **Added in:**`astro@4.15.0` - [Image and Assets API Reference](image-and-assets-api-reference.md): **Added in:**`astro@3.0.0` - [Config imports API Reference](config-imports-api-reference.md): **Added in:**`astro@5.7.0` - [Content Collections API Reference](content-collections-api-reference.md): **Added in:**`astro@2.0.0` - [Environment Variables API Reference](environment-variables-api-reference.md): **Added in:**`astro@5.0.0` - [Internationalization API Reference](internationalization-api-reference.md): **Added in:**`astro@3.5.0` - [Middleware API Reference](middleware-api-reference.md): **Added in:**`astro@2.6.0` - [View Transitions Router API Reference](view-transitions-router-api-reference.md): **Added in:**`astro@3.0.0` - [Zod API Reference](zod-api-reference.md): [Zod](https://github.com/colinhacks/zod) is a TypeScript-based schema declaration and validation library. This allows... - [Programmatic Astro API (experimental)](programmatic-astro-api-experimental.md): If you need more control when running Astro, the`"astro"`package exports APIs to programmatically run the CLI comma... - [Publish to npm](publish-to-npm.md): Learn how to publish Astro components to npm - [Initialize the Astro Component template in a new directory](initialize-the-astro-component-template-in-a-new-directory.md): npm create astro@latest my-new-component-directory -- --template component - [yarn](yarn.md): yarn create astro my-new-component-directory --template component - [pnpm](pnpm.md): pnpm create astro@latest my-new-component-directory -- --template component - [pnpm](pnpm-2.md): pnpm create astro@latest demo -- --template minimal - [Routing Reference](routing-reference.md): There is no separate routing configuration in Astro. - [Build your first Astro Blog](build-your-first-astro-blog.md): Learn the basics of Astro with a project-based tutorial. All the background knowledge you need to get started! - [About this Tutorial](about-this-tutorial.md): How to get started with the "Build your first Astro blog" tutorial. - [Check in: Unit 1 - Setup](check-in-unit-1-setup.md): Tutorial: Build your first Astro blog — - [Prepare your dev environment](prepare-your-dev-environment.md): Tutorial: Build your first Astro blog — - [Create your first Astro project](create-your-first-astro-project.md): Tutorial: Build your first Astro blog — - [Write your first line of Astro](write-your-first-line-of-astro.md): Tutorial: Build your first Astro blog — - [Store your repository online](store-your-repository-online.md): Tutorial: Build your first Astro blog — - [Deploy your site to the web](deploy-your-site-to-the-web.md): Tutorial: Build your first Astro blog — - [Check in: Unit 2 - Pages](check-in-unit-2-pages.md): Tutorial: Build your first Astro blog — - [Create your first Astro page](create-your-first-astro-page.md): Tutorial: Build your first Astro blog — - [Write your first Markdown blog post](write-your-first-markdown-blog-post.md): Tutorial: Build your first Astro blog — - [Add dynamic content about you](add-dynamic-content-about-you.md): Tutorial: Build your first Astro blog — - [Style your About page](style-your-about-page.md): Tutorial: Build your first Astro blog — - [Add site-wide styling](add-site-wide-styling.md): Tutorial: Build your first Astro blog — - [Check in: Unit 3 - Components](check-in-unit-3-components.md): Tutorial: Build your first Astro blog — - [Make a reusable Navigation component](make-a-reusable-navigation-component.md): Tutorial: Build your first Astro blog — - [Create a social media footer](create-a-social-media-footer.md): Tutorial: Build your first Astro blog — - [Build it yourself - Header](build-it-yourself-header.md): Tutorial: Build your first Astro blog — - [Send your first script to the browser](send-your-first-script-to-the-browser.md): Tutorial: Build your first Astro blog — - [Check in: Unit 4 - Layouts](check-in-unit-4-layouts.md): Tutorial: Build your first Astro blog — - [Build your first layout](build-your-first-layout.md): Tutorial: Build your first Astro blog — - [Create and pass data to a custom blog layout](create-and-pass-data-to-a-custom-blog-layout.md): Tutorial: Build your first Astro blog — - [Combine layouts to get the best of both worlds](combine-layouts-to-get-the-best-of-both-worlds.md): Tutorial: Build your first Astro blog — - [Check in: Unit 5 - Astro API](check-in-unit-5-astro-api.md): Tutorial: Build your first Astro blog — - [Create a blog post archive](create-a-blog-post-archive.md): Tutorial: Build your first Astro blog — - [Generate tag pages](generate-tag-pages.md): Tutorial: Build your first Astro blog — - [Build a tag index page](build-a-tag-index-page.md): Tutorial: Build your first Astro blog — - [Add an RSS feed](add-an-rss-feed-2.md): Tutorial: Build your first Astro blog — - [Check in: Unit 6 - Astro Islands](check-in-unit-6-astro-islands.md): Tutorial: Build your first Astro blog — - [Build your first Astro island](build-your-first-astro-island.md): Tutorial: Build your first Astro blog — - [Back on dry land. Take your blog from day to night, no island required!](back-on-dry-land-take-your-blog-from-day-to-night-no-island-required.md): Tutorial: Build your first Astro blog — - [Congratulations!](congratulations.md): Tutorial: Build your first Astro blog — - [Optional: Make a content collection](optional-make-a-content-collection.md): Tutorial: Build your first Astro blog — - [Upgrade Astro](upgrade-astro.md): Learn how to upgrade Astro