statamic-rad-pack/mellisearch
A Statamic addon that brings Meilisearch to your site, delivering fast, typo-tolerant full-text search and filtering across your content. Index entries automatically, then query results with a simple, developer-friendly API.
Architecture fit
statamic-rad-pack/meilisearch is a Statamic addon that slots into Statamic's search abstraction, registering a meilisearch driver alongside the built-in local/template drivers. It is not a general-purpose Laravel Scout driver — it is Statamic-specific. That distinction matters for positioning: this package is only viable if the content/search surface is Statamic-driven. Indexes are declared in config/statamic/search.php, populated via Statamic's search index commands, and queried through Statamic's Search::index() facade. The runtime dependency chain is therefore three-deep: our Laravel version → supported Statamic version → supported addon version. v4.1.0 extends the top of that chain (Laravel 13), but the addon cannot be adopted on Laravel 13 unless the pinned Statamic release also supports it.
Integration feasibility
Low mechanical effort, moderate verification effort. Composer install, config publish, environment variables (MEILISEARCH_HOST, MEILISEARCH_KEY, index prefix), index definition, and an initial index build. The work is not the install — it is validating relevance behaviour: which fields are searchable, which are filterable/sortable, and how Statamic's field-level searchability settings map onto Meilisearch's index schema. Meilisearch's typo tolerance and ranking rules differ materially from local/template search, so result quality must be evaluated against real content before sign-off.
Technical risk
Key questions
local search under incident conditions?Stack fit Requires a Laravel + Statamic application with PHP at or above the addon's declared floor. Meilisearch runs as a separate service (self-hosted container or Meilisearch Cloud). Fit is strongest for content-heavy, read-dominant Statamic sites where search relevance is a product feature rather than a checkbox. Fit is poor for multi-tenant applications needing per-tenant search scoping, or for apps where the searchable corpus lives outside Statamic (Eloquent models), since this addon does not address that.
Migration path Two distinct paths, with different risk profiles:
composer update statamic-rad-pack/meilisearch. No index rebuild required, no config republish, no data migration. Ship it in the next routine dependency window.Compatibility
Composer constraints in the addon should be checked against our composer.json before any upgrade PR — specifically the illuminate/*, statamic/cms, and PHP constraints. Where constraints conflict, the resolution is to align Statamic first; the addon will follow. Keep the addon on a caret constraint (^4.1) so patch releases land automatically, and pin the Statamic minor to avoid unplanned search-abstraction changes.
Sequencing
Maintenance Ongoing surface is: scheduled index rebuilds (or event-driven sync), config drift between environments, and annual version-chain bumps. The index is derived state — it must be reproducible from the CMS. Establish a documented rebuild command and confirm it is idempotent. Budget a recurring line item for the Statamic/Laravel/addon triple upgrade each year, and a smaller one for Meilisearch server upgrades, which have their own breaking-change cadence (v1.x minors have historically introduced behavioural changes in ranking and settings).
Support Two support boundaries, not one: the PHP addon (vendor/maintainer) and the Meilisearch server (self-supported if self-hosted, vendor if Cloud). Incidents will not always be attributable to the right boundary quickly — build a triage runbook that distinguishes "index wrong" from "service unreachable" from "query semantics changed after upgrade". If self-hosting, the Meilisearch server is our operational responsibility; that is a meaningful on-call addition, not a footnote.
Scaling Scales well for read-heavy workloads: Meilisearch is designed for low-latency query serving and handles concurrency far beyond what a typical Statamic site generates. The scaling pressure points are elsewhere — index build time and memory during full rebuilds on large content sets, and write-path contention if content editors publish frequently. Both are addressable with incremental indexing and off-peak rebuild scheduling. Cost is driven by index size in RAM; model this early for large corpora, since Meilisearch is memory-resident.
Failure modes
local driver or empty-state with a message). Soft degradation is strongly preferred; it makes a Meilisearch outage a non-incident.Ramp-up Low for a Laravel developer already familiar with Statamic — the integration is config plus a command, achievable in under a day. The real ramp is conceptual: understanding Meilisearch's ranking rules, typo tolerance, and the searchable/filterable/sortable distinction, and knowing how those interact with Statamic's field configuration. Allocate evaluation time for whoever owns search relevance, not just implementation time for whoever wires it up. For teams new to both Statamic search and Meilisearch, assume two to three days to a confident first production cutover including relevance tuning.
How can I help you explore Laravel packages today?