Skip to content

The modules

The metapackage nebula/admin requires 26 modules (including the separately maintained UI Bridge) and one theme. All carry the same version.

The engine

Package Module Purpose
nebula/module-component Nebula_Component Definition loader, merger, snippet resolver, resolver and cache, registries, renderer pool, access control, lifecycle events, JSON schemas, nebula:compile, nebula:lint, nebula:lint:options, nebula:doctor, the generate commands
nebula/module-grid Nebula_Grid Grid block and templates, collection provider, request applier, column renderers, filters, export, saved views, quick edit, selection pickers, nebula:catalog:fix-category-tree
nebula/module-form Nebula_Form Form and EAV form blocks, field renderers, route mounting, validator, save pipeline
nebula/module-core Nebula_Core The shell: forced admin theme, layout scoping, menu, command palette, configuration screens, dashboard, branding, the Nebula configuration section
nebula/theme-adminhtml-backend theme Nebula/backend Tokens, the Tailwind stylesheet, compiled TypeScript bundles, page templates

The screens

Package Module Purpose
nebula/module-theme Nebula_Theme The content pack: data providers, grid and form definitions, layout handles, snippets and view models for catalog, customers, sales, marketing, content and system screens
nebula/module-menu Nebula_Menu Admin menu data and icons
nebula/module-reports Nebula_Reports Report grids
nebula/module-store Nebula_Store Store, website and store view screens
nebula/module-system Nebula_System System screens: cache, index, backups, import and export, notifications
nebula/module-user Nebula_User Admin users, roles and locked users
nebula/module-currency Nebula_Currency Currency rates and symbols
nebula/module-merchandiser Nebula_Merchandiser Category merchandising by drag and drop on its own route, writing a position diff instead of re-saving the category

Content editing

Package Module Purpose
nebula/module-quill Nebula_Quill The rich-text field on Quill; sets itself as the default editor on install
nebula/module-directive Nebula_Directive Directive, widget and variable pickers for the editor
nebula/module-media Nebula_Media The media browser and media index
nebula/module-email-template-editor Nebula_EmailTemplateEditor The shared email header and footer editor with a split-pane HTML view, under Marketing › Email Header & Footer, and the panel that assigns a template to the configuration slots that send it
nebula/module-landing-page Nebula_LandingPage Campaign landing pages with their own URL, store scope, content, SEO metadata and sitemap entry

Access and identity

Package Module Purpose
nebula/module-roles Nebula_Roles Ten role templates, a role picker that previews the diff before saving, field-level product ACL
nebula/module-passkey Nebula_Passkey Passkeys and TOTP two-step for administrators and customers, recovery codes, the nebula_passkey two-factor provider

Interop and tooling

Package Module Purpose
nebula/module-ui-bridge Nebula_UiBridge Runtime conversion of supported third-party UI Component grids and forms; disabled by default, see UI Bridge
nebula/module-ui-removal Nebula_UiRemoval Skips a core UI Component only where a Nebula definition with the same name exists
nebula/module-ui-transformer Nebula_UiTransformer nebula:ui:transform: converts UI Component XML into draft definitions
nebula/module-crud-generator Nebula_CrudGenerator nebula:crud:generate: scaffolds a CRUD module from a database table
nebula/module-skin Nebula_Skin Skin discovery and the inline token stylesheet; 19 shipped skins
nebula/module-pro-marketing Nebula_ProMarketing Detects Nebula Pro packages and shows the in-admin upsell; can be turned off
nebula/module-theme-switcher Nebula_ThemeSwitcher Switch between Nebula and another admin theme without uninstalling

Nebula_CrudFixture exists in the source repository as generator output for the generator's tests. It is not in the metapackage and must not be installed on a store.

Dependencies between modules

Every module declares its dependencies in module.xml <sequence> and in its composer.json. The graph has no cycles. A module of yours that ships definitions should sequence after Nebula_Component, Nebula_Grid, Nebula_Form and, if it overlays a shipped definition, after the module that ships it.