Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Quick Links Laravel Package

niladam/quick-links

Quick Links is a Laravel package for defining and rendering configurable shortcut links in your app. Register links, customize labels and URLs, and output them via Blade components—handy for dashboards, menus, and admin panels.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for an admin-panel UI affordance. Quick Links is a narrow, single-purpose add-on: resource and file quick links rendered in a Filament table header. The decision it informs is not "build a link platform" but "do we own ~50 lines of render-hook plus Blade markup, or take a dependency?" The real cost of building is not the first implementation — it is tracking each Filament major (v3 → v4 → v5). This release is evidence the maintainer absorbs that cost for us.
  • Filament upgrade sequencing. v2.0.0 explicitly supports Filament v3, v4 and v5, with a declared filament/tables constraint and a CI matrix over PHP 8.2/8.3/8.4 × Filament v3/v4/v5. This means the package should not be the blocker on a Filament migration — useful input when ranking migration tickets and estimating downtime.
  • Platform floor decisions. The PHP minimum moves 8.1 → 8.2. That is a hard gate: if any environment we care about is still on 8.1, this package is frozen at v1.1.x and effectively off the roadmap. Treat this as a forcing function to confirm our PHP support matrix before scheduling the upgrade.
  • Roadmap expectations for the dependency. The v2 direction is compatibility breadth plus extensibility (publishable Blade view), not feature growth. Plan for it staying a thin rendering hook. Do not assume it will grow link management, permissions UI, or ordering — those remain our responsibility.
  • Removal of a prior objection. v2 renders through tables::header.after instead of overwriting the table's description(). Teams that previously rejected or forked the package because it clobbered their table description now have a clean path. That is a re-evaluation trigger for anyone who evaluated v1 and passed.
  • Upgrade scoping. The breaking list is short and concrete (PHP floor, newly declared dependency, disableIf() semantics, return types shifting from HTML strings to structured arrays, build() returning View). This is an hour-scale engineering task with a published UPGRADING.md, not a project — useful for sprint sizing and for deciding whether to upgrade now or defer behind a Filament v4/v5 migration.

When to Consider This Package

Adopt when:

  • You are on Filament v3, v4 or v5 and want quick links surfaced in table headers without maintaining your own render-hook integration.
  • You are on PHP 8.2+ across all environments (mandatory in v2).
  • You need to customize link markup. The publishable Blade view (php artisan vendor:publish --tag=quick-links-views) is the deciding factor — in v1 this was effectively fork-or-nothing, which is the single biggest change in this release from an extensibility standpoint.
  • You need conditional link visibility evaluated per request (e.g. gated on the current user). disableIf() now runs per render, its result is no longer inverted, and a closure returning true disables — replacing v1's confusing global-disable behavior.
  • Your tables already render header chrome (heading, description, header actions, search, filters, or column manager). Links now live inside that container.

Look elsewhere or proceed with caution when:

  • Any of your tables have none of that header chrome. The documented known limitation is that the render hook sits in a container Filament hides when the header is otherwise empty — links will silently not appear. Silent failure, not a loud one, is the risk to weigh. Validate against your real table configurations before committing.
  • You need a general-purpose action or link-menu abstraction. This is deliberately narrow; Filament's native actions or a menu component may fit better.
  • You require a stable public API with a long deprecation runway. v1 → v2 changed method return types from HTML strings to arrays and swapped an HtmlString for a View. That is a young package willing to make breaking changes at each major. Expect a repeat at Filament v6.
  • You need vendor support, an SLA, or a security-response commitment. This is a single-maintainer package with one external contributor in this release.
  • Evidence gap to close first: the notes give us compatibility and changelog data only — no download counts, issue backlog, or release cadence. For a revenue-critical admin surface, check Packagist adoption, open-issue age, and last-commit recency before adopting. For internal tooling, the risk is low enough to skip that diligence.

How to Pitch It (Stakeholders)

To executives: This is a small, low-cost dependency that removes bespoke code from our admin panel and keeps us aligned with Filament's release cadence. The cost is a PHP 8.2 minimum, which we should be moving to regardless of this package. Frame it as a maintenance reducer, not a strategic platform decision — the blast radius if it is abandoned is a few hours of in-house replacement work. Do not put it on a critical path without the pinning and test guardrails below.

To engineering: v2.0.0 is a major with a short, documented breaking list — PHP 8.2 floor; filament/tables ^3.0|^4.0|^5.0 is now a declared dependency rather than an undeclared import; disableIf() evaluates per render and no longer applies its result inverted or globally; buildResourceLinks()/buildFileLinks() return ['url' => ..., 'label' => ...] arrays; build() returns a View. A publishable Blade view now owns the markup, and rendering moved to tables::header.after so existing table descriptions survive. UPGRADING.md exists and the migration is contained.

Guardrails to state up front: single maintainer; breaking changes at each major; one documented rendering limitation on header-less tables. Recommend pinning to a minor, and adding a test that asserts links actually render on our real table configurations — specifically at least one minimal table — so the header-container limitation surfaces in CI rather than in production.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package