As of Filament v3 (and previous versions), the concept of a "cluster within a cluster"—or nested clusters—is not natively supported in the sidebar resource navigation. Filament’s resource clusters are designed as a single-level grouping for clarity and simplicity.
Workarounds/Alternatives:
-
Use Custom Navigation: You can customize the sidebar by overriding the default navigation in your
PanelProvider, allowing you to create more complex structures, including pseudo-nested clusters.Here’s an example of organizing your navigation items:
use Filament\Facades\Filament; use Filament\Navigation\NavigationGroup; public function panel(Panel $panel): Panel { return $panel ->navigation([ NavigationGroup::make() ->label('Settings') ->items([ NavigationGroup::make() ->label('User Settings') ->items([ // Place user settings resources here \App\Filament\Resources\UserResource::class, // ... ]), NavigationGroup::make() ->label('App Settings') ->items([ // Place app settings resources here \App\Filament\Resources\AppConfigResource::class, // ... ]), ]), ]); }Note:
NavigationGroupis used in recent versions of Filament 3 for custom navigation. -
Use Sections Instead within Your Resource's Forms/Pages: If resources are related, consider combining them or splitting their forms/pages into sections or tabs, if that makes sense from a user perspective.
-
Open Feature Request: If sidebar organization is essential to your workflow, consider creating a feature request on GitHub.
Summary:
You cannot have clusters within clusters by default, but you can approximate this structure by customizing your navigation using NavigationGroup. This gives you visually separated groups, though not true nested clusters.
Let me know if you'd like a full code example for your specific resources!