SonicJS 3.0 — First Stable Release
After an extensive beta cycle, SonicJS 3.0.0 is the first official stable release on the new architecture. This is a major milestone: a ground-up rebuild of the data layer, auth stack, and plugin system.
✨ Highlights
- Document Model data layer — Unified 5-table document repository (
documents,document_types,document_references,document_facets,document_permissions); queryable scalar fields exposed asq_*JSON virtual generated columns for fast indexed lookups. - Better Auth — Session cookies + JWT API tokens + document-backed RBAC, replacing the legacy auth stack entirely.
- Code-only Collections —
registerCollections([...CollectionConfig]), no DB table, no UI-driven schema creation; read-only collection listing at/admin/collections. - New Plugin SDK —
definePlugin()+registerPlugins(); the legacyPluginBuilderclass has been removed. - Multi-tenant support — Tenant switcher, role membership, email invitations, and an
is_super_adminflag. - Lexical rich-text editor — Replaces the legacy editor as the default rich-text field type.
- Two-Factor Authentication — TOTP authenticator app support with backup codes.
- GraphQL plugin — Full document CRUD via a GraphQL endpoint.
- create-sonicjs scaffold —
npx create-sonicjs@latest my-appbootstraps a new project with D1 + Wrangler config out of the box.
🔒 Security
- Closed remaining XSS and header-injection sinks across admin templates (media fields, user-controlled values).
- Hardened the Better Auth 1.7.7 upgrade and synced credential rows across all password paths.
- Fixed a first-boot foreign-key race in bootstrap with single-flight hardening.
- CI now runs the full E2E suite on every PR with a lint gate banning skipped tests.
🐛 Fixes
- Admin delete flow replaced with a confirmation page instead of a popup.
- Save-and-close no longer shows an unfiltered list; title reflects name changes immediately.
- Numerous dependency updates (Hono, Vite, GraphQL tooling, axios, qs, csv-parse, and more).
📦 Installation
npm create sonicjs@latest my-appOr upgrade an existing project:
npm install @sonicjs-cms/core@3.0.0Full changelog: v3.0.0-beta.28...v3.0.0