kind-work/meili-search
A Laravel package that integrates Meilisearch for fast, typo-tolerant full-text search. Index Eloquent models, run instant search queries, and keep results in sync automatically. Simple configuration and an expressive API make it easy to add powerful search to any Laravel app.
Architecture fit: v1.1.0 adds an index-time transformation hook using Antlers before values are written to Meilisearch. This fits well for Laravel applications already using Statamic/Antlers, where search index fields often need lightweight normalization: stripping markup, concatenating relationship data, formatting labels, or deriving display/search values. For plain Laravel applications without Statamic, the Antlers dependency is a weaker architectural fit and may add a template engine to the indexing path for limited benefit.
Integration feasibility: The feature appears opt-in and additive, so existing integrations should remain viable. Feasibility is high for teams already comfortable with Antlers, but medium overall because index transformations become production logic. The package is still early in version history, and this release is a minor feature update rather than a broad platform change.
Technical risk: Moderate. Moving transformation logic into Antlers improves flexibility and reduces custom PHP indexers, but introduces risks around template rendering cost, syntax failures during indexing, escaping/encoding behavior, null and relationship handling, and type drift between source models and Meilisearch field schemas. Index-time templating can also make search behavior harder to test and reason about if transformations are not versioned and documented.
Key questions:
Stack fit: Best fit is a Laravel + Statamic + Meilisearch stack. The feature lets teams keep search-oriented normalization close to existing Antlers/content modeling instead of creating one-off PHP transformers. Teams without Statamic should treat Antlers as an added dependency and confirm it is justified before adoption.
Migration path: Treat v1.1.0 as a low-risk minor upgrade. Pin the version, upgrade in a non-production environment, and verify that existing indexes behave unchanged when no Antlers transformations are configured. Adopt the new capability incrementally by applying transformations to one index or field group first, rebuilding that index, and comparing result quality and latency against the current baseline.
Compatibility: Confirm package constraints against the current Laravel, PHP, Statamic/Antlers, and Meilisearch versions. Validate queue worker behavior, index rebuild commands, and any custom indexing jobs. Because the feature affects values before they reach Meilisearch, also confirm that field types and searchable/filterable attributes remain compatible with the target index schema.
Sequencing: Upgrade package → run existing test suite and index smoke tests → verify no-change behavior → add Antlers transformations in a staging index → rebuild and compare search results → document transformation contracts → promote to production → monitor indexing failures and latency. Rollback should be straightforward by pinning the previous package version and removing the new transformations, but any already-transformed index may require a rebuild.
Maintenance: Antlers transformations become configuration-as-code and need ownership, review, and version control. Teams should treat them like production indexing logic, not ad hoc template snippets. Documentation should define which fields are transformed, why, and what source data they depend on.
Support: The package appears small and community-oriented, with this feature tied to a specific GitHub issue. Support depth may depend on maintainer responsiveness and internal expertise. TPM should confirm there is an internal owner for search indexing and a fallback plan if the package stalls.
Scaling: Antlers rendering during indexing can add CPU overhead, especially on full rebuilds or large content imports. For high-volume sites, benchmark indexing throughput and consider batching, queue tuning, and precomputed source fields where template rendering becomes a bottleneck. Search query latency should be unaffected because transformations occur before data reaches Meilisearch.
Failure modes: Main risks are Antlers syntax errors breaking indexing, missing relationships or null values producing incomplete documents, unexpected HTML/escaping changes affecting relevance or display, and field type changes causing Meilisearch schema conflicts. Partial index updates and stale documents are also possible if failures are not surfaced clearly. Add monitoring for failed jobs, index document counts, and rebuild duration.
Ramp-up: Developers already familiar with Statamic/Antlers can adopt this quickly. Laravel-only teams will need orientation on Antlers syntax, indexing flow, and debugging. Provide a short runbook covering how to add a transformation, rebuild an index, validate results, and roll back.
How can I help you explore Laravel packages today?