
(Still in Development — your support is appreciated!)
This SveltyCMS headless CMS provides a powerful backend based on a modern SvelteKit 2 / Svelte 5 framework. Being designed to be database agnostic, we fully support MongoDB, PostgreSQL, SQLite, and MariaDB/MySQL (via Drizzle ORM).
You can define Content Collections in two ways: in code or via the GUI-based collection builder. Full TypeScript support and a rich widget library make it straightforward to build custom data structures.
All widget fields support localization, validation using Valibot, and access control.
System localization uses Inlang Paraglide JS, a lightweight, type-safe i18n library. English is the default; additional languages are bundled and can be extended.
We use the latest tailwindcss v4, so the CMS can be quickly optimized to your personal needs.
Backend data is available via REST API or GraphQL Yoga for fast, flexible frontends.
| Feature | Status | Notes |
|---|---|---|
| Collection Builder | ✅ | GUI and code-based definitions |
| Typed Widget System | ✅ | Localization, validation, access control |
| Multi-language (Paraglide) | ✅ | Type-safe i18n out of the box |
| REST API | ✅ | CRUD and configuration endpoints |
| GraphQL API (Yoga) | ✅ | High-performance schema |
| Database Resilience | ✅ | Retries, self-healing reconnection, diagnostics, log download |
| Email Templating | ✅ | Svelte Email + SMTP |
| Roles & Permissions | ✅ | Database-backed access control |
| MariaDB / MySQL | ✅ | SQL support via Drizzle ORM |
| PostgreSQL | ✅ | Full production support via Drizzle ORM |
| SQLite | ✅ | Optimized Multi-Tenant Indexing (Sub-ms) |
| Persistent DoS Protection | ✅ | State-aware rate limiting across restarts |
Get up and running fast:
git clone https://github.com/SveltyCMS/SveltyCMS.git
cd SveltyCMS
bun install # or npm/pnpm
bun run dev # or npm run dev / pnpm run dev
Open the app
SvelyCMS: http://localhost:5173/
Prefer a full walkthrough? See: ./docs/getting-started.mdx

To clone our repository you need to be able to use Git.
git clone https://github.com/SveltyCMS/SveltyCMS.git
cd SveltyCMS
[!TIP] Bun is preferred for best results. While SveltyCMS is fully compatible with Node.js (>=24), running the application under the Bun runtime unlocks native Zig-based cryptographic performance (like native Argon2id hashing) and optimized OS-level file watching with zero binding overhead.
Install LATEST STABLE Node.js (>=24) to get started. We recommend using Bun for the best experience (3-4x faster than npm/pnpm). Then choose your preferred package manager:
bun
# Install bun if you haven't already
curl -fsSL https://bun.sh/install | bash
# Install all dependencies
bun install
# Development (CLI installer launches automatically if needed)
bun run dev
# Build for production
bun run build
# Preview production build
bun run preview
⚠️ Windows users: If bun install fails with ParserError or corrupted packages (null bytes in package.json files), use npm install instead. bun run dev and other commands work normally after npm install. This is an upstream bun bug affecting Windows only.
npm
# Install all dependencies
npm install
# Development (CLI installer launches automatically if needed)
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
# Development (CLI installer launches automatically if needed)
pnpm run dev
# Build for production
pnpm run build
# Preview production build
pnpm run preview
When starting the dev server without configuration, the guided installer launches automatically:
vite.config.tsStart with:
bun run dev # or npm run dev / pnpm run dev
We use the unified Vite+ Alpha (VoidZero) toolchain for an ultra-fast development experience.
bun run dev (runs on localhost:5173)bun run build (Rust-based Rolldown bundler)bun run preview (runs on localhost:4173)bun run lint (oxlint — project-wide checks in <50ms)bun run format (oxfmt — blazing fast Rust-based formatter)See our package.json for all available commands.
SveltyCMS implements A++ enterprise-grade security with 4-layer defense-in-depth architecture.
Multi-Layer Protection:
tenantId isolation at the database adapter level with TBAC role scoping.__Host- cookie prefix enforcement (RFC 6265bis).You can log in with email/password, Google OAuth, or GitHub OAuth. Role- and field-based access control lets you define precisely who can view, edit, or delete content.
SveltyCMS features a native Svelte 5 component library (42+ primitives) built on Tailwind 4 CSS variables with zero third-party UI dependencies.
app.css using Tailwind 4 @theme blocks. Replace the default color palette to give your CMS a corporate brand identity — from startup purple to enterprise blue in minutes.media and class selectors.$state, $props) with Svelte use:action patterns instead of heavy state machines.| We use [Paraglide JS](https://inlang.com/m/gerre34r/library-inlang-paraglideJs), the best i18n library together with [inlang](https://inlang.com/) ecosystem for first class System Translations with full typescript support. Our System Translations are available at: [inlang](https://inlang.com/editor/github.com/SveltyCMS/SveltyCMS) 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. | [](https://fink.inlang.com/github.com/SveltyCMS/SveltyCMS?ref=badge) |
SveltyCMS is designed with inclusivity at its core, strictly following WCAG 2.2 AA and ATAG 2.0 standards, and proactively moving towards WCAG 3.0 (Functional Performance).
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.
Build and send emails using Svelty Email and TypeScript.
📦 Optimized Bundle Size SveltyCMS is built with modern optimization techniques resulting in a compact bundle compared to traditional CMS platforms:
| CMS Platform | Total Asset Size | Bundle Size (Brotli) | Technology Stack |
|---|---|---|---|
| SveltyCMS | 3.01 MB | 842 KB ⚡ |
$ claude mcp add SveltyCMS \
-- python -m otcore.mcp_server <graph>