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

Searchable Select Laravel Package

famcare/searchable-select

A Laravel package that adds a searchable select input to your forms, letting users filter long option lists with instant AJAX-powered search. Drop it into Blade views, point it at any model or endpoint, and get a lightweight dropdown without extra frontend work.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

  • This is a Laravel Nova field package, not a general Laravel library. It is only relevant if the target application runs Laravel Nova (a commercial, licensed admin panel). That is the first gating condition — without Nova, the package has zero applicability regardless of its quality.
  • Expected shape: a PHP Field subclass extending Laravel\Nova\Fields\Field, a Vue component under resources/js/, a compiled asset in dist/, and a service provider registering assets via Nova::serving(). Typical use case is a searchable foreign-key selector backed by an async search endpoint on datasets too large for a plain Select.
  • Footprint is small and additive: one field type, one asset bundle, one route at most. Blast radius is confined to the forms where the field is used.

Integration feasibility

  • Low effort if Nova is already in place and the package was deliberately forked to replace a removed upstream. The description ("the original package from github is removed, this is a replacement") implies the org already has a working integration and this is a swap.
  • Requires verifying: the Composer package name and PSR-4 namespace vs. the original (a rename means touching every use statement and every ->make() call in Nova resource classes), and whether Nova is declared as a dependency (Nova is not on Packagist, so laravel/nova constraints can cause resolution failures in CI).
  • Must confirm dist/ is committed. If the field ships unbuilt, adoption requires an npm/webpack step wired into the app's asset pipeline — a meaningful change for a team that otherwise only runs Composer.

Technical risk

  • High, concentrated in provenance. One star, zero dependents, a single maintainer, and a self-described fork of a deleted repository. There is no community backstop, no security review, and no evidence of use in production anywhere.
  • Nova version coupling is the dominant durability risk. Nova majors ship breaking changes to the field/component contract (notably the Vue 2 → Vue 3 move in Nova 4). A one-star fork will not track Nova majors on any predictable cadence. This package is effectively pinned to the Nova version it was built against.
  • Async search endpoint risk. A searchable select implies a query endpoint. Unvalidated, it becomes an authenticated-but-unscoped data leak — any Nova user can enumerate records they cannot view — plus a cheap way to load the database. Authorization and result caps must be verified in the source, not assumed.
  • Supply chain. A fork with a single committer and no release signing is a trust decision, not a dependency decision.

Key questions

  1. Which Nova major is in production, and which does this fork target?
  2. Does the package resolve cleanly in a clean composer install against our lockfile and private Nova repository?
  3. Is dist/ committed, or do we own the JS build?
  4. Does the async search endpoint enforce Nova policy authorization and a result limit?
  5. Is this a namespace-compatible drop-in, or does it require source edits across resource classes?
  6. What is the diff against the removed original, and do we hold a copy of that original for comparison?
  7. Does Nova's built-in searchable BelongsTo / Select cover the requirement, making the dependency unnecessary?

Integration Approach

Stack fit

  • Assumes Laravel + Nova + Composer, with a JS build pipeline available or dist/ pre-committed. If the team has no frontend build capability, treat unbuilt assets as a blocker rather than an inconvenience.

Migration path

  • Preferred: vendor the source into the application or an internal Composer package (ourorg/nova-searchable-select) rather than tracking famcare/*. At one star and zero dependents, we will end up maintaining it anyway — owning it from day one removes the supply-chain question and guarantees the fork cannot disappear the way the original did.
  • If staying on the public package, add it as an explicit VCS repository entry in composer.json and pin to a commit SHA, not a branch or a floating constraint.
  • If replacing the removed original, migrate by swapping the dependency and namespace, then run a repository-wide search for the old namespace before any resource class is touched.

Compatibility

  • Verify against the exact Nova version in production; do not accept "it worked on 4.x" as validation.
  • Check PHP version constraint and Laravel support matrix against the app's current versions.
  • Confirm the compiled asset is compatible with Nova's asset loading (mix manifest vs. plain dist).

Sequencing

  1. Spike on a throwaway branch: install, render the field on one low-risk resource, and exercise the search path with a policy-restricted user.
  2. Diff against the removed original (or against Nova's built-in searchable field) to confirm behavior parity on the specific forms that need it.
  3. Decide fork-and-own vs. track-upstream, then pin.
  4. Roll out to one admin screen behind a short observation window before widening to all affected resources.
  5. In parallel, evaluate Nova's built-in searchable BelongsTo/Select as the exit path — if parity holds, the dependency is avoidable entirely.

Operational Impact

Maintenance

  • Effectively self-maintained. Budget a small but recurring allowance for Nova major upgrades; this is the predictable cost center and it will land whenever the app upgrades Nova, not on the package's schedule.
  • Add the fork to the internal dependency inventory with a named owner. At one star and zero dependents, no external signal will warn us about breakage or abandonment.
  • Track upstream commits manually or drop upstream tracking entirely and own the code.

Support

  • No vendor, no community, no Slack channel, no issue backlog. Support is whoever on our team read the source. That is acceptable for a ~500-line field and unacceptable if anyone assumes otherwise.
  • Do not adopt for anything customer-facing or in a regulated path without the internal-fork decision made first.

Scaling

  • The async search endpoint is the scaling surface, not the PHP field. Large tables need an indexed search column, a bounded result set, and a debounce on the client. Expect the search query to become one of the more frequent statements on busy admin screens.
  • The field itself adds one small JS bundle; no meaningful memory or latency contribution.

Failure modes

  • Nova upgrade breaks the component — silent, discovered when an admin form stops rendering. Mitigate with a smoke test on the affected resource in CI or a pre-release checklist.
  • Package disappears or is force-pushed — the exact failure that already happened upstream. Mitigated by forking or SHA-pinning.
  • Composer resolution failure in CI — most likely when Nova's private repository is not configured on a fresh runner. Fails loudly and early, low severity.
  • Asset publishing regression — field renders unstyled or blank after a deploy; caught only by manual admin QA unless a smoke test exists.
  • Search endpoint data exposure or load — highest-severity mode. Requires explicit authorization verification before rollout, not after.
  • Abandonment drift — no alert fires; the package simply becomes progressively incompatible with Nova until someone forces the issue mid-upgrade.

Ramp-up

  • Low for a Laravel developer: one field class, one component, standard Nova conventions. Half a day to read and understand the whole package.
  • Non-trivial only for the JS build if dist/ is absent; that pulls in a frontend-capable engineer and a build pipeline decision.
  • The real ramp-up cost is the provenance review — confirming what changed from the removed original — which is unbounded until we locate a copy of the original for comparison.
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.
roundly-consulting/kubernetes-api-for-laravel
roundly-consulting/plausible-for-laravel
gvp/gvp-laravel-template
metasyncsite/laravel-metasync-client
roundly-consulting/onboarding-for-laravel
andydefer/laravel-notification
adachsoft/cli-process-tester
jhaskell13/laraflow
sebastienheyd/boilerplate-media-manager
ccast/tagixo-primix
pretendtrue/laravel-builder
sawmainek/laravel-scout-tntsearch-driver
tomshaw/laravel-calendar-table
dibakar/laravel-ownership
steadrun/laravel-monitor
labyrinthe/connect-laravel
elmogy/layan
drewdan/sentinel-client
dskripchenko/laravel-llm
fatryst/nuonuo