studiocms is a free, open source content management systems (cms) project written in TypeScript and released under MIT. It has 833 GitHub stars, 59 forks and 20 open issues, and was last pushed 23 hours ago. On this registry it ranks #36 of 47 tracked projects in Content Management Systems (CMS), with 5 head-to-head comparisons available. It gained 1 stars over the last 3 tracked days.

What is studiocms?

StudioCMS is an SSR (server-side-rendered) headless content management system built natively for the Astro ecosystem, aimed at Astro developers and teams who want to author and manage content for a server-rendered Astro site without leaving Astro's own tooling.

What it is

StudioCMS is a TypeScript project, MIT licensed, developed in the withstudiocms/studiocms repository and published to npm as the studiocms package. It is distributed as a set of Astro integrations rather than as a standalone application: the core integration is studiocms, supported by @studiocms/devapps, with additional capability supplied through plugins such as @studiocms/oauth for authentication, @studiocms/md, @studiocms/mdx, @studiocms/markdoc, @studiocms/html and @studiocms/wysiwyg as renderers, @studiocms/cloudinary-image-service for images and @studiocms/blog as a front-end package. Shared internals live in the @withstudiocms namespace, including @withstudiocms/auth-kit. Project home is studiocms.dev and documentation is hosted at docs.studiocms.dev.

The concrete problem it solves is integration mismatch. An Astro site that needs editable content has traditionally been paired with a general-purpose headless CMS that lives outside the Astro runtime and must be wired in after the fact. StudioCMS replaces that arrangement with an Astro-native CMS that renders on the server, so content management and site rendering share one framework and one deployment. Persistence runs through Kysely, with support for libSQL, MySQL and PostgreSQL, so the content store is a database the operator already controls.

Key capabilities

  • SSR Astro integration shipped as the studiocms package on npm, installed alongside the Astro project rather than run as a separate service.
  • Pluggable content renderers: @studiocms/md, @studiocms/mdx, @studiocms/markdoc, @studiocms/html and @studiocms/wysiwyg, so authoring format is a per-project choice.
  • Authentication through the @studiocms/oauth plugin category, with shared auth internals in @withstudiocms/auth-kit.
  • Database access via Kysely, with libSQL, MySQL and PostgreSQL listed as supported engines.
  • Image handling through @studiocms/cloudinary-image-service.
  • Front-end content delivery through the @studiocms/blog plugin, plus development helpers in @studiocms/devapps.
  • Project tooling that includes Biome for formatting, Crowdin for localisation, a continuous release channel on pkg.pr.new, and CI test workflows with a published Allure test report at tests.studiocms.dev.

Who uses it and how

  • Astro developers building server-rendered sites who want content editing inside the same framework, installed as an integration in the existing project.
  • Teams that need more than one authoring format, mixing a Markdown or MDX renderer for docs with the WYSIWYG renderer for editorial pages.
  • Projects that require OAuth-based sign-in for editors, wiring @studiocms/oauth and extending authentication through @withstudiocms/auth-kit.
  • Self-hosting teams that want the content store in a database they operate, choosing libSQL, MySQL or PostgreSQL through the Kysely layer.
  • Contributors and translators: the repository is tagged hacktoberfest, localisation runs through the StudioCMS Crowdin project, and unreleased builds are available through pkg.pr.new.

Getting started

Install the studiocms package from npm as an Astro integration in an existing Astro project, then follow the setup steps in the StudioCMS documentation at docs.studiocms.dev.

How it compares

No list of paid products that StudioCMS replaces is provided in the facts, and no comparable CMS is named there either. Within this registry, it stands alone: it is the Astro-specific SSR headless CMS entry, distinguished by being built for the Astro ecosystem rather than adapted to it.

When to use it — and when not to

A self-hoster must operate a supported database (libSQL, MySQL or PostgreSQL) and configure the Kysely layer, and must set up authentication through the OAuth plugin before editors can sign in — no hosted option is named in the facts, so the homepage and docs are the only documented starting points. It is a poor fit for anyone who wants a fully managed content backend with nothing to run, or who is not building on Astro. One honest weakness is documentation shape: the repository README excerpt is largely a package and test-coverage table, so the actual installation and configuration instructions live in the external docs site rather than in the repository itself.

project readme (upstream, from github) — read inline

StudioCMS

Readme's Banner

NPM Version Formatted with Biome GitHub Actions Workflow Status (ci-testing.yml) Allure Test Report Crowdin pkg.pr.new Built with Astro

StudioCMS is an SSR Headless CMS built for the Astro Ecosystem.

To see how to get started with StudioCMS, check out the StudioCMS Docs.

Packages in this repository

Astro Integrations

Package Test Coverage
studiocms codecov
@studiocms/devapps codecov

StudioCMS Plugins

Package Category Test Coverage
@studiocms/oauth Authentication codecov
@studiocms/html Renderer codecov
@studiocms/markdoc Renderer codecov
@studiocms/md Renderer codecov
@studiocms/mdx Renderer codecov
@studiocms/wysiwyg Renderer codecov
@studiocms/cloudinary-image-service Image Service codecov
@studiocms/blog Front-End codecov

Tools and Utilities

Getting Started with our Development Playground

The StudioCMS Playground is intended for usage when developing StudioCMS within the monorepo and should not be used to directly test or host StudioCMS. If your goal is to test our CMS, please use our latest release from npm.

Steps to get a running playground should be the following:

  • Clone the GitHub repository
  • Run pnpm i --frozen-lockfile
  • Change dbStartPage in the Node playground's StudioCMS config to true.
    • If working with a non-libsql DB ensure the db.dialect option in the StudioCMS config matches your desired DB type!
  • Ensure .env variables are configured (see .env.demo for an example of available environment variables).
  • Run the following in this order:
    • pnpm build:studiocms - Build the StudioCMS packages (required to get the current table schema for the StudioCMS integration).
    • pnpm playground:migrate --latest - Update your Database schema to align with the latest migration version.
    • pnpm dev - Starts the Dev server connected to the linked database (as well as builds all repo packages).

Once that process completes successfully you are ready to navigate to http://localhost:4321/start and follow the instructions to get your database initialized.

Once complete, you will be redirected and asked to shut down and change the config option dbStartPage to false. This enables full functionality of the CMS. You can now restart the dev server with pnpm dev to continue working with our development playground.

That will give you the dev environment we work with daily.

To start the playground again, use the command pnpm dev.

Our ToolSet

For an up-to-date list of our main tools check out our .prototools file

For more information about Proto, check out Proto's website.

Contributing

We welcome contributions from the community! Whether it's bug reports, feature requests, or code contributions, we appreciate your help in making this project better.

Bug Reports and Feature Requests

If you encounter any bugs or have ideas for new features, please open an issue on our GitHub repository. When creating a new issue, please provide as much detail as possible, including steps to reproduce the issue (for bugs) and a clear description of the proposed feature.

Code Contributions

We welcome contributions from the community! Whether it's bug reports, feature requests, or code contributions, we appreciate your help in making this project better. To get started read our Contributing Guide

Please note that by contributing to this project, you agree to our Code of Conduct.

Chat with Us

We have an active community of de

readme truncated — read the full docs on github

Frequently asked questions

Is studiocms free to use?

studiocms is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does studiocms do?

Dedicated SSR (Server-side-rendered) Astro native Headless CMS, built from the ground up for the Astro community and by Astro community members

What is studiocms written in?

studiocms is primarily written in TypeScript. Its source is publicly available at https://github.com/withstudiocms/studiocms, and it has 833 GitHub stars.