# Use a CMS with Astro

> How to use a CMS to add content to Astro

**Ready to connect a Headless CMS to your Astro project?** Follow one of our guides to integrate a CMS.

Tip

Find [community-maintained integrations](https://astro.build/integrations/?search=cms) for connecting a CMS to your project in our integrations directory.

## CMS Guides

[Section titled “CMS Guides”](#cms-guides)

Note that many of these pages are **stubs**: they’re collections of resources waiting for your contribution!

* ![](/logos/apostrophecms.svg)

  ### [ApostropheCMS](/en/guides/cms/apostrophecms/)

* ![](/logos/builderio.svg)

  ### [Builder.io](/en/guides/cms/builderio/)

* ![](/logos/buttercms.svg)

  ### [ButterCMS](/en/guides/cms/buttercms/)

* ![](/logos/caisy.svg)

  ### [Caisy](/en/guides/cms/caisy/)

* ![](/logos/cloudcannon.svg)

  ### [CloudCannon](/en/guides/cms/cloudcannon/)

* ![](/logos/contentful.svg)

  ### [Contentful](/en/guides/cms/contentful/)

* ![](/logos/cosmic.svg)

  ### [Cosmic](/en/guides/cms/cosmic/)

* ![](/logos/craft-cms.svg)

  ### [Craft CMS](/en/guides/cms/craft-cms/)

* ![](/logos/craft-cross-cms.svg)

  ### [Craft Cross CMS](/en/guides/cms/craft-cross-cms/)

* ![](/logos/crystallize.svg)

  ### [Crystallize](/en/guides/cms/crystallize/)

* ![](/logos/datocms.svg)

  ### [DatoCMS](/en/guides/cms/datocms/)

* ![](/logos/decap-cms.svg)

  ### [Decap CMS](/en/guides/cms/decap-cms/)

* ![](/logos/directus.svg)

  ### [Directus](/en/guides/cms/directus/)

* ![](/logos/drupal.svg)

  ### [Drupal](/en/guides/cms/drupal/)

* ![](/logos/flotiq.svg)

  ### [Flotiq](/en/guides/cms/flotiq/)

* ![](/logos/frontmatter-cms.svg)

  ### [Front Matter CMS](/en/guides/cms/frontmatter-cms/)

* ![](/logos/ghost.png)

  ### [Ghost](/en/guides/cms/ghost/)

* ![](/logos/gitcms.svg)

  ### [GitCMS](/en/guides/cms/gitcms/)

* ![](/logos/hashnode.png)

  ### [Hashnode](/en/guides/cms/hashnode/)

* ![](/logos/hygraph.svg)

  ### [Hygraph](/en/guides/cms/hygraph/)

* ![](/logos/jekyllpad.svg)

  ### [JekyllPad](/en/guides/cms/jekyllpad/)

* ![](/logos/keystatic.svg)

  ### [Keystatic](/en/guides/cms/keystatic/)

* ![](/logos/keystonejs.svg)

  ### [KeystoneJS](/en/guides/cms/keystonejs/)

* ![](/logos/kontent-ai.svg)

  ### [Kontent.ai](/en/guides/cms/kontent-ai/)

* ![](/logos/microcms.svg)

  ### [microCMS](/en/guides/cms/microcms/)

* ![](/logos/optimizely.svg)

  ### [Optimizely CMS](/en/guides/cms/optimizely/)

* ![](/logos/payload.svg)

  ### [Payload CMS](/en/guides/cms/payload/)

* ![](/logos/preprcms.svg)

  ### [Prepr CMS](/en/guides/cms/preprcms/)

* ![](/logos/prismic.svg)

  ### [Prismic](/en/guides/cms/prismic/)

* ![](/logos/sanity.svg)

  ### [Sanity](/en/guides/cms/sanity/)

* ![](/logos/sitecore.svg)

  ### [Sitecore XM](/en/guides/cms/sitecore/)

* ![](/logos/sitepins.svg)

  ### [Sitepins](/en/guides/cms/sitepins/)

* ![](/logos/spinal.svg)

  ### [Spinal](/en/guides/cms/spinal/)

* ![](/logos/statamic.svg)

  ### [Statamic](/en/guides/cms/statamic/)

* ![](/logos/storyblok.svg)

  ### [Storyblok](/en/guides/cms/storyblok/)

* ![](/logos/strapi.svg)

  ### [Strapi](/en/guides/cms/strapi/)

* ![](/logos/studiocms.svg)

  ### [StudioCMS](/en/guides/cms/studiocms/)

* ![](/logos/tina-cms.svg)

  ### [Tina CMS](/en/guides/cms/tina-cms/)

* ![](/logos/umbraco.svg)

  ### [Umbraco](/en/guides/cms/umbraco/)

* ![](/logos/wordpress.svg)

  ### [Wordpress](/en/guides/cms/wordpress/)

## Why use a CMS?

[Section titled “Why use a CMS?”](#why-use-a-cms)

A Content Management System lets you write content and manage assets outside of your Astro project.

This unlocks new features for working with content. Most CMSes give you a visual content editor, the ability to specify standard types of content, and a way to collaborate with others.

A CMS can be useful for content that follows a particular structure, often giving you a dashboard-like experience and WYSIWYG editing tools. You might use a CMS to write blog posts using a CMS’s rich text editor instead of Markdown files. Or you might use a CMS to maintain product listings for an eCommerce shop, making certain fields required to avoid incomplete listings.

Your Astro project can then fetch your content from your CMS and display it, wherever and however you want on your site.

## Which CMSes work well with Astro?

[Section titled “Which CMSes work well with Astro?”](#which-cmses-work-well-with-astro)

Because Astro takes care of the *presentation* of your content, you’ll want to choose a *headless* CMS, like those in the list above. This means that the CMS helps you write your content, but doesn’t generate a site that displays it. Instead, you fetch the content data and use in your Astro project.

Some headless CMSes, like Storyblok, provide an Astro [integration](/en/guides/integrations-guide/) that helps fetch the content specifically for an Astro site. Others provide a JavaScript SDK, a library that you install and use to fetch your remote content.

Explore a [list of over 100 headless content management systems](https://jamstack.org/headless-cms/) External where you can filter by type (e.g. Git-based, API driven) and license (open-source or closed-source).

## Can I use Astro without a CMS?

[Section titled “Can I use Astro without a CMS?”](#can-i-use-astro-without-a-cms)

Yes! Astro provides built-in support for [Markdown](/en/guides/markdown-content/).