norman-huth/nova-perspectives
Save and switch between named perspectives of your Laravel Nova resources. Capture filters, sorting, and column settings as reusable views so teams return to the exact index configuration they need without reconfiguring tables.
Architecture fit. Unchanged. nova-perspectives is a Laravel Nova add-on, not a general Laravel package; it only has a place in the stack if we are already a Nova shop and paying for Nova licenses. The value proposition remains narrow and real: present one Nova resource through multiple configurable viewpoints without duplicating resource classes. That is a presentation/config-layer concern and should sit at the edge of the architecture carrying no domain logic. The v1.3.0 "redirect to resource" feature is the first thing to challenge that assumption — a redirect is behavior, not presentation. It introduces a control-flow and possibly a routing concern into what we previously modelled as pure config. Confirm whether the redirect is a declarative config key consumed by Nova's own response handling (acceptable, still edge-layer) or a package-owned redirect that constructs URLs and targets itself (a real architectural step up in responsibility).
Integration feasibility. Still a standard Composer install with auto-discovery and a publishable config; effort remains hours. Two changes matter. First, v1.3.0 adds Nova 5 support, which widens the eligible stack rather than narrowing it — but the release notes make no statement about Nova 4 remaining supported, so the supported matrix is now ambiguous in both directions and must be read from composer.json, not from the changelog. Second, the release body is visibly malformed: it concatenates two different compare ranges (1.1.2...v1.3.0 and v1.2.0...v1.3.0) and omits v1.2.0 from the notes entirely. That is a small but genuine supply-chain signal — we cannot reconstruct what v1.2.0 changed from the published notes, so the audit must diff the tags directly rather than trust the release text. The gating question is unchanged in kind: declarative config (low risk, portable, trivially reimplementable) versus custom Vue/Blade and menu hooks (higher rebuild cost, tied to Nova front-end internals).
Technical risk. The dominant section, and it has improved but not flipped:
@mateusz-peczkowski, PR #12) is a positive community signal but is a drive-by contribution, not a co-maintainer. Still single-maintainer, still single-point knowledge. Norman Huth's breadth across many Nova packages remains a productivity signal, not a longevity guarantee.Key questions for the spike owner (revised):
composer.json — does Nova 4 remain supported alongside Nova 5, or was it dropped?Stack fit. Laravel + Nova, now plausibly Nova 4 or 5 (confirm from the manifest, not the changelog). If we are on Nova, the fit is clean and additive: install, publish config, declare perspectives per resource, no schema changes expected. If we are not on Nova, this package is still not a reason to adopt Nova — per-application licensing and closed-source nature are a far larger commitment than this package's value justifies. Nova itself is the real vendor decision.
Migration path. Adopt-by-fork remains the default, pinned at v1.3.0 rather than an older tag — the fork baseline should be the release that carries Nova 5 support, since forking an older tag re-imports the compatibility problem the release just solved. Concretely:
composer.json VCS/path repository at a pinned commit. Never track a floating constraint against a repository whose maintenance posture is unresolved.Compatibility. Build the explicit matrix at adoption time (Nova major × Laravel major × PHP minor) and record it as the frozen baseline — with Nova 5 included. Treat every Nova major as requiring a manual verification pass. Add the package to the dependency register consulted before any Nova upgrade, and additionally to the register consulted before any package upgrade, since the redirect feature means an upgrade can now change runtime behavior, not just column layout.
Sequencing.
composer.json for the actual Nova 4/5 support declaration — zero-cost kill criteria either way.Maintenance. This is the section that changed most. The realistic model is no longer "internal ownership of a frozen fork with zero upstream"; it is internal ownership of a fork with sporadic upstream, which is subtly harder to plan for than either a live dependency or a dead one. Budget the same ~1 day per Nova major upgrade, plus time to evaluate each new upstream release on its merits rather than assuming it is safe or assuming it will never come. Still assign a named engineer and a documented upgrade checklist, and add a scheduled review that asks both "is this still worth carrying?" and "is upstream actually alive this quarter?"
Support. Still no vendor and no SLA. Defects are our defects. Thin team-facing documentation remains the norm — the fork owner should write a short internal README covering the perspective config contract, the redirect behavior, and the certified Nova/Laravel/PHP matrix. That document is the support artifact, and it now needs to cover a feature that did not exist at the time of the original assessment.
Scaling. Runtime cost remains negligible; this is a presentation/config layer and does not add meaningful query or rendering load beyond what Nova already does. The redirect adds one extra request cycle on the paths that use it — immaterial. The scaling risk is unchanged and organizational: config sprawl, with perspectives multiplying per resource, drifting across teams, and becoming undocumented behavior nobody dares delete. Cap it with a convention (who may add a perspective, naming, review).
Failure modes, ordered by severity:
Ramp-up. Low technically — a Laravel developer familiar with Nova is productive in under a day; this is configuration, not architecture. Organizational ramp-up remains the real cost: the team must internalize that this dependency has a thin, intermittent upstream with no safety net, and reviewers must know the fork policy. Revised recommendation: still spike it, still verify the authorization model, but the prior "default to reimplement" posture is no longer clearly correct. Nova 5 support arriving from upstream is real value and lowers the fork burden. Default to fork at v1.3.0 behind one pilot resource, contingent on (a) the archive flag being cleared or explicitly accepted as a known risk, and (b) the redirect feature surviving authorization review. Fall back to Nova's native capability or a small in-house implementation if either check fails.
How can I help you explore Laravel packages today?