A smooth Sailin' template-driven CMS that installs into your existing SvelteKit project. Define your content structure and Sailor generates your database schema and admin interface.
⚠️ EXPERIMENTAL: Sailor CMS is primarily built for my own needs, and it can be considered early beta. It uses the experimental remote functions. Use at your own risk!
- 🚀 Install into Existing Projects - Add Sailor to any SvelteKit project with one command
- 🎯 Template-Driven - Define collections, blocks, and globals as templates to build your own CMS
- 🔄 Auto-Generated Schema - Database tables and migrations created from your templates
- 🎨 Modern Admin UI - Beautiful, responsive interface built with shadcn/ui components
- 📁 File Management - Image transformation, S3/cloud storage, and URL repair tools
- 🔧 Full TypeScript - Type safety with generated types
Install Sailor CMS into an existing SvelteKit project:
npm install github:jonkristian/sailorcms
npx sailor core:initSee the Getting Started Guide for complete setup instructions.
Sailor CMS uses a template-driven approach:
- Define Templates - Create collections, blocks, and globals in
./src/lib/sailor/templates - Auto-Generate Schema - Database schema is generated from your templates
- Dynamic Admin - UI automatically adapts to your content structure
- Type Safety - TypeScript integration with generated types
- Framework: Built with and for SvelteKit
- Database: Drizzle ORM
- Authentication: Better Auth
- UI: shadcn-svelte
- Editor: TipTap
- ✅ GitHub Install -
npm install github:jonkristian/sailorcmsfrom source - ✅ Core Updates -
npx sailor core:updatekeeps CMS files up-to-date - ✅ Database Management - Schema generation and migration commands
- ✅ File Repair Tools - Fix S3/cloud storage URLs with built-in utilities
- ✅ Dynamic Collections - Create any content type (posts, pages, products)
- ✅ Flexible Blocks - Reusable content components with drag & drop
- ✅ Rich Text Editor - TipTap-powered WYSIWYG with syntax highlighting
- ✅ File Management - Upload, organize, and transform images with S3 support
- ✅ Relations & Tags - Connect content with tagging and relations
- ✅ TypeScript First - Full type safety with auto-generated types
- ✅ Template System - Define content structure in TypeScript
- ✅ Utility Functions - Load collections, globals, and files with complete objects
- ✅ Image Processing - Transform, resize, and optimize images with caching
📖 Complete Documentation - Full guides and API reference
Key sections:
- 🚀 Getting Started - Setup and first steps
- 🚢 Deployment - Production deployment with Coolify
- 📝 Templates - Creating collections, blocks, and globals
- 🔧 Field Types - Complete field reference
- 🛠️ Utilities - Frontend helpers and API reference
- 🔐 ACL - User roles and permissions
# Installation & Updates
npm install github:jonkristian/sailorcms # Install from GitHub
npx sailor core:init # Initialize CMS in your project
npx sailor core:update # Update core CMS files
# Database Management
npx sailor db:update # Update database schema from template changes
npx sailor db:generate # Generate schema and migrations
npx sailor db:backup # Backup database to S3/local
npx sailor db:restore # Restore database from backup
# File Management
npx sailor files:repair # Fix S3/cloud storage URLs
# User Management
npx sailor users:list # List all users
npx sailor users:role # Change user role
npx sailor users:verify # Verify user accountSailor CMS works with any SvelteKit-compatible platform. See the Deployment Guide for detailed instructions on:
- Coolify - Step-by-step containerized deployment
- SQLite with persistent storage - Database configuration
- Automated backups - S3/R2 backup setup
- 💬 Join Discord - Get help, share ideas, and connect with other users
- 🐛 Report bugs - Found an issue? Let us know!
We welcome contributions! Please see our Contributing Guide for details on:
- Setting up the development environment
- Code style and conventions
- Submitting pull requests
- Reporting issues
Sailor CMS may contain bugs that could result in data loss. We are not responsible for any data loss or corruption. Always backup your data and use at your own risk.