# Migrating from Decap CMS to Sveltia CMS
**TL;DR**: Change 1 line in `admin/index.html`. Your config.yml works as-is.
---
## Why Migrate?
**Sveltia CMS** is the modern successor to Decap CMS (formerly Netlify CMS) with:
- ✅ **5x smaller bundle** (300 KB vs 1.5 MB)
- ✅ **Faster performance** (GraphQL, instant loading)
- ✅ **260+ issues solved** from Decap CMS
- ✅ **Better mobile support**
- ✅ **Dark mode** built-in
- ✅ **Active maintenance** (frequent releases)
- ✅ **100% config compatible**
---
## Migration Steps
### Step 1: Update Script Tag
**Location**: `static/admin/index.html` (Hugo) or `admin/index.html` (Jekyll/11ty)
**OLD (Decap CMS)**:
```html
```
**NEW (Sveltia CMS)**:
```html
```
**Important**: Add `type="module"` attribute!
---
### Step 2: Keep Existing Config
```yaml
# admin/config.yml - NO CHANGES NEEDED!
backend:
name: github
repo: owner/repo
branch: main
# base_url: ... (keep if using OAuth proxy)
media_folder: static/images
public_folder: /images
collections:
# ... all your existing collections work as-is
```
**Your entire config.yml is 100% compatible!**
---
### Step 3: Test Locally
```bash
# Start your site's dev server
hugo server # or jekyll serve, or npm run dev
# Visit admin
open http://localhost:1313/admin/ # (or your port)
```
**Test these workflows**:
- ✅ Login (should work with existing OAuth)
- ✅ View content list
- ✅ Edit existing entry
- ✅ Create new entry
- ✅ Upload image
- ✅ Save and publish
---
### Step 4: Deploy
```bash
git add static/admin/index.html # or your admin path
git commit -m "Migrate to Sveltia CMS from Decap CMS"
git push
```
**That's it!** Your site rebuilds with Sveltia CMS.
---
## What Changes?
### UI Changes (Better UX)
- **Performance**: Instant content loading (GraphQL)
- **Search**: Full-text search across all content
- **Mobile**: Better mobile and tablet experience
- **Dark Mode**: Automatic dark mode support
- **Image Optimization**: Built-in WebP conversion
### What Stays the Same
- **Content**: All your Markdown/JSON/YAML files unchanged
- **Collections**: Same collection definitions
- **Fields**: Same field widgets and validation
- **Workflows**: Same editorial workflow
- **Media**: Same media folder and uploads
---
## What's Not Supported?
Sveltia CMS deliberately omits these Decap features for performance:
- ❌ **Git Gateway backend** (use OAuth proxy instead)
- ❌ **Azure backend** (may be added later)
- ❌ **Bitbucket backend** (may be added later)
**If you use Git Gateway**, switch to **Cloudflare Workers OAuth** (faster, more reliable):
- See: `templates/cloudflare-workers/setup-guide.md`
- Takes 10 minutes to set up
- Free tier: 100k requests/day
---
## Testing Checklist
Before fully migrating, verify these work:
- [ ] Login with OAuth
- [ ] View all collections
- [ ] Edit existing content
- [ ] Create new content
- [ ] Upload images
- [ ] Publish/unpublish works
- [ ] Search functionality
- [ ] Mobile editing (if applicable)
- [ ] i18n switching (if applicable)
---
## Rollback Plan
If you need to rollback:
1. **Revert script tag** to Decap CMS:
```html
```
2. **Commit and push**:
```bash
git add static/admin/index.html
git commit -m "Rollback to Decap CMS"
git push
```
**Your content and config are unchanged** - you can switch back and forth freely!
---
## Common Migration Issues
### Issue: "SVELTIA is not defined"
**Cause**: Missing `type="module"` attribute
**Fix**:
```html
```
---
### Issue: OAuth Not Working
**Cause**: Using Git Gateway (not supported)
**Fix**: Switch to Cloudflare Workers OAuth:
1. Deploy OAuth Worker (5 min)
2. Update config.yml with `base_url`
3. Test authentication
See: `templates/cloudflare-workers/setup-guide.md`
---
### Issue: TOML Files Not Loading
**Cause**: Sveltia's TOML support is buggy in beta
**Fix**: Use YAML instead:
```yaml
collections:
- name: posts
folder: content/posts
format: yaml # Change from: toml
```
Or wait for TOML fixes in future releases.
---
## Performance Comparison
| Metric | Decap CMS | Sveltia CMS | Improvement |
|--------|-----------|-------------|-------------|
| **Bundle Size** | 1.5 MB | 300 KB | **5x smaller** |
| **Initial Load** | 2-3 sec | 0.5-1 sec | **3x faster** |
| **Content Listing** | Sequential API calls | Single GraphQL query | **10x faster** |
| **Search** | Client-side only | Full-text | **Much better** |
| **Mobile UX** | Poor | Good | **Significantly improved** |
---
## Support & Help
**Issues after migration?**
- GitHub: https://github.com/sveltia/sveltia-cms/issues
- Discussions: https://github.com/sveltia/sveltia-cms/discussions
**Questions about Decap compatibility?**
- Sveltia maintainer is very responsive
- Most Decap configs work without changes
---
**Migration Time**: 5-10 minutes
**Risk Level**: Very Low (config unchanged, easy rollback)
**Recommended**: Yes (significant improvements)
---
**Last Updated**: 2025-10-24