Meilisearch, Typesense, Elasticsearch and Visor, hosted
Search that sleepsuntil someone searches.
No server to run. An idle Meilisearch, Typesense or Visor index sleeps and uses no compute. The next search wakes it, typically in a fraction of a second.
Free plan: no card, a hard cap, never a bill.
Median wake from sleep, measured in production over the last 30 days
Every wake time, p95 included- Visor
- 150 msSleeps when idle
- Typesense
- 65 msSleeps as a memory snapshot
- Meilisearch
- 168 msSleeps when idle
- Elasticsearch
- Always onIt doesn't sleep
How it works
Asleep while nobody searches. Awake when someone does.
- 01
A search wakes it.
Headband holds the request, starts the engine and answers. Median wakes in production: 150 ms on Visor, 65 ms on Typesense and 168 ms on Meilisearch. - 02
Busy, it stays awake.
Later searches go straight to the running engine until it goes quiet again. Or switch it to Always on, and it never sleeps. - 03
Quiet for five minutes, it sleeps.
The engine stops. Its data stays where it is, and a sleeping engine uses no compute. Set the quiet time per engine, from a minute to a day.
What the film shows
- In the dashboard, a Meilisearch index named movies is created and seeded with 20 sample movies.
- Five quiet minutes later, the Engines page shows the engine as Sleeping.
- A search for "galactic" in the playground wakes it and returns "Galactic Horizons". The engine page lists the wake: a warm start, served, ready in 195 ms.
- The engine is switched to Always on. The confirmation says what changes, including a standby on a second server.
- About 40 seconds later, the engine page shows "Standby: ready on ewr1-a, up to date."
01Free
Free that stays free.
Sign up with GitHub or Google. There's no card to enter, so there's nothing to charge. Free has a hard cap: it can't send you a bill, and reaching its limits never deletes your data.
What each plan includes- Card to sign up
- None.
- Searches
- 25,000 searches a month, then 1 a second.
- Stored data
- 100 MB of stored data.
- Engines
- Sleeping Meilisearch, Typesense and Visor: one of each at 512 MB.
- Over the limits
- No overage. Free never sends a bill.
- Your data
- Kept. A limit or a quiet month never deletes it.
02Production
Production when you need it.
When search becomes something your users count on, switch its engine to Always on. It stops sleeping, so no search waits for a wake.
On a paid plan, an always-on Meilisearch, Elasticsearch or Visor engine keeps a live copy on our second server. For Visor that takes version 0.1.3 or later, which every new Visor engine runs. If its server fails, searches move to the copy within seconds. Writes come back in about 2 to 3 minutes, when the copy's server takes over. Nobody has to do anything.
On Pro and Scale, a busy always-on Meilisearch, Elasticsearch or Typesense engine also gets more CPU when traffic spikes, up to four times what its size comes with. It is on by default, with a monthly cap you set.
What the copy covers, and what it doesn't9,177 of 9,177
87 to 336
04:16 UTC
One of our two servers loses its network.
04:18 UTC
Failover moves its engines to the other server by itself. Eight always-on engines take over from their live copies.
Since November 7
api.headband.dev runs on both servers behind a health-checked load balancer.
03Your client
Your engine, your client.
Headband serves each engine's own API, untranslated. Keep the Meilisearch, Typesense or Elasticsearch client you already use, and change two things: the host and the key.
- Pick the engine per index. A catalog on Meilisearch and autocomplete on Typesense, side by side, under one key per environment.On Wayfair's public product-search benchmark, no engine was best at everything. Elasticsearch ranked whole queries best. With one setting changed, Typesense ranked half-typed ones best. That is why Headband lets you pick one per index.
- Search for every preview deploy. headband branch ensure forks a branch's Meilisearch and Elasticsearch engines in seconds, so each preview gets its own copy of search.
- About a millisecond. At the median, api.headband.dev adds about a millisecond or less over calling a Meilisearch, Typesense or Visor engine directly, measured on our servers. From a server on the US East Coast, a search through api.headband.dev/v1 answers in 13 to 22 ms at the median, depending on the engine.
meilisearch (Node)
import { Meilisearch } from "meilisearch"; const host = "https://api.headband.dev"; const client = new Meilisearch({ host: `${host}/meilisearch`, apiKey: process.env.HEADBAND_API_KEY,}); const { hits } = await client .index("movies") .search("wonder");typesense (Node)
import Typesense from "typesense"; const client = new Typesense.Client({ nodes: [{ host: "api.headband.dev", port: 443, protocol: "https", path: "/typesense", }], apiKey: process.env.HEADBAND_API_KEY,}); const { hits } = await client .collections("movies") .documents() .search({ q: "wonder", query_by: "title", });@elastic/elasticsearch@8 (Node)
import { Client } from "@elastic/elasticsearch"; const host = "https://api.headband.dev"; const client = new Client({ node: `${host}/elasticsearch`, auth: { apiKey: process.env.HEADBAND_API_KEY, },}); const result = await client.search({ index: "movies", query: { match: { title: "wonder" } },});.env
SCOUT_DRIVER=meilisearchMEILISEARCH_HOST=https://api.headband.dev/meilisearchMEILISEARCH_KEY=hb_adm_...The engines
Every retrieval job has a best engine. Run them side by side.
- 01
Meilisearch
For catalogs and your first index.
Typo tolerance is on by default, and every setting applies to a live index.
Sleeps when idle. Median wake: 168 ms.
- 02
Typesense
For autocomplete and search-as-you-type.
Set the schema once and it stays out of the way.
Sleeps when idle. Median wake: 65 ms.
- 03
Elasticsearch
For documents and large corpora.
Native vectors with kNN, fused with keyword results by Headband, on the free license.
Runs always on. It doesn't sleep.
- 04
Visor
For search boxes that take short and long queries.
ZVN's own engine, run by Headband. One index answers as-you-type in instant mode and long queries with BM25F retrieval, picked per request.
Sleeps when idle. Median wake: 150 ms.
Moving an index to another engine is a reindex, not a rewrite. Bring your own Meilisearch, Typesense or Elasticsearch when an index has to stay in your infrastructure.
Also in the box
From the terminal to your first search.
Create an index, push documents and search, or call the REST API directly. Search keys are safe in the browser; admin keys stay on your server.
Postgres sync is in early access. Ask for it.
Terminal
$ npm install -g @headband/cli$ headband login$ headband indexes create products \ --engine meilisearch$ headband docs push products.json \ --index products$ headband search products "red wine"MCP server
Add Headband to Claude Code with one command. Over MCP an agent can search and read, and cannot change anything, whatever the key. One MCP call searches up to ten indexes, across engines.
One REST API
The same search, filters and keys on all four engines, if you'd rather not learn each one.
React SDK
Search UI components for the browser, on a search key that is safe to ship.
Integrations
Laravel Scout and Rails, a search fork for every Vercel preview, the CLI and Postgres Sync.
Pricing
Start free. Pay when it's production.
Free never asks for a card. Paid plans add always-on RAM, a warm standby for Meilisearch, Elasticsearch and current Visor engines, and more searches and storage. Usage above what a plan includes is billed at its rates.
Free
$0a month
For side projects and prototypes
- Sleeping Meilisearch, Typesense and Visor: one of each at 512 MB
- 25,000 searches a month, then 1 a second
- 100 MB of stored data
Starter
$12a month
For a small production app
- All 4 engines, as many as you need
- 250,000 searches a month
- 250 MB of stored data
Pro
$69a month
For growing products
- All 4 engines, as many as you need
- 2M searches a month
- 2 GB of stored data
Scale
$249a month
For busy production search
- All 4 engines, as many as you need
- 20M searches a month
- 10 GB of stored data
Start free.
No card, a hard cap, never a bill. Free to start. Paid plans from $12 a month.
Moving from Algolia? Read the migration guide.