Project Roadmap 2026
SveltyCMS 2026 roadmap β upcoming milestones and in-progress work. Completed items move to the achievements log.
On this page
EU Compliance: Based on publicly available documentation as of June 2026. Performance measurements where cited: self-measured via BENCHMARK_RECORD=1 bun test tests/benchmarks/. See Achievements Log (truth-first) and Performance Architecture.
This document is the living roadmap β in-progress and planned work. Completed achievements: Achievements Log.
π CMS Tables & List Platform (Smart Table)
Shipped foundation (July 2026): headless controller, schema-aware server filters, QueryBuilder IR, SWR/cache hash, shared UX primitives β plus the July 2026 2FA hardening set (AES-256-GCM TOTP secrets at rest, resumable enrollment, trusted-devices cookie, configurable TOTP window, afterAuthenticate plugin hook). Both are documented in the Achievements Log. Collections stay server-secure.
Next (high leverage β foundations ready)
| Enhancement | Status | Notes |
|---|---|---|
| Saved views | π’ Shipped | 100% wired across all list surfaces: Entry-list, website-tokens, users, and media |
| Column resize + layout prefs | π‘ Partial | Entry-list + tokens layoutKey; extend media/users |
| Status / domain facets | π’ Shipped | Collection facets + interactive User Management facet chips (All, Admins, Users, Active, Blocked) |
| List metrics | π’ Shipped | list-query-metrics + SSR badge on collections, users, and tokens |
| Filter engine reuse | π’ Shipped | Allowlisted field filtering (role, blocked, email, username) on users/tokens |
Planned product UX
- Bulk field-edit UI, sticky columns, multi-column sort, advanced filter operators UI
- Export filtered selection, keyboard grid nav (ATAG), responsive card mode
- Team / cloud saved views (enterprise)
Performance & observability
- Predictive preload βwarm next pageβ β π’ Shipped: sidebar smart-preload of learner-predicted path + dashboard hot-collection chips + heat-aware SWR + Smart Table pagination links with
data-preload="viewport"(2026-09-02, see Achievements Log). - List p50/p95 from
list-query-metricsinto benchmark trend notes - Negative cache / empty-page policy documentation
Explicitly deferred
| Item | Why |
|---|---|
| TanStack as collection core | SSR + multi-tenant security |
| Mini matrices on Smart Table | Stay purpose-built |
ποΈ In Progress
-
ποΈ AI-Assisted Builder (Phase 0 shipped 2026-08-20) β
src/services/ai-builder/gateway skeleton:gateway.ts(ordered backend failover via the existing OllamaaiService+ per-user sliding-window quotas),prompts.ts(<user_data>passive-reference injection shield),validator.ts(Valibot structured-output validation + widget-registry awareness + reserveddb_fieldNameblocking),diff.ts(proposal-vs-schema diff),collection-designer.ts(design/refine). API namespaceai-builderregistered in the existing fail-closed dispatcher (ENDPOINT_PERMISSIONS: system:settings, admin-gated handler):POST /api/ai-builder/design-collectionandrefine-collectionlive;approve-collectionreturns 501 until Phase 1 (schema write via AST path). See AI-Assisted Builder Design. -
ποΈ CollectionsNamespace consolidation (2026-08) β
src/services/sdk/namespaces/collections-namespace.tssplit from a ~2,100-line monolith into a thin orchestrator + single-purpose modules (schema-store,read-pipeline,write-pipeline,post-write,request-cache,lazy-services). Write field prep is now ONE schema walk + ONE clone viaprepareCollectionFields()incontent-utils.ts(previously 3 walks / up to 3 clones); create/update shareapplySchemaHookPipeline;collectionTableName()centralizes physical table naming (namespace + handlers); dead code removed (emitOutboxEvent,modifyRequestpassthrough). Adapter naming reconciled: SQLgetTable/createIndexes/registerTableSchemaand MongonormalizeCollectionName/createModelnow all derive fromnormalizeCollectionTableName()β fixes hyphenated-id index/model-registry mismatches (see Performance Architecture). Hot-path follow-on (2026-08-21): field-cached widget transforms,createdAtinsert-only on SQL+Mongo, mutation L1 sync / L2 fire-and-forget,validateSessionJOIN, zero boot settling delay,globalThiscache/webhook/automation singletons. Security invariants preserved: publication clamping, tenant injection, sanitization,assertWriteAllowed, best-effort side effects. See Local SDK vs HTTP/GraphQL API. Pending: re-runlocal-cms-crud/local-sdk-vs-directbenchmarks to refresh trend labels. -
ποΈ Marketplace Phase 2 (in-app catalog) β August 2026 progress: Extensions page Marketplace tab +
marketplace-view.svelte+GET /api/marketplaceoffline-first merge (local listings +marketplace-clientremote). Dashboard widgets refactored into marketplace-portable package folders (widgets/<folder>/<component>.svelte+ requiredwidget.json+.mdx) withinstallDashboardWidget()and local catalog listings (type filter incl.dashboard, license/price badges). Licensing aligned with widgets/plugins/site starter: Free / Freemium (14-day key-less trial) / Paid viacheckExtensionLicense("dashboard", id)β client-side upgrade prompts and server-side403 LICENSE_REQUIREDgates on premium dashboard endpoints (see license-endpoint-inventory). Still open: one-click install pipeline for remote packages, richer package cards, in-app license UX. -
ποΈ Plugin Admin Pages (
pagepart) β plugins contribute full admin pages under/plugin/<path>with serverload, RBAC gating (403), declarative sidebar nav, and the<AdminZone>renderer foradminTool+AdminAreaExtensionzones. See Plugin Architecture. -
ποΈ Published DB Adapters:
sveltycms-sqlite|mongodb|mariadb|postgresqlnpm packages β extraction + CI publish pending. -
ποΈ Native commerce pipeline β optional Commerce plugin (disabled by default): tenant-scoped guest cart, merge on login, quotes, inventory, checkout,
/api/commerce/*, StripegrandTotalintent,/shop/cart/checkout/account, transactional mail. Smart Importer Woo/Shopify. Dashboard Orders / Inventory widgets. Dedicated/api/commercerate-limit lane. Paid add-ons (not core): Live Shipping (plugin:shipping-live, UPS/FedEx/DHL) and TaxJar (plugin:taxjar) β table rates stay free. Open (same list as the overview βStill openβ table):ConditionPlugin/ AND-OR promotion groups; BOGO / tiered promotions, multi-warehouse, FX resolver; Stripe Billing (Pro endpoint is501);computeTotals< 5 ms benchmark; HTTP cartβorderβrefund two-tenant integration; Schema.org Product/Offer/Review on/shop. Product map: E-Commerce Overview.
π Planned
- OIDC login flow β August 2026 progress: Discovery (auth/token/jwks/logout), JWKS verify for back-channel logout + id_token,
GET /api/auth/oidc-login+oidc-callback(authorization code β local session for existing users). Still open: auto-provision policy, PKCE, IdP UI on login page, full ES256 test matrix. - Admin Session Console (UI) β π’ Shipped (September 2026): interactive modal for inspecting active user sessions, device/browser categorization, IP addresses, and one-click revocation.
- Cross-Source Merge Execution (v3.1 β stable)
- Visual Studio Query Builder
- GraphQL Supergraph / Federation
- Svelty Managed Cloud, Docker/Terraform enterprise pack
- AI-Verified Zero-Downtime Deployments
- SvelteKit 3.0, TypeScript 7 β running
@sveltejs/kit@3.0.0-next.25+typescript@6.0.3; TS7 adoption pending SvelteKit upstreamwrite_tsconfigmodernisation (language-tools#3063) - Rust Tooling Watch (
fuzdev/tsv) β Track development of fuzdev/tsv (native Rust Svelte parser + formatter); evaluate for Svelte AST compilation & CI linting once its planned linter ships to complement/benchmark against Oxc (oxlint+oxfmt). - Third-party pentest β engage a pentest lab before enterprise GA (0 CVEs on record today, self-checked via NVD / GitHub Advisory DB)
π§© Gap Register & Non-Goals (August 2026)
Honest assessment against reference platforms, based on publicly available documentation as of 2026-08-04. Closure paths link to the roadmap items above; shipped items are tracked in the Achievements Log.
| Capability | Reference platforms (public docs) | Our current state | Gap & closure path |
|---|---|---|---|
| Distributed SSO realm sessions | Keycloak documents realm-wide session clustering and cross-application SSO propagation | Single-instance session store (L1/L2 + DB); OIDC login flow in progress; SAML and all three OIDC logout mechanisms shipped | No cross-application session propagation yet. Closure: OIDC login page + PKCE (roadmap P1); distributed session clustering with the managed-cloud / Docker enterprise pack (P2) |
| Adaptive / risk-based authentication | Keycloak documents conditional authentication flows (step-up, risk-based) | Static lockout, TTL/idle controls, step-up re-auth for session management | No policy engine for adaptive challenges. Closure: roadmap candidate; the shipped log-only anomaly detection feeds future alerting |
| Module ecosystem depth | Drupalβs public module directory lists tens of thousands of modules | Plugin page part, widgets, and dashboard widget packages provide first-class admin extension points |
Catalog is young. Closure: marketplace in-app catalog + one-click install (P1); ecosystem launch items on the roadmap |
| Field-level write guards | Directus documents per-field read/write policy per role | Read-side response filtering shipped (FIELD_PERMISSIONS); filter/search FLAC shipped (canAccessField); mutation enforcement active via assertWriteAllowed |
Shipped: Full read + write field permission enforcement active across SDK and API pipelines |
| Passkey UI polish | WebAuthn/passkeys widely deployed in consumer-grade UX | WebAuthn/passkey support exists; UI polish pending | Small, contained; tracked in the security scorecard |
| Independent verification | Enterprise platforms publish third-party pentest / audit reports | 0 CVEs on record (NVD / GitHub Advisory DB, self-checked); internal scanners enforced in CI | No third-party pentest yet. Closure: engage a pentest lab before enterprise GA |
Strategic non-goals (explicit): matching WordPress/PHPβs install base or module count is not a design target β the extension surface is deliberately typed and tree-shaken (plugins, widgets, dashboard packages) rather than a generic runtime hook bus.
π’ Enterprise Workspaces & Governance
- Whole-team studio workflow, editorial state visibility, translation cockpit
- Adaptive workspaces theme, OAuth 2.1 for MCP, deep JSON path filtering
- AI command bar guardrails, Rust tooling evaluation (fuzdev/tsv formatter/parser vs Oxc), onboarding/deploy buttons
π£ Future Improvements to Get Noticed
π΄ High
- Marketplace static OG sync on live docroot
- Docs βWas this page helpful?β widget wiring
- Framework quickstart tabs / role segmentation
- SEO comparison blogs (dated, EU-compliant)
FUNDING.yml/ sponsors- Ecosystem launch (PH, HN, awesome lists)
π‘ Medium
- Versioned docs
- Per-page OG images
- Telemetry SSR of first-paint stats
- Canonical Discord invite
- Stripe renewal webhook fix
- Enterprise governance feature page
GEO / KPIs
- Agent-prompt onboarding snippets
- FAQ JSON-LD
- Verifiable dated technical claims (ongoing β evaluation docs truth-pass Aug 2026)
- Analytics / Search Console
Priority for implementers (current)
| Priority | Work |
|---|---|
| P0 | Scale-spectrum ledger recorded (SQLite 1β10k; PG/Maria/Mongo 1β100k) β see achievements |
| P1 | Marketplace install path; OIDC login page + PKCE; published adapters |
| P2 | Docker/Terraform, managed cloud |
β Shipped (2026-08-23) β moved to the Achievements Log
- Hardware-adaptive profile (
@utils/hardware-profile) β one boot-time detection drives sharp/DB-pool/worker/compile/job concurrency with workload-prioritized CPU allocation andHARDWARE_CPU_BUDGET(default 0.75 all-in-one, 1.0 dedicated). Surfaces on the dashboard + setup wizard. - Honest 4-DB benchmark matrix 199/200 β media preset dedup + deferred variant generation (SDK β45%, HTTP β50%), CacheService pattern invalidation 26β4.5 ms, reporter auto-formats generated MDX (DX check stays green), benchmark seeder provisions index-pressure/migration-scale collections, Mongo stress flakes fixed.
Open follow-ups: run the Redis matrix variant once (USE_REDIS=true). The profile-backed matrix re-run landed 200/200 β see the Achievements Log for the pre-profile vs profile measurement.
Last roadmap sync: 2026-08-23
β Shipped (2026-09-02) β moved to the Achievements Log
- Intelligence consumption & predictive navigation β the behavioral learner now renders confidence-gated (
predictNextPathAdaptive);data-preload="smart"on sidebar navigation and collection tree nodes incollections.svelte+tree-view.svelte; βWarm next pageβ viewport preloading on Smart Table pagination controls (data-preload="viewport"on next page link viapagination.svelte); dashboard hot-collection quick chips; heat-aware SWR incollection-service.ts(hot top-20 lists keep the 60 s fresh TTL but serve stale up to 15 min; cold lists unchanged). - Request-pipeline lean β one canonical L2 cache key shared by hook + dispatcher (duplicate
api:namespace retired), single-compression guarantee via acompressed: {}sentinel (one br+gzip+zstd pass re-sets L1 with real variants), admin sidebar payload cached per (tenant, contentVersion) instead of rebuilt + recursively cloned per SSR, and one per-request session-cookie resolution across authn/authz/turbo/dispatcher. - Smart Table Saved Views β saved views menu (
SmartTableSavedViewsMenu) wired into User Management (admin-area.svelte) alongside existing entry-list and website-tokens surfaces.