goldnead/statamic-insights
Statamic Insights is a Control Panel addon that gives editors and administrators a quick overview of site and content metrics, trends, and activity. Built for Laravel and Statamic projects, it helps teams monitor content health and make informed decisions without leaving the CMS.
Architecture fit
This is a Statamic addon running on Laravel, so it inherits the host application's service provider, config, and Control Panel (CP) navigation conventions. v1.6.0 adds a single declarative hook — settingsNavParent() returning a [section, name] tuple identifying the addon's own CP navigation entry. The important architectural property is that the addon declares intent rather than reaching into another addon's nav tree: the resolution is performed by statamic-brand-context (1.16+), which decides whether the addon's settings render as the sub-item "Einstellungen" under its own entry, or under a shared "Addon-Suite" page for addons that ship no navigation of their own. This is a reasonable, low-coupling extension point, but it is an implicit contract — the method is meaningful only in the presence of a compatible consumer.
Integration feasibility
High. The release explicitly states no migration and no new config key, and older brand-context versions ignore the method and retain the previous layout. That makes the upgrade a composer update plus a cache clear, with the only observable change being the placement of settings pages in the CP. Two behavioral paths must be validated: (a) brand-context ≥ 1.16 present → new placement; (b) brand-context < 1.16 or absent → unchanged placement.
Technical risk Low overall, but not zero. Principal risks:
Key questions
statamic-brand-context declared as a hard or soft (suggest/dev) dependency in composer.json, and is a minimum version constrained?settingsNavParent() a documented public interface with a stated return contract, or an internal convention?Stack fit Standard Laravel/Statamic composer dependency; no new runtime services, no queue, no storage. The change lives entirely in the CP navigation layer and therefore touches no application data path. It fits cleanly into an existing Laravel deployment pipeline (build → composer install → cache warm).
Migration path
No migration and no config key, so the path is: bump the package, then clear caches. Statamic caches navigation and the Stache, so php artisan cache:clear and php artisan statamic:stache:clear should be part of the deploy step, otherwise the nav change may not surface and will look like a failed upgrade.
Compatibility Treat this as a 2×3 compatibility matrix and test the cells rather than the package in isolation:
| brand-context | Addon v1.6.0 behavior |
|---|---|
| Absent | Method ignored; previous layout |
| < 1.16 | Method ignored; previous layout |
| ≥ 1.16, addon has own nav | "Einstellungen" sub-item under addon entry |
| ≥ 1.16, addon has no nav | Shared "Addon-Suite" page under Settings |
Pin statamic-brand-context to ≥ 1.16 in environments where the new placement is expected (notably staging and any environment used to produce screenshots or training material), so documentation does not drift from production.
Sequencing
Maintenance Negligible code maintenance — one method, no schema, no config surface. The real maintenance cost is documentation: internal admin guides, onboarding material, and screenshots of the CP settings location are now conditional on a peer addon's version.
Support
Support surface grows slightly in a predictable way. Expect "our settings moved" / "the settings page disappeared" tickets immediately after any brand-context upgrade. Mitigation: add the installed statamic-brand-context version to the standard bug-report intake, and give first-line support a one-line decision tree (brand-context < 1.16 → old layout is correct behavior).
Scaling No impact. Nav resolution executes per CP request only; cost is trivial relative to CP rendering and is invisible to front-end traffic or queue throughput.
Failure modes
Ramp-up Near zero for engineers — the change is a single method with no migration. For support/CS and anyone maintaining admin documentation, budget a short briefing: what the method does, that it is conditional on brand-context 1.16+, that the fallback is intentional, and where settings now live in each case. This release is safe to adopt; the recommendation is to adopt it deliberately alongside a brand-context version pin rather than incidentally.
How can I help you explore Laravel packages today?