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

Typesense Laravel Package

statamic-rad-pack/typesense

A Typesense search driver for Statamic that replaces the default search with fast, typo-tolerant results. Automatically index your entries and query them through a simple, configurable integration built for Laravel and PHP.

View on GitHub
Deep Wiki
Context7

Typesense search driver for Statamic.

Frequently asked questions about Typesense
How do I install statamic-rad-pack/typesense in a Laravel Statamic site?
Install it with Composer, publish the package config, and supply your Typesense host and API key. Then point Statamic's search driver at Typesense and define the collections and fields you want indexed. Integration cost is low because the package wraps the official Typesense PHP client rather than asking you to hand-roll an indexer. Plan collection creation as a distinct deploy step rather than an implicit side effect.
Which Statamic and Laravel versions does this Typesense driver support?
The package requires PHP 8.x and a Laravel version consistent with the Statamic release you run. It tracks Statamic majors, so Statamic's own upgrade cadence is the binding constraint rather than the addon. Check the composer.json constraints for the pinned Typesense client version and confirm it against your Typesense server version before upgrading.
How does automatic indexing keep Statamic entries in sync with Typesense?
The addon hooks into Statamic's entry lifecycle events and pushes changes into your Typesense collections, so new and edited entries stay searchable. Existing content still needs an initial import or reindex when you first install or change a schema. Because indexing is event-driven, verify that your queue and deploy setup do not swallow those sync events.
How do I configure Typesense collections and fields for custom schemas?
Publish the package config and define the collections and fields that map to your Statamic entry data. Keeping the schema in version-controlled config is the main advantage over ad-hoc Artisan scripts, since schema changes become reviewable. Whenever you alter fields, plan a reindex so existing documents match the new schema.
What changed in v3.3.1 with exists() being a read-only check?
In v3.3.1, exists() only reports whether a collection is present and no longer performs an ensure-then-check that could create or reconcile the schema. That is arguably a bug fix, since the method name always implied a read-only check, but it is a behavioural change shipped as a patch. Any code or provisioning script that relied on exists() to create the collection must be updated to call the explicit creation or import path.
Why do I get empty search results after deploying to a fresh Typesense instance?
The most likely cause is a missing collection, because exists() no longer provisions one as a side effect. Search then degrades to empty results instead of failing loudly, which is the worse failure mode for a search feature. Replace any bootstrap call to exists() with the package's explicit creation or reindex command, and check host and API key settings while you are there.
Does statamic-rad-pack/typesense support multi-site Statamic installs?
Yes, the package includes multi-site support for localized content. You configure how each site's entries map into Typesense collections so queries return the right locale. Test each site's search independently after provisioning, since a missing per-site collection will look like empty results rather than an error.
Do I need Typesense Cloud or can I self-host the Typesense server?
Either works, as long as a Typesense server is reachable from your application. Self-hosting as a sidecar or companion container alongside your app containers fits a standard Laravel deployment topology, and Typesense Cloud is an option if you prefer managed infrastructure. The package only needs a host and API key, and it wraps the official client either way.
How should I test a cold start against an empty Typesense instance?
Run a staging environment pointed at an empty Typesense instance and exercise provisioning before steady-state querying. A normal smoke test that searches existing content will not catch the exists() behaviour change; only a fresh-environment run will. Add a test that provisions collections from scratch and asserts search returns results, and keep collection creation documented in your deploy runbook.
Is this a good alternative to Statamic's default database search?
It is a strong fit when you want typo-tolerant, instant results and more relevant ranking than traditional database search provides. The trade-off is an external service dependency and an indexing pipeline you must provision and monitor. If you cannot operate a Typesense server or tolerate eventual index sync, Statamic's built-in search remains the simpler choice.
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.
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect