SolidX
ReferenceExtending SolidXFrontend Customization

Frontend

Reference for frontend customization patterns in SolidX.

Frontend Customization Catalog

Use this section as the source of truth for where each customization type belongs and how it should be wired in the UI module system.

Mental Model

The SolidX frontend is designed so that custom UI code stays close to the module that owns the business feature.

  • Use metadata-driven extensions when you are augmenting generated admin screens.
  • Use bespoke UI when you need full route-level control.
  • Keep ownership module-local so discovery, registration, and maintenance stay predictable.

The UI stays flexible because SolidX combines generated structure with module-owned custom code.

Customization Modes

UI Module Convention

In the current SolidX frontend model, custom frontend code should be organized inside module folders under solid-ui/src/<module-name>/.

Recommended structure:

solid-ui/src/
├── App.tsx                          # Application shell and providers
├── AppRoutes.tsx                    # Route composition entry
├── solid-ui-modules.ts              # Module discovery and runtime aggregation
├── <module-name>/
   ├── admin-layout/                # Metadata-driven admin extensions
   ├── custom-layout/               # Bespoke route-level pages and shells
   ├── redux/                       # Module-owned reducers, middleware, RTK Query APIs
   └── <module-name>.ui-module.ts   # Module manifest for routes and extensions

Use these structure conventions:

  • admin-layout/ for metadata-driven admin extensions such as buttons, event handlers, and widgets
  • custom-layout/ for bespoke route-level UIs and custom application shells
  • redux/ for module-owned RTK Query APIs, reducers, and middleware
  • <module-name>.ui-module.ts as the manifest that registers routes, extension components, extension functions, reducers, and middleware

AppRoutes.tsx should live beside App.tsx at solid-ui/src/AppRoutes.tsx, and should consume aggregated module routes rather than manually registering every feature route inline.

Core API Convention

For extension/frontend API calls, use Solid HTTP helpers from @solidxai/core-ui:

  • solidGet
  • solidPost
  • solidPut
  • solidPatch
  • solidDelete
  • solidAxios

Use endpoint paths like /resource and do not hardcode /api in request paths.

Extension Component Types

Extension Function Types

Bespoke UI

Use Bespoke Frontend UI for full route-level UIs under solid-ui/src/<module-name>/custom-layout/....

Supporting APIs