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

Typeahead Bundle Laravel Package

ruben-ruvic/typeahead-bundle

A PHP bundle that brings typeahead autocomplete to your forms, wiring text inputs to live suggestion lookups so users get matches as they type. Configure sources, customize rendering, and drop it into existing forms with minimal setup.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit: The package is a Symfony bundle, not a Laravel package. It extends Symfony's Form component (AbstractType, form type extensions, bundle compiler passes) and ships a Twig-rendered widget wiring Typeahead.js against Bootstrap 2/3 markup. Laravel does not ship Symfony Form as a first-class citizen; while individual Symfony components can be pulled in, a bundle's DependencyInjection/, Resources/config/services.yml, and TypeaheadBundle::class bootstrap assume a Symfony kernel and container. There is no service provider, facade, config publisher, or Blade view — the four things a Laravel integrator expects. Architecture fit for a Laravel application is therefore poor at the package level, even though the underlying idea (server-side autocomplete endpoint + client-side typeahead) is portable.

Integration feasibility: Direct composer require into a Laravel app is not viable. The realistic path is inspiration, not installation: read the form-type and template logic and reimplement it in a Laravel package or app-local component using a Laravel Form request builder (or plain Blade + a controller endpoint). The client-side half (Typeahead.js + Bloodhound + Bootstrap v2/v3 markup) can be lifted more or less intact, but Typeahead.js upstream is itself archived/unmaintained, and Bootstrap 2/3 are end-of-life; the markup will not match Bootstrap 5 conventions used in modern Laravel apps (BS5 dropped the .input-group-addon, uses different dropdown classes, and Typeahead.js is not BS5-aware).

Technical risk: High. Concretely: zero stars, zero dependents, last release 2022-06-30 — no external validation, no observed production use, no downstream bug reports to learn from. Stale dependencies on an abandoned JS library and EOL CSS frameworks. No CI badge or test suite visible from the metadata. A single-maintainer bundle with no dependents means you own all the maintenance risk; there is no upstream fix path. MIT license is permissive and non-blocking, so licensing is the one low-risk dimension.

Key questions for the maintainer / requester:

  1. Is the consuming application genuinely Symfony? If so this bundle is merely stale, not misfit. If it is Laravel, the requirement is a reimplementation, not an install.
  2. Which Bootstrap major version is the target UI, and is the Typeahead.js dependency negotiable (e.g., replaced with Choices.js, Tom Select, or Select2)?
  3. Is the autocomplete endpoint server-rendered or AJAX/JSON? This determines whether the app needs the Symfony Form bridge at all, or only the front-end pattern.
  4. What is the acceptance criterion — functional autocomplete, or reuse of a specific Symfony Type API?
  5. Who owns the fork when the abandoned JS dependency breaks against a future browser/Bootstrap?

Integration Approach

Stack fit: None out of the box for Laravel. For Symfony projects on Bootstrap 2/3 it fits the idiom: register TypeaheadBundle in config/bundles.php, use the provided form type in a form class, render in Twig. For Laravel, treat the repo as a reference implementation and target the parts separately:

  • Server side → a Laravel controller/route + query builder with LIKE/FULLTEXT and pagination-limited results, returning JSON.
  • Form side → a Blade component (<x-typeahead>), not a Symfony form type.
  • Client side → replace Typeahead.js with a maintained library (Tom Select is Bootstrap-5 friendly and dependency-free), or keep Typeahead.js only if constrained to BS3.

Migration path:

  1. Audit the bundle's form type and Twig template to extract the data-contract (endpoint URL, query param name, result JSON shape, min-length, throttling).
  2. Reproduce that contract in a small Laravel package or app-local Typeahead component with a published Blade view + config file + service provider.
  3. Swap the client library if Bootstrap ≥4 is in play; do not carry Typeahead.js forward.
  4. Retire any Symfony-specific classes; do not vendor the bundle.

Compatibility: The bundle's Symfony constraints are pinned to a 2022-era Symfony release line and will not run on current Symfony majors without a fork. On the Laravel side, "compatibility" is effectively a rewrite; PHP version floor is whatever the 2022 code declared (likely PHP 7.4–8.1), which may itself be below Laravel 11's PHP 8.2 floor. Bootstrap 2 and 3 are both EOL — a Laravel app on BS5 has zero overlap.

Sequencing:

  • Week 0: Requirement triage — confirm framework, Bootstrap version, and whether a Symfony Form API is actually required.
  • Week 1: Spike a Laravel-native autocomplete endpoint + maintained client library; do not attempt composer require.
  • Week 2: Implement Blade component + config, add tests for query sanitization, result caps, and empty/long-query behaviour.
  • Week 3: Ship behind a feature flag; keep the package repo only as a design reference.

Operational Impact

Maintenance: If installed in a Symfony app, the bundle is effectively vendored — no upstream activity, no dependents, so no one else will surface or fix breakage. Budget for it as internal code. In a Laravel target, maintenance is your own component's, which is preferable because you control the dependency graph.

Support: Zero community, zero dependents, zero issue traffic to mine. There is no support channel; any answer comes from reading the source. Escalation path is your own team.

Scaling: The interesting scaling surface is not the bundle but the autocomplete endpoint: unindexed LIKE '%term%' queries will degrade linearly with the table; you need a FULLTEXT index, a trigram index, or an external search service. Client-side throttling and minimum-query-length are behavioural levers the bundle's markup exposes but does not enforce server-side. Plan rate limiting and result caps at the route level regardless of stack.

Failure modes:

  • Abandoned JS: Typeahead.js unmaintained — potential breakage with future browser APIs or if another script shadows its globals.
  • Styling drift: Bootstrap 4/5 mismatch → broken dropdown positioning, invisible menus, or unstyled results.
  • Symfony pinning: Composer conflict on a Symfony upgrade silently blocks the whole app's dependency graph.
  • Query injection / DoS: Unbounded result sets and unparameterized search terms are the classic autocomplete footguns; audit the reference implementation before copying it.
  • Bootstrap v2/v3 EOL: No security patches from the upstream CSS framework.

Ramp-up: Low for a developer who already knows Symfony Forms and Typeahead.js (~half a day). High for a Laravel developer, because the productive work is a reimplementation, not an integration — realistically 3–5 developer-days to ship a tested, BS5-compatible equivalent, plus review. The 0.03 score and 0 stars are accurate signals: this package is a pattern to borrow, not a dependency to adopt, and the opportunity score of 6.59 likely reflects the gap for a maintained Laravel-native equivalent rather than the value of this bundle itself.

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.
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle