cloudflare / cloudflare/templates
Template Proposal: SonicJS - Edge-First Headless CMS
- Dominant language
- TypeScript
- Stars
- 2.1k
- Forks
- 1k
- Avg merge
- 17h 44m
- Merged PRs (30d)
- 10
Description
## Template Proposal: SonicJS
### What is SonicJS?
SonicJS is a modern, TypeScript-first headless CMS built specifically for Cloudflare's edge platform. It provides a complete content management system that runs entirely on Cloudflare Workers with D1 database and R2 object storage.
- **Website**: https://sonicjs.com
- **GitHub**: https://github.com/lane711/sonicjs
- **NPM**: `npx create-sonicjs@latest`
### Why SonicJS would make a great template
1. **Showcases Multiple Cloudflare Bindings**: SonicJS demonstrates the power of combining multiple Cloudflare services:
- **D1** - SQLite database for content storage
- **R2** - Object storage for media files
- **Workers** - Serverless compute runtime
- **KV** - Key-value storage for caching (optional)
- **Images API** - Image optimization (optional)
2. **Production-Ready Application**: Unlike simple starter templates, SonicJS is a full-featured CMS with:
- Rich text editing with TinyMCE
- Content versioning and revision history
- Content scheduling (publish/unpublish automation)
- Workflow system (Draft → Review → Published → Archived)
- Media management with R2
- Role-based permissions
- Auto-save functionality
- Live preview
3. **Modern Tech Stack**:
- **Hono.js** - Ultrafast web framework for Workers
- **TypeScript** - Full type safety
- **Drizzle ORM** - Type-safe database queries
- **HTMX** - Enhanced HTML for dynamic interfaces
- **Playwright** - E2E testing included
4. **Easy to Get Started**:
- One-command setup: `npx create-sonicjs@latest my-app`
- Deploy with Cloudflare's "Deploy to Workers" button
- Pre-configured database migrations
- Example content collections included
- Admin interface ready at `/admin`
5. **Active Development & Community**:
- Regular releases and updates
- Open source (MIT License)
- Growing community of users
### Proposed Template Details
- **Template Name**: `sonicjs-cms-template`
- **Label**: "SonicJS Headless CMS"
- **Products**: `["D1", "R2", "Workers"]`
- **Category**: "starter"
### Bindings Required
```json
{
"DB": {
"description": "D1 database for storing CMS content, collections, and user data"
},
"MEDIA_BUCKET": {
"description": "R2 bucket for storing uploaded media files (images, documents)"
}
}
```
### What I Can Provide
I'm the creator/maintainer of SonicJS and can:
- Create a dedicated template directory following all contribution guidelines
- Write comprehensive README with dash-content markers
- Provide Playwright E2E tests
- Include preview images/screenshots
- Maintain and update the template as SonicJS evolves
### Demo
A live demo can be viewed at: https://sonicjs.com (marketing site runs on SonicJS)
---
I believe SonicJS would be a valuable addition to the Cloudflare templates gallery, demonstrating how developers can build sophisticated, production-ready applications using Cloudflare's edge platform. It goes beyond simple "hello world" examples to show what's possible with Workers + D1 + R2.
Happy to answer any questions or make adjustments based on feedback!
Contributor guide
Assessment
This issue has not been assessed yet.