Head to head
Stop guessing which one. Put them side by side.
Up to 4 tools, same rows for each: what it is, what it really costs, the trap, and how to wire it up. The URL carries your picks — send it to anyone.
MiniSearchFuse.jsPagefind
| Field | MiniSearchgithub.com | Fuse.jsfusejs.io | Pagefindpagefind.app |
|---|---|---|---|
| What it is | A dependency-free JavaScript full-text search engine that builds a real inverted index in memory, in the browser or in Node. Supports prefix search, fuzzy matching, field boosting, modern relevance ranking, auto-suggestion, and adding or removing documents at any time. The index serializes to JSON so it can be prebuilt. | A zero-dependency fuzzy-search library using the Bitap algorithm — roughly 6.8kB gzipped for the basic build, 8.6kB for the full one. Searches arrays of JS objects in memory with typo tolerance, field weighting, nested keys and extended query operators. Runs in browsers, Node and Deno. | A Rust CLI that crawls your built HTML after a static site generator runs, then writes a chunked search index and JS bundle into your output folder. Browsers fetch only the chunks a query needs — full-text search across a 10,000 page site in under 300kB of total payload. |
| Category | Search, vector & RAG | Search, vector & RAG | Search, vector & RAG |
| Cost tier | free | free | free |
| Pricing | Free, MIT-licensed. No service or account. | Free, Apache-2.0. No service, no account, no limits, no bill. | Free and MIT-licensed. No hosting cost — the index is static files served from the CDN you already pay for. |
| Why builders pick it | The step up from Fuse.js when you have tens of thousands of records — a proper index instead of rescoring every item per keystroke, still with no backend and no bill. | When a few hundred to a few thousand items already sit in your app state — a command palette, a settings list, a filterable table — this is ten lines of code and no infrastructure. | Zero backend, zero API key, zero monthly bill. Point it at dist/ and you have working site search with prebuilt UI web components — ideal for Astro, Hugo, Eleventy or a Next static export. |
| Watch out for | The whole index ships to the client, so a large corpus means a large download. Prebuild and cache the serialized JSON rather than indexing on every page load. | It scores every item on every keystroke, so it degrades noticeably past roughly 10K records. Use MiniSearch or a real index above that. | It only indexes what is in your built HTML. Client-rendered content, authenticated pages and data fetched at runtime are invisible to it. |
| How to wire it up | npm i minisearch | npm i fuse.js | npx pagefind --site dist |
| Editor's pick | No | No | No |
Which one did you ship?
The grid says what these tools are. This says what builders did about it — one decision per person, changeable whenever you change your mind.
0/280Sign in to add yours.
Or try
Hand this to your Lovable agent
# Tool comparison — MiniSearch vs Fuse.js vs Pagefind Source: Kbaise, a directory of tools that work with Lovable projects. Pick one and tell me why before writing any integration code. ## MiniSearch (minisearch) - URL: https://github.com/lucaong/minisearch - Category: Search, vector & RAG - Cost: free — Free, MIT-licensed. No service or account. - What it is: A dependency-free JavaScript full-text search engine that builds a real inverted index in memory, in the browser or in Node. Supports prefix search, fuzzy matching, field boosting, modern relevance ranking, auto-suggestion, and adding or removing documents at any time. The index serializes to JSON so it can be prebuilt. - Why builders pick it: The step up from Fuse.js when you have tens of thousands of records — a proper index instead of rescoring every item per keystroke, still with no backend and no bill. - Trap: The whole index ships to the client, so a large corpus means a large download. Prebuild and cache the serialized JSON rather than indexing on every page load. - Wiring: npm i minisearch - Full dossier: /api/public/tools/minisearch ## Fuse.js (fuse-js) - URL: https://www.fusejs.io - Category: Search, vector & RAG - Cost: free — Free, Apache-2.0. No service, no account, no limits, no bill. - What it is: A zero-dependency fuzzy-search library using the Bitap algorithm — roughly 6.8kB gzipped for the basic build, 8.6kB for the full one. Searches arrays of JS objects in memory with typo tolerance, field weighting, nested keys and extended query operators. Runs in browsers, Node and Deno. - Why builders pick it: When a few hundred to a few thousand items already sit in your app state — a command palette, a settings list, a filterable table — this is ten lines of code and no infrastructure. - Trap: It scores every item on every keystroke, so it degrades noticeably past roughly 10K records. Use MiniSearch or a real index above that. - Wiring: npm i fuse.js - Full dossier: /api/public/tools/fuse-js ## Pagefind (pagefind) - URL: https://pagefind.app - Category: Search, vector & RAG - Cost: free — Free and MIT-licensed. No hosting cost — the index is static files served from the CDN you already pay for. - What it is: A Rust CLI that crawls your built HTML after a static site generator runs, then writes a chunked search index and JS bundle into your output folder. Browsers fetch only the chunks a query needs — full-text search across a 10,000 page site in under 300kB of total payload. - Why builders pick it: Zero backend, zero API key, zero monthly bill. Point it at dist/ and you have working site search with prebuilt UI web components — ideal for Astro, Hugo, Eleventy or a Next static export. - Trap: It only indexes what is in your built HTML. Client-rendered content, authenticated pages and data fetched at runtime are invisible to it. - Wiring: npx pagefind --site dist - Full dossier: /api/public/tools/pagefind ## Rules 1. Prefer the free tier when no budget was stated, and say what the ceiling is. 2. Read the full dossier before integrating. 3. Fetch /api/public/models before writing any AI model ID.
Agents can fetch the same thing: GET /api/public/compare?slugs=minisearch,fuse-js,pagefind