Typos, handled
Prefixes from three letters, one typo in short words and two in long ones. Exact matches still rank first.
Upload your catalog, add the browser SDK, and ship typo-tolerant search with facets and sorting this afternoon.
$ npm i @findlane/browser
Send products from your server, shape relevance in the dashboard, and search straight from the browser.
Push JSON from your server: up to 100,000 records in one request, or stage bigger catalogs in batches.
const products = client.index("products")await products.replaceAll(catalog)// searchable as soon as it's accepted
Pick searchable fields and weights, facets, filters and sorts. Typo tolerance is on from the start.
A public ID only answers on the origins you allow, so your storefront can call search directly.
pub_8f3kq2…RotateMisspellings, filters, sort orders and catalogs that change every night. The details are handled for you.
Prefixes from three letters, one typo in short words and two in long ones. Exact matches still rank first.
Facet on any field, including arrays like categories.name. Filter by exact values, lists or price ranges.
Define sorts in settings and choose one per search, or set a default for the whole index.
Stage a full replacement in batches of up to 1,000 records. Nothing changes until one commit, and every step is safe to retry.
Single-record writes carry the version you read. A stale write gets a 409, and an idempotency key makes retries safe.
Secret keys with search or write access, optionally locked to one index. Invite teammates as owners or members.
Search runs on Cloudflare's edge. Repeat searches come from the nearest location's cache, and every write moves the cache on to the new version.
for a repeat search, served from the nearest edge location
p50, measured from Tokyofor a full typo-tolerant query in the database
75k-record catalogto wait after a write. It's searchable when accepted
no reindex stepOne package runs on your server and keeps the catalog in sync. The other runs in the browser and only ever searches.
import { SearchServerClient } from "@findlane/server"const client = new SearchServerClient({ workspaceId: process.env.FINDLANE_WORKSPACE, apiKey: process.env.FINDLANE_WRITE_KEY,})const products = client.index("products")// Swap the whole catalog in one commitawait products.replaceAllStaged(allProducts, { stageId: "nightly-2026-09-29",})
import { SearchBrowserClient } from "@findlane/browser"const client = new SearchBrowserClient({ publicId: "pub_8f3kq2…" })const { hits, facets, total, tookMs } = await client.search({ q: "trail shoes", facets: ["brand.name", "size"], filters: { price: { gte: 80, lte: 160 } }, sort: "price-asc", })
Pay for records and searches. Every paid plan runs on a high-availability database with one primary and two replicas.
For trying it on a real catalog.
For a single store going live.
For a store with a team behind it.
For large and multi-brand catalogs.
Over your plan? $0.20 per 1,000 extra searches and $1 per 10,000 extra records. Each search-as-you-type request counts as a search.
50,000 records and 300,000 searches a month
List prices collected 28 Sep 2026 from official pricing pages. Typesense single-node starts at $29 without high availability.
Yes, with care. A public ID only answers on the origins you allow, you can limit which fields it returns, and you can rotate it at any time. Only upload fields you're happy for shoppers to see.
Plans go up to a million records, and one request can replace up to 100,000. Bigger catalogs upload in staged batches, and dedicated clusters go further.
Nothing, for shoppers. A staged replacement stays invisible until it commits, then the new catalog goes live in one step.
Yes, by default. Words match as prefixes from three letters, with one typo up to six letters and two beyond. Swapped letters and a wrong first letter count too.
Right away. A write is searchable as soon as it's accepted, with no reindex step, and cached results at the edge move to the new version within a few seconds.
Yes. The free plan includes 10,000 records and 10,000 searches a month, with the same API and SDKs as paid plans.
Upload a catalog, copy a public ID, and put search in your store today.