- How do I install marshmallow/categorise-resources in a Laravel Nova application?
- Install it with Composer using composer require marshmallow/categorise-resources. Because it hooks into Laravel Nova, your project must already have Nova installed from the nova.laravel.com private repository, which means valid credentials configured in composer.json and in CI. After installing, clear your compiled config and view caches and reload the Nova admin panel to see the collapsed groups. No database migrations or additional setup steps are described in the package.
- Which Laravel and Nova versions does this package support?
- The last release was published in September 2020, which points to PHP 7.x era constraints and illuminate/support ^6 or ^7 alongside Nova ^2 or ^3. It is very unlikely to resolve cleanly against Laravel 10 or 11 and Nova 4 or 5. If you need it on a modern stack, fork the MIT-licensed source and relax the Composer constraints yourself. Always run a composer why-not probe against your lockfile before assuming it will install.
- Do I still need this package if I am on Nova 4 or Nova 5?
- No. Nova 4 introduced Nova::mainMenu() with MenuSection and MenuItem, which provides collapsible grouped sidebar navigation natively. On Nova 4 or later this package is functionally redundant, and it may even conflict with your menu customisations. The preferred path is to define your sections directly in NovaServiceProvider rather than carrying a third-party dependency.
- How does the package create collapsible groups in the Nova sidebar?
- It works with the standard $group property you already set on Nova resources and collapses those groups into tidy, expandable sections. You can also attach an icon to each group to make navigation easier to scan. In practice you keep grouping resources as usual and the package changes how those groups render in the sidebar. It does not introduce a new categorisation model of its own.
- Is marshmallow/categorise-resources still maintained?
- No. The upstream repository is archived, has a single release from 2020, a handful of stars, and no dependents. There is no maintainer available to patch a compatibility break when Nova ships a new major version. Treat it as a reference implementation to copy or fork rather than a live dependency you rely on being updated.
- What is the risk of using an unmaintained Nova menu package in production?
- The main failure mode is silent breakage: the package hooks Nova's menu internals, which are not a stable public API across majors, so after a Nova upgrade your sidebar may simply render incorrectly rather than throwing an error. Archived repositories can also be deleted or unlisted, so pin a commit hash or vendor the source instead of tracking a floating dev-master branch. The mitigating factor is the small, MIT-licensed code footprint, which is cheap to audit and reimplement in-house.
- Does it work with Laravel applications that do not use Nova, for example for blog categories?
- No. This is a Nova admin-panel tool only and has zero value in Blade, Livewire, or Filament panels, or as Eloquent categorisation for blog posts or documentation. Some package descriptions mention migrations and category relationships, but the actual scope is sidebar grouping, and no migration or relationship layer ships with it. If you need polymorphic category relationships for Eloquent models, look at a dedicated taxonomy package instead.
- Can I add icons to Nova resource groups with this package?
- Yes, adding an icon per group is one of the two features it advertises, alongside collapsing the groups themselves. The icons are rendered in the Nova sidebar next to the group heading. Since the code is small and MIT-licensed, you can easily adapt the icon handling in a fork if you need custom markup or SVG support.
- What are the alternatives to marshmallow/categorise-resources?
- The strongest alternative is Nova's own Nova::mainMenu() API with MenuSection and MenuItem, available from Nova 4 onward and fully supported on the commercial upgrade path. If you are stuck on Nova 2 or 3, you can fork this package into an internally namespaced Composer package, or write a small custom menu override in your NovaServiceProvider. Other menu-customising Nova packages exist, but check whether they are actively maintained before adopting them.
- How should I test and adopt this package safely?
- First run a Composer resolution check against your current lockfile; if it fails on the first attempt, skip the package entirely. If you must use it, fork the source to an internal namespace, relax the constraints for your PHP, Laravel, and Nova versions, and add a smoke test asserting the rendered menu structure. Publish the fork to an internal Composer registry such as Satis or Private Packagist so CI and developer machines resolve it reliably. Grouping also only pays off once you have roughly fifteen or more Nova resources, so measure your resource count before investing effort.