Install

Works with Drupal: ^10.3 || ^11

Using Composer to manage Drupal site dependencies

Alternative installation files

Download tar.gz 475.46 KB
MD5: a6657c631700e433c6735d530ae322ef
SHA-1: 078a502884f0496219f46ef7cac4cd0cbcc558b0
SHA-256: 3998e79f1943d942f32ffdd2c0be5c5e667a855a284b0a07d28e942ac3cf133c
Download zip 919.86 KB
MD5: 6705830dad89134d4b9e1c1fc530db2c
SHA-1: 326087ec4fda734087bc75eea583c645055d8cb0
SHA-256: e43869f4775b7c0ca4cd1e4993d228693031fefcb68bf52cecdb91372e2d771e

Release notes

Highlights

  • Twig integration: new {{ sdx('my_theme:hero', {title: 'Hello'}) }} Twig function for embedding SDX components in any Twig-based Drupal theme. No additional modules required.
  • Framework-agnostic SSR: sdx_ssr no longer depends on sdx_react. Works with React, Vue, or Svelte, whichever framework plugin is active.
  • SPA router: new sdx_router submodule with link interception, prefetch on hover, scoped partial page responses, form interception, and confirm form modals.
  • Vue and Svelte base components: sdx_vue and sdx_svelte now ship full base component libraries (templates, usePage composable) matching sdx_react parity.
  • Production-grade SSR server: clustered Node.js (1 worker per CPU), LRU cache with Drupal cache tag purging, circuit breaker, streaming, zero-downtime restart.

New submodules

  • sdx_router: SPA navigation for SDX-powered themes. Link interception, prefetch, scoped partial responses, form interception, batch modal support, theme boundary detection.
  • sdx_preflight: environment preflight checks and real-time module foundation.

sdx (core)

  • Add sdx() Twig function via SdxTwigExtension for embedding components in Twig themes
  • Add SdxAliasDiscovery service: @theme:{name}/, @module:{name}/, @sdx/* import aliases for Vite builds
  • Add SdxEnvironmentChecker service for runtime checks
  • Expand ComponentDiscoveryManager with cross-extension scanning (modules + themes)
  • Expand ComponentPreRender with data resolver integration and framework-aware props storage
  • Improve DataResolver: simplified API, removed deprecated data sources
  • Improve ComponentScaffolder: streamlined generation
  • Improve setup wizard with better framework and package manager detection
  • Migrate all preprocess hooks from .module to PHP 8 attribute-based Hook class
  • Remove dead code: SdxSystemCheck plugin system, annotation classes
  • Fix DI violations throughout (no more static \Drupal:: calls)

sdx_ssr

  • Remove hard dependency on sdx_react: SSR is now framework-agnostic
  • Clustered Node.js server (1 worker per CPU, auto-restart, SIGHUP zero-downtime restart)
  • LRU render cache with Drupal cache tag index for surgical invalidation
  • SsrCacheTagInvalidator: entity saves trigger POST /cache/purge to Node.js
  • Circuit breaker in PHP: 3 failures result in 30s cooldown via Drupal State API
  • Full-page SSR via /render-page endpoint with streaming support
  • /health endpoint with cache stats (size, hits, misses, hitRatio)
  • Fix hardcoded react/vite node_modules path: now discovers active framework dynamically

sdx_router

  • SPA link interception with X-SDX-Navigate header
  • Prefetch on hover via NavigationStateManager
  • Scoped partial responses (content/page/full): server declares scope
  • Form interception with AJAX batch modal support
  • Confirm form modal system for entity delete operations
  • Theme boundary crossing detection with full reload fallback
  • drupalSettings replacement on navigation

sdx_react

  • usePage hook with scope-aware mergePageData() (content/page/full/DataProvider)
  • SpaShell component with NavigationStateManager subscription
  • HtmlFragment component: three rendering modes (ComponentNode[], token string, plain HTML)
  • Full base component library: form-element, details, table, vertical-tabs, dropbutton, views-view, admin-page, block templates, and more
  • Persistent layout support via _layout metadata

sdx_vue / sdx_svelte

  • Full base component libraries matching sdx_react parity
  • usePage composable (Vue) with scope-aware merging
  • Template auto-discovery for templates/ directory convention

sdx_devel

Reworked developer toolbar and error handling

Upgrade from alpha1

  • Run drush cr after updating
  • Deprecated data sources removed: use DataResolver service
  • SdxSystemCheck plugin system removed: use SdxEnvironmentChecker
  • Props storage default changed from attribute to script tag
Created by: vzsigmond
Created on: 11 Apr 2026 at 15:36 UTC
Last updated: 11 Apr 2026 at 15:36 UTC
Bug fixes
New features

Other releases