<picture>
  <source media="(prefers-color-scheme: dark)" srcset="https://github.com/SveltyCMS/SveltyCMS/blob/main/static/SveltyCMS.png">
  <img width="200" alt="SveltyCMS logo" src="https://github.com/SveltyCMS/SveltyCMS/blob/main/static/SveltyCMS.png">
</picture>

SveltyCMS - Headless CMS with Sveltekit Power

(Still in Development - Your Support is always Appreciated!!)

Latest SemVer GitHub issues

Sveltekit Badge TypeScript Badge Mongodb Badge Tailwindcss Badge

CodeQL Playwright Tests Auto Release

A powerful Headless CMS with Sveltekit Power

It's lightning fast, flexible and an easy to use modern content management system to provide a headless backend

This SveltyCMS headless CMS provides a powerful backend based on a modern SvelteKit 2 / Svelte 5 framework. Being designed to be database agnostic, we currently launch with a fast MongoDB, and will use drizzel for future SQL/Postgres support.

Content Collections can easily be implemented, due to full typescript support by using many available widgets. We offer two ways to use define your collections, via code or via a Gui based collection builder.

All Widget fields offer full translation, and customization, validation using [valibot](https://valibot.dev] and access handling..

The System language uses Inlang's Paraglide JS a light weight JavaScript i18n library. :gb: English is our default and we offer multiple languages out of the box. More Languages can easily be extended to support further languages.

We used tailwindcss and a skeleton UI toolkit, so the CMS can be quickly optimized to your personal needs.

The Backend Data is provided via Rest Api or GraphQL Yoga, to build extremely fast frontends.

SveltyCMS Gui

:toolbox: SveltyCMS & DXP: Your Gateway to Streamlined Digital Experiences

Leverage the power of SveltyCMS along with the capabilities of Developer Experience Platform (DXP). This potent combination redefines content development, making it agile, efficient and optimized.

When DXP integrates into our CMS, it presents a suite of advanced tools, offering developers the freedom and adaptability for content creation and management. The result is a streamlined workflow and a quicker process of crafting superior quality content.

Experience a leap in productivity with DXP seamlessly woven into SveltyCMS. Watch it automate routine tasks, provide clear interfaces and simplify CMS management. Developers can now channel their focus on core tasks - creating premium content and applications.

Footnote: As a headless CMS fortified with GraphQL API, SveltyCMS fully harnesses the potential of DXP, driving functions, ensuring scalability, enhancing adaptability and delivering personalized digital experiences. Empower your development voyage today with the versatile capabilities of SveltyCMS integrated with DXP.

:rocket: Setup

Clone the repository

To clone our repository you need to be able to use Git.

git clone https://github.com/SveltyCMS/SveltyCMS.git
cd SveltyCMS

Install all dependencies

Install stable Node.js to get started. Then choose your preferred package manager:

npm
# Install all dependencies
npm install

# Start CLI Installer
npm run installer

# Development
npm run dev

# Build for production
npm run build

# Preview production build
npm run preview
pnpm
# Install pnpm if you haven't already
npm install -g pnpm

# Install all dependencies
pnpm install

# Start CLI Installer
pnpm run installer

# Development
pnpm run dev

# Build for production
pnpm run build

# Preview production build
pnpm run preview
bun
# Install bun if you haven't already
curl -fsSL https://bun.sh/install | bash

# Install all dependencies
bun install

# Start CLI Installer
bun run installer

# Development
bun run dev

# Build for production
bun run build

# Preview production build
bun run preview

Setup via CLI Installer

This project uses a flexible public/private configuration to store sensitive information, such as API keys and database passwords.

To set up the SveltyCMS project, you just need to start the CLI Installer. Minimum requirements are a Database and Email to get started.

Development and Production

See our package.json for more information about development, build, preview, format, lint & testing commands.

Development server runs on localhost:5173 Preview server runs on localhost:4173

:lock: Authentication & Security

We want to keep your data Private and Secure.

Our extensive Authentication allows us to stay flexible for the future and adapt to changing security needs.

You can login into SveltyCMS by email and password or use google oauth.

Field-based content access enables the allocation of varying levels of access to users according to their roles and permissions. This way, you can control who can view, edit, or delete your data.

:art: Easy Theme Adaptions to your needs

If you require a different look, use the skeleton theme generator and modify the SveltyCMSTheme.ts to your needs

:earth_africa: Great System Localization i18n infrastructure

We use Paraglide JS, the best i18n library together with inlang ecosystem for first class System Translations with full typescript support.

Our System Translations are available at: inlang and can easily be extended.

If a language has not yet been defined, reach out to us, so that you can help extend the System Localization.

:clipboard: Easily create Data Collections

Great Experience to designing user-friendly and intuitive interfaces for managing content. Full Typescript support to display all available widgets, options to create fully custom data structures.

:incoming_envelope: Flexible Email Templating System

Build and send emails using Svelty Email and TypeScript.

:question: Need help

Contact us if you're struggling installation or other issues via: GitHub Discussions

:rocket: Semantic Versioning

We use semantic versioning to manage our releases. This means that our version numbers follow a specific format: MAJOR.MINOR.PATCH.

  • MAJOR version changes when we make incompatible API changes,
  • MINOR version changes when we add functionality in a backwards-compatible manner, and
  • PATCH version changes when we make backwards-compatible bug fixes.

When submitting pull requests, please make sure your commit messages follow the Conventional Commits specification. This will help us automatically generate changelogs and release notes.

Please also read our Code of Conduct before submitting Pull Requests.

If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running pnpm changeset and following the prompts. Changesets that add features should be minor and those that fix bugs should be patch.

Run the tests with pnpm test and lint the project with pnpm lint and pnpm check

Please prefix changeset messages with feat:, fix:, or chore:.

Thank you for helping us maintain a consistent and predictable release process! :heart:

Contributing

We welcome all kinds of contributions! Please see our CONTRIBUTING.md for details on how to get started with this.

:moneybag: Sponsoring

If you find our project useful and would like to support its development, you can become a sponsor! Your sponsorship will help us cover the costs of maintaining the project and allow us to dedicate more time to its development.

There are several ways you can sponsor us:

Thank you for your support!

:clap: Thanks

To all our contributors without this SveltyCMS would never have been possible.

:star: Give us a star

If you like what we're doing, give us a star and share our SveltyCMS project with others

SveltyCMS Builder SveltyCMS User

Top categories

svelte logo

Need a Svelte website built?

Hire a professional Svelte developer today.
Loading Svelte Themes