Every search, straight to the right product.

Upload your catalog, add the browser SDK, and ship typo-tolerant search with facets and sorting this afternoon.

$ npm i @findlane/browser

Search a real catalog in the playground

From catalog to search box in an afternoon.

Send products from your server, shape relevance in the dashboard, and search straight from the browser.

1

Send your catalog

Push JSON from your server: up to 100,000 records in one request, or stage bigger catalogs in batches.

sync.ts
const products = client.index("products")await products.replaceAll(catalog)// searchable as soon as it's accepted
2

Tune relevance, no deploy

Pick searchable fields and weights, facets, filters and sorts. Typo tolerance is on from the start.

Search intitle ×1.0brand.name ×0.5
Facetsbrand.namecategories.namesize
SortsPrice ↑Newest
TyposTolerate typos
3

Search from the browser

A public ID only answers on the origins you allow, so your storefront can call search directly.

Public IDpub_8f3kq2…Rotate
Allowed origins✓ shop.example.com
Returned fieldstitlepriceimage

Built for the way shoppers search.

Misspellings, filters, sort orders and catalogs that change every night. The details are handled for you.

Typos, handled

Prefixes from three letters, one typo in short words and two in long ones. Exact matches still rank first.

Facets and filters

Facet on any field, including arrays like categories.name. Filter by exact values, lists or price ranges.

Sorts you name once

Define sorts in settings and choose one per search, or set a default for the whole index.

Catalog swaps without gaps

Stage a full replacement in batches of up to 1,000 records. Nothing changes until one commit, and every step is safe to retry.

Writes that never clash

Single-record writes carry the version you read. A stale write gets a 409, and an idempotency key makes retries safe.

Keys and teammates

Secret keys with search or write access, optionally locked to one index. Invite teammates as owners or members.

Fast where your shoppers are.

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.

16ms

for a repeat search, served from the nearest edge location

p50, measured from Tokyo
5–9ms

for a full typo-tolerant query in the database

75k-record catalog
0s

to wait after a write. It's searchable when accepted

no reindex step
Shopperany browser
cache hit · 16 ms
Edge cachenearest Cloudflare location
only on a miss
Search enginetypos, facets, ranking
Your indexupdated on every write

Two small SDKs. Or plain HTTP.

One package runs on your server and keeps the catalog in sync. The other runs in the browser and only ever searches.

server · sync-catalog.ts
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",})
browser · search.ts
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",  })
  • Retries built in. Staged uploads resume with the same stage ID.
  • Keys stay server-side. The browser package only takes a public ID.
  • Typed results. Hits, totals, facet counts and timing in one response.

Pricing that grows with your catalog.

Pay for records and searches. Every paid plan runs on a high-availability database with one primary and two replicas.

Free

$0/month

For trying it on a real catalog.

  • 10,000 records
  • 10,000 searches a month
  • 1 index
  • 1 member
Start free

Starter

$19/month

For a single store going live.

  • 50,000 records
  • 150,000 searches a month
  • 3 indexes
  • 2 members
  • High-availability database
Choose Starter

Team

$49/month

For a store with a team behind it.

  • 150,000 records
  • 750,000 searches a month
  • 10 indexes
  • 5 members
  • High-availability database
Choose Team

Growth

$149/month

For large and multi-brand catalogs.

  • 500,000 records
  • 3M searches a month
  • 25 indexes
  • 15 members
  • High-availability database
Choose Growth
Scale · $299/month · 1M records · 10M searches · 50 indexes
Dedicated · from $599/month · your own cluster

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.

Same workload, list prices

50,000 records and 300,000 searches a month

Findlane Team
$49
Typesense Cloud, HA
$87
Meilisearch Build
$130
Algolia Grow
$145

List prices collected 28 Sep 2026 from official pricing pages. Typesense single-node starts at $29 without high availability.

Questions, answered.

Is it safe to search from the browser?

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.

How big can my catalog be?

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.

What happens while I re-upload everything?

Nothing, for shoppers. A staged replacement stays invisible until it commits, then the new catalog goes live in one step.

Does it handle typos?

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.

How fast do changes show up?

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.

Can I try it without paying?

Yes. The free plan includes 10,000 records and 10,000 searches a month, with the same API and SDKs as paid plans.

Start free with 10,000 products.

Upload a catalog, copy a public ID, and put search in your store today.