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

Nova Text Auto Complete Laravel Package

gkermer/nova-text-auto-complete

A Laravel Nova field that adds autocomplete to text inputs, letting you suggest options from a static list or remote source as users type. It simplifies building searchable, suggestion-driven forms in Nova with minimal setup.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

  • Single-purpose Laravel Nova field package: a text input augmented with autocomplete suggestions. It follows the standard Nova field extension contract (composer package → service provider → field class → Vue component), so it slots into the existing admin-layer architecture without introducing new services, queues, or datastores.
  • Coupling is to Laravel Nova itself, which is a paid, closed-source dependency with its own major-version cadence. The package's useful life is therefore bounded by Nova's versioning, not by Laravel's.
  • Footprint is client-side and presentation-only; no migrations, no models, no scheduled work. Low blast radius.

Integration feasibility

  • Straightforward on the intended stack: composer require gkermer/nova-text-auto-complete, provider auto-discovery, then TextAutoComplete::make('field')->options([...]) in a Resource's fields(). Estimated effort: under a day for a developer already fluent in Nova.
  • Real constraint is version alignment. Last release is January 2021, which places it in the Nova 3 / Laravel 7–8 / PHP 7.4–8.0 era with Vue 2 components. Nova 4+ moved to Vue 3 and a changed asset pipeline, so the component almost certainly will not compile or render without a port.

Technical risk

  • Abandonment (high): ~4.5 years since last release, 22 stars, effectively a single-maintainer project. Assume we own the code the day we adopt it.
  • Version lock (high): the laravel/nova constraint in composer.json will likely block Nova upgrades via dependency conflict — a common failure mode where one field package freezes the whole admin panel.
  • Quality signals (medium): no visible CI, test suite, or issue triage. Opportunity score of 1.89 and overall 2.13 are consistent with a low-differentiation, low-momentum package.
  • Security surface (low–medium): it is a form field, so the attack surface is small, but the suggestion payload is injected into a Vue component and rendered in the DOM. Unescaped suggestion values would be an XSS vector, particularly if options are sourced from user-generated data. Verify this before production use.

Key questions

  1. Which Nova major version is in production, and is an upgrade already on the roadmap? If Nova 4/5 is imminent, this package is a non-starter as-is.
  2. Does the field persist a plain string, or serialize arrays/JSON? This determines schema and API contract impact.
  3. How are suggestions supplied — static array, closure, Eloquent query, or remote endpoint? Query-backed options create N+1 risk on index views.
  4. Does the repo have open PRs or forks already ported to Nova 4/5 that we could adopt instead of building?
  5. Are suggestion values escaped on render, and does the component implement keyboard navigation and aria-autocomplete for accessibility compliance?
  6. Is there any test coverage we can run to establish a behavioral baseline before we modify it?

Integration Approach

Stack fit

  • Target: Laravel 7/8/9 + Nova 3 + PHP 7.4/8.0, Blade/Vue 2 admin layer. Fits cleanly as a composer dependency with PSR-4 autoloading and no infrastructure requirements.
  • Does not fit a Nova 4/5 stack, a Vue 3 admin layer, or any environment where the admin panel is being modernized. Confirm the matrix before committing.

Migration path

  • Adopt as-is if we are pinned to Nova 3 and the admin layer is not being upgraded within the planning horizon.
  • Fork and port if we need Nova 4/5: vendor the source into packages/, convert the Vue 2 SFC to Vue 3, replace laravel-nova mixin imports, rebuild against Nova's current Mix/Vite config, and publish as an internal package. Budget 1–2 sprints including a11y and escaping fixes.
  • Replace with a first-party Nova Select with searchable options, or a maintained community field, if the only requirement is "pick from a known list." This is the lowest long-term-risk option and should be evaluated seriously given the package's score.
  • In all cases, wrap usage in a thin internal field class that delegates to the underlying implementation, so swapping the engine later is a one-line change per Resource rather than a sweep.

Compatibility

  • Verify exactly three things in a spike: composer resolution against the current laravel/nova constraint, asset compilation under the project's Nova build config, and runtime rendering across the browsers we support.
  • Native <datalist>-style autocomplete (if that is the mechanism) has inconsistent styling and keyboard behavior across browsers; confirm the UX is acceptable rather than assuming parity with a typeahead library.

Sequencing

  1. Spike on a single low-traffic Resource in a dev branch; confirm install, build, and render.
  2. Security review of suggestion escaping and a quick accessibility pass.
  3. Decide build-vs-buy: fork/port vs. replace with a first-party field. This decision should be made before broad rollout, not after.
  4. If adopting, pin the version in composer.lock, vendor the source, and record the decision in an ADR.
  5. Roll out Resource by Resource through the internal wrapper class.

Operational Impact

Maintenance

  • Effectively unmaintained upstream; maintenance cost transfers to us on day one. Expect roughly 1–2 developer-days per quarter for dependency and security bumps, and materially more (1–2 sprints) at each Nova major upgrade.
  • Pin the version explicitly and vendor the source. Do not rely on ^ constraints resolving to a maintained release — there will not be one.

Support

  • No vendor support and a 22-star community. Internal runbook and named owner required. The escalation path is "we fix it," which should be stated plainly to stakeholders before adoption.
  • Documentation is a README only; expect to author our own usage notes and field-behavior documentation.

Scaling

  • Negligible server-side overhead for static option lists — suggestions are resolved client-side.
  • If options are closure- or query-backed, suggestion resolution runs per rendered field. On index views with many rows this becomes an N+1 pattern. Cache or precompute the option list and avoid query-backed options on high-row-count resources.

Failure modes

  • Nova upgrade blocked by a composer constraint conflict, freezing the entire admin panel's upgrade path — the highest-cost failure.
  • Asset build silently breaks after a Nova update, leaving the field rendering blank or unstyled with no error surfaced to users.
  • Malformed or unexpectedly shaped suggestion payloads throw inside the Vue component and blank the surrounding form.
  • XSS if suggestion values are user-derived and rendered unescaped.
  • No security patch path if a vulnerability is found in the component.

Ramp-up

  • Low for developers already writing Nova fields: roughly one hour to be productive with the public API.
  • Moderate for anyone modifying the Vue side, since Nova's internal component conventions are undocumented and the package's 2021-era patterns will not match current Nova internals.
  • Plan for a short knowledge-transfer session and a written internal README; do not assume the upstream documentation is sufficient.
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.
skyraptor/chatter
edlugz/sasapay
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