github SonicJs-Org/sonicjs v3.0.0

3 hours ago

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 as q_* 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 legacy PluginBuilder class has been removed.
  • Multi-tenant support — Tenant switcher, role membership, email invitations, and an is_super_admin flag.
  • 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-app bootstraps 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-app

Or upgrade an existing project:

npm install @sonicjs-cms/core@3.0.0

Full changelog: v3.0.0-beta.28...v3.0.0

Don't miss a new sonicjs release

NewReleases is sending notifications on new releases.