capell-app/search
Search integration for Capell applications, adding configurable search across models and content. Built for Laravel, it supports indexing, querying, and extension points for tailoring results and building custom search experiences.
Architecture fit. capell-app/search is the search subsystem of the Capell CMS family — a Laravel package distributed as a first-party module rather than a standalone search library. It fits applications already inside (or intentionally adopting) the Capell package set, where it provides CMS-scoped indexing and querying over page/content records. It is a weaker fit for teams that only want a general-purpose search abstraction; in that case Laravel Scout or a thin wrapper over the target engine carries less coupling. The package's value is the integration surface it ships with (service provider, config, index lifecycle hooks wired to content events), not the query engine itself.
Integration feasibility. Standard Composer install with Laravel package auto-discovery; configuration is published and driver selection is expected to be config-driven. Feasibility is high for greenfield, moderate for brownfield where an existing search implementation must be replaced. The dominant constraint is version alignment across sibling Capell packages — these move in lockstep, so a caret constraint here can drag constraints on core packages. Pin exact or narrow ranges and resolve the full dependency graph before committing.
Technical risk.
compare/v1.0.47...v1.0.48) with no described changes. This is a patch bump and should be routine, but it is unauditable from the notes alone; review the diff or treat as a black-box patch.Key questions.
Stack fit. Target Laravel 10/11/12 with PHP 8.2+. Requires queue workers for asynchronous indexing and a cache/session backend consistent with the rest of the app. The database driver keeps the operational surface minimal (no new infrastructure) but caps practical scale; external-engine drivers add a service dependency but remove the ceiling. Choose the driver before writing integration code — it determines the migration plan far more than the package API does.
Migration path. Three distinct cases:
LIKE-based or raw SQL search — highest value, lowest switching cost. Dual-run both paths behind a flag and compare result sets on a sampled query workload before cutover.Compatibility. Resolve the full Capell package set together, not this package in isolation. Verify: published config keys do not collide with existing ones, the service provider does not double-register bindings, driver client library versions match the engine server version, and any published assets/migrations are tagged to avoid re-publish conflicts.
Sequencing.
Maintenance. Patch releases appear frequently (v1.0.48 within a normal cadence), which is a healthy signal but also means routine upgrade work. Budget a recurring monthly slot for dependency bumps and a reindex verification after each. Because notes are unreliable, treat every bump as requiring a diff review or a staging reindex test. Ongoing cost is low if the app stays on a supported Laravel version; it rises sharply at Laravel major upgrades, when the whole Capell set must move together.
Support. No commercial SLA is implied. Support is GitHub issues and community channels; response times are best-effort. Assign a named internal owner who can read the package source — this is not a package to adopt without someone able to debug it. Keep a local fork or patch mechanism ready for urgent fixes.
Scaling. The database driver is comfortable for small-to-mid content sets (order 10⁴–10⁵ documents) with modest query concurrency; beyond that, query latency and index write contention become the constraint and an external engine is required. Index build and full reindex are CPU- and I/O-intensive — schedule off-peak, throttle queue workers, and never let a deploy trigger an unbounded reindex during peak. Query-path latency must be decoupled from page render, either via caching of common queries or a hard timeout with graceful degradation.
Failure modes to instrument.
config:cache after changing driver or index settings yields confusing behavior; include cache clear in the deploy runbook.Ramp-up. A Laravel-fluent engineer reaches productive use in roughly one to two days: install, configure a driver, mark models indexable, run a build. Reaching operational confidence — driver internals, index lifecycle, reindex and rollback procedures, failure-mode dashboards — takes about a week, most of it spent on the indexing pipeline rather than the query API. Add extra time if replacing an incumbent engine, since relevance parity work dominates.
Assessment of v1.0.48. A patch-level release with an uninformative, link-only changelog. No breaking changes are signaled by the version number and none should be assumed, but the absence of described changes is itself a process gap worth raising with the maintainer. Recommendation: adopt the pinned version, run a staging reindex as a sanity check, and do not treat the release notes as a reliable basis for upgrade decisions until structured changelogs are published.
How can I help you explore Laravel packages today?