Changelog
Complete history of SonicJS development, documenting features, improvements, and bug fixes across 7 years of active development.
Unreleased
🚀 Planned
- ▸PostHog Telemetry Phase 2 - Runtime telemetry and performance metrics
- ▸PostHog Telemetry Phase 3 - Admin UI analytics dashboard
- ▸PostHog Telemetry Phase 4 - Feature flags and A/B testing
Version 2.x
✨ Highlights
- ▸Fixed cache plugin routes not registering in admin UI (#461)
- ▸Added e2e test for content deletion UI bug (#522)
- ▸New blog: Strapi vs Directus vs SonicJS comparison
- ▸New blog: Strapi vs Payload vs SonicJS comparison
- ▸Added PR Maker agent documentation for AI-assisted development
🐛 Bug Fixes
- ▸Cache Plugin Routes - Fixed cache plugin routes not being registered in admin UI (#461)
🧪 Testing
- ▸Content Deletion E2E - Added e2e test for content deletion UI bug (Issue #522)
📚 Documentation
- ▸CMS Comparisons - Added Strapi vs Directus vs SonicJS and Strapi vs Payload vs SonicJS blog posts
- ▸AI Coding Guide - Added SEO blog post for AI coding practice
- ▸PR Maker Agent - Added documentation for automated PR management agent
✨ New Features
- ▸AI Search Plugin - RAG-powered intelligent search using Cloudflare Vectorize for semantic content discovery
- ▸Contact Form Plugin - New plugin with Google Maps integration for location-aware forms
- ▸Multiple Media Selection - Enhanced media library with multi-select and video support
- ▸User Profile Editing - Users can now edit their own profiles from the admin panel
- ▸Open Collective Sponsorship - Added sponsorship option for community support
🔧 Improvements
- ▸Test Coverage - Improved from 56% to 80% code coverage
- ▸Claude Code Agents - Added PR maker agent for automated PR management
- ▸README SEO - Added comparison table and social proof badges
- ▸Open Graph Image - Updated for better social sharing
🐛 Bug Fixes
- ▸Admin Favicon - Fixed to serve from local route instead of broken external URL
- ▸E2E Tests - Resolved flaky end-to-end tests
- ▸PluginBuilder Export - Fixed export and package name in docs
📦 Dependencies
- ▸Updated Hono from 4.10.4 to 4.11.4
- ▸Updated Wrangler from 4.45.4 to 4.59.1
✨ New Features
- ▸Slug Auto-Generation - Auto-generates URL-friendly slugs from titles as you type with 500ms debounce
- ▸Real-time Duplicate Detection - Visual status indicators (✓ Available / ✗ Already in use / ⟳ Checking...) with new
/api/content/check-slugendpoint - ▸Content Blocks UI - New content blocks and repeatable fields interface for structured content
- ▸Cloudflare Turnstile Plugin - Bot protection plugin with XSS protection for forms and authentication
- ▸User Profiles - New user profiles table and dynamic API routes using Drizzle ORM (in app template)
🔧 Improvements
- ▸Slug Manual Override - Edit slugs manually with "Regenerate from title" button
- ▸Edit Mode Protection - Slug auto-generation doesn't change existing content slugs
- ▸Dynamic Profile API - Schema changes automatically reflect in the API
🐛 Bug Fixes
- ▸JWT Verification - Fixed HS256 algorithm specification in Hono JWT verify
- ▸Turnstile Plugin - Fixed body storage bug and added XSS protection
📦 Dependencies
- ▸Updated Hono from 4.10.6 to 4.11.4
- ▸Updated glob from 10.4.5 to 10.5.0
✨ Highlights
- ▸Auto-redirect to registration when no admin exists on fresh install
- ▸New first-time setup experience with welcome banner
- ▸Lazy admin existence check - only one DB query per worker lifetime
- ▸SonicJS branding on registration page matching login design
🔧 Fixed
- ▸Seed Data Plugin 404 - Mount seed-data plugin routes at /admin/seed-data (fixes 404 error)
- ▸Admin Seed Password Hash - Fixed seed-admin.ts to use Web Crypto API matching AuthManager
✨ Added
- ▸Auto-seed Admin User - npm run workspace now automatically seeds admin user after migrations
- ▸Seed Data Back Link - Added navigation back to plugin settings from seed data generator page
🔧 Fixed
- ▸OTP Authentication JWT Token - OTP verify endpoint now returns JWT token and sets auth_token cookie
- ▸OTP Email Plugin Lookup - Fixed email plugin lookup to send OTP codes when plugin has settings configured
🔧 Fixed
- ▸OTP Login Email Delivery - OTP codes are now sent via email when the Email plugin is configured
🔄 Changed
- ▸Removed
anytypes from plugin manifest for better TypeScript safety
✨ Highlights
- ▸OTP login and magic link authentication routes wired up
- ▸Fixed EasyMDE content sync issue causing save failures
- ▸Enforce disable user registration setting
- ▸Sticky sidebar layout for plugins page
- ▸Comprehensive Astro integration guide
- ▸CORS documentation added to API reference
✨ Highlights
- ▸New Release Engineer agent for automated npm publishing
- ▸Fixed field add/edit issues on collection forms
- ▸EasyMDE markdown editor plugin with database migration
- ▸ESLint integration with naming convention rules
- ▸Fullstack developer agent with testing workflow
✨ Highlights
- ▸Various improvements and bug fixes
✨ Highlights
- ▸Improved E2E test stability with increased CI timeout
- ▸Fixed invalid URL links in the admin interface
- ▸Fixed settings save button functionality
- ▸Enhanced smoke test reliability
✨ Added
- ▸Database Reset Command - db:reset command in core package for development
- ▸Email Plugin Restore - Restored email plugin functionality
- ▸Comprehensive Roadmap Page - New roadmap documentation page
🔧 Fixed
- ▸Regenerated migrations bundle with auto-detection fix
- ▸Removed duplicate plugins from available folder
- ▸Missing migrations in core package (Stage 5)
🔧 Fixed
- ▸"process is not defined" Error - Resolved Cloudflare Workers runtime error
- ▸TypeScript Declarations - Enabled proper declaration generation
- ▸Type-check pass restored
🔧 Fixed
- ▸Cloudflare Workers Script Names - Reduced length to 54 chars max
- ▸Branch Name Limits - Fixed preview deployment naming for long branches
- ▸Removed trailing hyphens from Workers names
✨ Added
- ▸PostHog Telemetry System (Phase 1) - Privacy-first anonymous telemetry with opt-out support
- ▸OTP Login Plugin - One-time password authentication via email with configurable settings
- ▸EasyMDE Editor Plugin - Markdown editor with dark mode, replacing MDXEditor
- ▸GitHub Actions CI/CD - Automated PR testing and Cloudflare Workers preview deployments
- ▸TinyMCE Plugin - Optional full-featured WYSIWYG editor
- ▸Quill Editor Plugin - Modern, lightweight rich text editor
- ▸Magic Link Authentication plugin for passwordless login
- ▸Email plugin enhancements with test email and settings persistence
- ▸Color-coded field type badges for improved UI clarity
🔄 Changed
- ▸Vite updated from 5.4.20 to 7.2.2 (major version bump)
- ▸Default admin password changed from "admin123" to "sonicjs!"
- ▸Replaced MDXEditor with EasyMDE (plugin renamed: mdxeditor-plugin → easy-mdx)
- ▸Conditional field type options based on plugin activation
- ▸Fallback to textarea when editor plugins are inactive
🔧 Fixed
- ▸All unit test failures in core package
- ▸All 37 authentication E2E tests
- ▸MDXEditor CDN 404 errors (no UMD builds available)
- ▸Migration API endpoint paths (404 errors)
- ▸Content list filter options and title links
- ▸Field type dropdown empty state
- ▸Collection field properties persistence
🔐 Security
- ▸Changed default admin password for better security
- ▸AuthManager.setAuthCookie() exposed for plugin extensibility
💾 Database Migrations
- ▸021_add_otp_login.sql - OTP codes table
- ▸022_add_tinymce_plugin.sql
- ▸023_add_mdxeditor_plugin.sql
- ▸024_add_quill_editor_plugin.sql
- ▸025_rename_mdxeditor_to_easy_mdx.sql
✨ Added
- ▸Improved managed collections display with normalized naming
- ▸Explicit collection registration system
🔄 Changed
- ▸Refactored collection management to use explicit registration
- ▸Updated Wrangler to v4.45.4
- ▸Removed duplicate starter template directory
- ▸Removed experimental flag for Plugins menu
🔧 Fixed
- ▸Rebuild dist files with updated chunk names
✨ Added
- ▸ResponseGroup component for MDX pages
- ▸Pre-generated sections to prevent fs.readdir error in Cloudflare Workers
🔄 Changed
- ▸Merged legacy sonicjs repository history (3,683+ commits)
- ▸Improved documentation and contributor workflows
🔧 Fixed
- ▸fs.readdir error in Cloudflare Workers by pre-generating sections
- ▸Dynamic import for fast-glob to prevent Workers error
- ▸Duplicate ID attributes in MDX headings
- ▸Silenced Next.js workspace root inference warning
▶
View changes (11 improvements)
✨ Added
- ▸Migration warning banner for admin users
- ▸Publishing and versioning scripts
- ▸Database migration instructions for core package developers
- ▸Settings general tab with database persistence and E2E tests
- ▸Page size selector to database tools table view (default: 20 rows)
- ▸Media cleanup and content duplicate features with E2E tests
🔄 Changed
- ▸Made migrations idempotent to support existing databases
- ▸Updated package dependencies
- ▸Improved homepage with creative design
🔧 Fixed
- ▸E2E test failures for media and settings
- ▸Missing migration SQL for migrations 014-017
🎉 v2.0.0
Major ReleaseOctober 22, 2025🚀 NPM Package Distribution - Complete core package extraction and npm publishing infrastructure
▶
View all changes
✨ Added
- ▸Core package extraction to @sonicjs-cms/core
- ▸Complete route migration to core package
- ▸Template migration with full integration
- ▸Middleware, plugins, and services in core package
- ▸Automatic migration and seeding during setup
- ▸Custom admin credentials setup
🔄 Changed
- ▸Package name from @sonicjs/core to @sonicjs-cms/core
- ▸Streamlined create-app setup flow
Version 1.0.x
🎉 v1.0.0
Production ReadyOctober 14, 2025First production-ready release with comprehensive E2E testing, media management, and security hardening.
▶
View highlights
Earlier Versions
Media Management Era
- • Bulk media operations
- • 90% test coverage
- • Dashboard improvements
Analytics & Activity
- • Real-time analytics
- • Activity logging
- • Modern UI redesign
Design System
- • Plugin architecture
- • Visual indicators
- • Pre-commit hooks
Platform Evolution
- • Core architecture
- • Content management
- • API development
2018 - Project Genesis
Where it all began
Version History
| Version | Year | Highlights |
|---|---|---|
| 2.0.x | 2025 | Modern cloud-native CMS with npm package distribution, Cloudflare Workers optimized |
| 1.0.x | 2025 | Production-ready with E2E testing, comprehensive features, and security hardening |
| 0.6.0 | 2025 | Media management and bulk operations |
| 0.5.x | 2025 | Dashboard analytics and activity logging |
| 0.4.x | 2025 | Plugin system and design system |
| 0.1.x - 0.3.x | 2019-2024 | Foundation and early development |
Want to Contribute?
SonicJS is open source and community-driven. Join us in building the future of edge-first content management.
MIT License - Free Forever • Built with ❤️ by the SonicJS Community