statamic-rad-pack/meilisearch
A Meilisearch search driver for Statamic that adds fast, typo-tolerant full-text search to your site. Automatically index entries, configure searchable fields, and query results through Statamic’s native search API—ideal for content-heavy sites needing instant, relevant results.
Package: statamic-rad-pack/meilisearch — a Meilisearch search driver for Statamic's search abstraction layer.
Release under review: v4.1.0 (minor). Sole change: Laravel 13 compatibility (PR #49).
Architecture fit. This is a thin adapter, not a framework. It plugs into Statamic's existing Search driver contract, so the integration surface is a service provider, a config block, and an indexer. That is a favourable shape for us: the coupling is to Statamic's search interface (stable, documented) rather than to internals, and the driver is swappable at the config level. If we already run Statamic, the architectural decision is really "do we want a hosted/external search engine" — this package is the cheap part of that decision, not the expensive part.
Integration feasibility. Low effort. Composer install, config publish, env credentials, index build via Statamic's CLI. No schema migrations in our database, no changes to content models. The real work is standing up and operating a Meilisearch instance, plus deciding index granularity (per-site, per-collection) and rebuild cadence.
Technical risk.
Key questions.
Stack fit. Clean, provided we are on Statamic 4/5+ and a Laravel version the package supports. The driver is declarative: register the driver in config/search.php, point it at Meilisearch, run the index command. Nothing about our application code changes — search calls stay behind Statamic's facade. That containment is the main reason this is a low-blast-radius integration.
Migration path. Recommended sequence, independent of the Laravel 13 headline:
config/search.php per environment rather than per code branch, so rollback is a config change and a redeploy — not a revert.Compatibility. Treat the matrix as a gate, not a formality:
| Dimension | Action |
|---|---|
| Laravel | Only adopt v4.1.0 if the rest of the stack is already on Laravel 13. Otherwise stay on the v4.0.x line, which is functionally identical for us. |
| Statamic | Confirm the exact Statamic version range the package declares; test against our pinned version. |
| Meilisearch server | Pin a specific server image tag; do not track latest. Record the tested triad (Statamic / package / Meilisearch) in our dependency register. |
| PHP | Confirm runtime parity with our base image. |
Sequencing. Because v4.1.0 is additive and carries no breaking changes, it should not be sequenced as a project. Fold it into the next routine dependency bump if and only if the Laravel 13 upgrade is already in flight; otherwise defer. Do not let a search driver's release note drive a framework upgrade.
Maintenance. Low but non-zero. The package itself is small and changes rarely — a handful of releases per year. Ongoing work is dominated by the service, not the code: Meilisearch upgrades, index schema changes when content models change, and periodic relevance tuning. Budget for that explicitly; teams routinely underestimate it.
Support. Community-only. Realistic posture: acceptable risk for a read-path search feature with a working fallback; not acceptable if search is a revenue-critical path (e.g. product discovery). If it is revenue-critical, either buy support upstream via sponsorship or accept that our own team owns the fork.
Scaling. The driver is not the constraint — Meilisearch is. Scaling questions belong to the search engine: index size, memory footprint, replica count, and rebuild throughput. Full reindexes on large content sets are the usual pain point; plan for incremental indexing and off-peak rebuild windows from day one. The adapter adds negligible overhead.
Failure modes. Enumerate and design for these before launch:
Ramp-up. A developer can be productive in an afternoon — install, config, index, query. The slower ramp is operational literacy: how Meilisearch indexes and ranks, what the settings knobs do, and how to diagnose "why is this result missing." Assign one named owner for search quality rather than distributing it; search tuning degrades badly when nobody owns relevance.
Recommendation. Adopt v4.1.0 only as a rider on an already-planned Laravel 13 upgrade; otherwise hold at v4.0.x with no functional loss. The release itself is low risk and requires no assessment change beyond the compatibility note. Proceed with the package for search, contingent on (a) a confirmed fallback behaviour, (b) a pinned and tested three-way version matrix, and (c) a named operational owner.
How can I help you explore Laravel packages today?