https://github.com/withstudiocms/studiocms
Dedicated SSR (Server-side-rendered) Astro native Headless CMS, built from the ground up for the Astro community and by Astro community members
https://github.com/withstudiocms/studiocms
astro-integration astro-studiocms astrojs cms content-management-system hacktoberfest headless headless-cms kysely libsql mysql postgresql studiocms turso turso-db
Last synced: 13 days ago
JSON representation
Dedicated SSR (Server-side-rendered) Astro native Headless CMS, built from the ground up for the Astro community and by Astro community members
- Host: GitHub
- URL: https://github.com/withstudiocms/studiocms
- Owner: withstudiocms
- License: mit
- Created: 2024-03-16T08:34:16.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2026-03-09T04:05:18.000Z (18 days ago)
- Last Synced: 2026-03-09T06:37:39.454Z (18 days ago)
- Topics: astro-integration, astro-studiocms, astrojs, cms, content-management-system, hacktoberfest, headless, headless-cms, kysely, libsql, mysql, postgresql, studiocms, turso, turso-db
- Language: TypeScript
- Homepage: https://studiocms.dev
- Size: 3.16 GB
- Stars: 747
- Watchers: 7
- Forks: 50
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
- Agents: AGENTS.md
Awesome Lists containing this project
README
# StudioCMS

[](https://npm.im/studiocms)
[](https://biomejs.dev/)
[](https://github.com/withstudiocms/studiocms/actions/workflows/ci-testing.yml)
[](https://tests.studiocms.dev/allure-reports/main/studiocms-tests/latest)
[](https://crowdin.com/project/studiocms)
[](https://pkg.pr.new/~/withstudiocms/studiocms)
[](https://astro.build)
StudioCMS is an SSR Headless CMS built for the Astro Ecosystem.
To see how to get started with StudioCMS, check out the [StudioCMS Docs](https://docs.studiocms.dev).
## Packages in this repository
### Astro Integrations
| Package | Test Coverage |
| ------- | ------------- |
| [studiocms](./packages/studiocms/) | [](https://codecov.io/github/withstudiocms/studiocms) |
| [@studiocms/devapps](./packages/@studiocms/devapps/) | [](https://codecov.io/github/withstudiocms/studiocms) |
### StudioCMS Plugins
| Package | Category | Test Coverage |
| ------- | -------- | ------------- |
| [@studiocms/auth0](./packages/@studiocms/auth0/) | Authentication | [](https://codecov.io/github/withstudiocms/studiocms) |
| [@studiocms/discord](./packages/@studiocms/discord/) | Authentication | [](https://codecov.io/github/withstudiocms/studiocms) |
| [@studiocms/github](./packages/@studiocms/github/) | Authentication | [](https://codecov.io/github/withstudiocms/studiocms) |
| [@studiocms/google](./packages/@studiocms/google/) | Authentication | [](https://codecov.io/github/withstudiocms/studiocms) |
| [@studiocms/html](./packages/@studiocms/html/) | Renderer | [](https://codecov.io/github/withstudiocms/studiocms) |
| [@studiocms/markdoc](./packages/@studiocms/markdoc/) | Renderer | [](https://codecov.io/github/withstudiocms/studiocms) |
| [@studiocms/md](./packages/@studiocms/md/) | Renderer | [](https://codecov.io/github/withstudiocms/studiocms) |
| [@studiocms/mdx](./packages/@studiocms/mdx/) | Renderer | [](https://codecov.io/github/withstudiocms/studiocms) |
| [@studiocms/wysiwyg](./packages/@studiocms/wysiwyg/) | Renderer | [](https://codecov.io/github/withstudiocms/studiocms) |
| [@studiocms/cloudinary-image-service](./packages/@studiocms/cloudinary-image-service/) | Image Service | [](https://codecov.io/github/withstudiocms/studiocms) |
| [@studiocms/blog](./packages/@studiocms/blog/) | Front-End | [](https://codecov.io/github/withstudiocms/studiocms) |
### Tools and Utilities
| Package | Test Coverage |
| ------- | ------------- |
| [@withstudiocms/auth-kit](./packages/@withstudiocms/auth-kit/) | [](https://codecov.io/github/withstudiocms/studiocms) |
| [@withstudiocms/buildkit](./packages/@withstudiocms/buildkit/) | [](https://codecov.io/github/withstudiocms/studiocms) |
| [@withstudiocms/component-registry](./packages/@withstudiocms/component-registry/) | [](https://codecov.io/github/withstudiocms/studiocms) |
| [@withstudiocms/config-utils](./packages/@withstudiocms/config-utils/) | [](https://codecov.io/github/withstudiocms/studiocms) |
| [@withstudiocms/effect](./packages/@withstudiocms/effect/) | [](https://codecov.io/github/withstudiocms/studiocms) |
| [@withstudiocms/internal_helpers](./packages/@withstudiocms/internal_helpers/) | [](https://codecov.io/github/withstudiocms/studiocms) |
| [@withstudiocms/kysely](./packages/@withstudiocms/kysely/) | [](https://codecov.io/github/withstudiocms/studiocms) |
| [@withstudiocms/sdk](./packages/@withstudiocms/sdk/) | [](https://codecov.io/github/withstudiocms/studiocms) |
| [@withstudiocms/template-lang](./packages/@withstudiocms/template-lang/) | [](https://codecov.io/github/withstudiocms/studiocms) |
## 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](https://npm.im/studiocms).
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](./playground/studiocms.config.mts) 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`](./playground/.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`](.prototools) file
For more information about Proto, check out [Proto's website](https://moonrepo.dev/proto).
## 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](https://github.com/withstudiocms/studiocms). 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](https://docs.studiocms.dev/en/guides/contributing/getting-started/)
Please note that by contributing to this project, you agree to our [Code of Conduct](https://github.com/withstudiocms/.github/blob/main/CODE_OF_CONDUCT.md).
## Chat with Us
We have an active community of developers on the StudioCMS [Discord Server](https://chat.studiocms.dev/). Feel free to join and connect with other contributors, ask questions, or discuss ideas related to this project or other StudioCMS projects.
## Sponsors
## Licensing
[MIT Licensed](./LICENSE).