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.
PagefindFuse.jsMiniSearch
| Field | Pagefindpagefind.app | Fuse.jsfusejs.io | MiniSearchgithub.com |
|---|---|---|---|
| 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. | 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 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. |
| Category | Search, vector & RAG | Search, vector & RAG | Search, vector & RAG |
| Cost tier | free | free | free |
| Pricing | Free and MIT-licensed. No hosting cost — the index is static files served from the CDN you already pay for. | Free, Apache-2.0. No service, no account, no limits, no bill. | Free, MIT-licensed. No service or account. |
| 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. | 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. | 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. |
| Watch out for | It only indexes what is in your built HTML. Client-rendered content, authenticated pages and data fetched at runtime are invisible to it. | It scores every item on every keystroke, so it degrades noticeably past roughly 10K records. Use MiniSearch or a real index above that. | 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. |
| How to wire it up | npx pagefind --site dist | npm i fuse.js | npm i minisearch |
| 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 — Pagefind vs Fuse.js vs MiniSearch Source: Kbaise, a directory of tools that work with Lovable projects. Pick one and tell me why before writing any integration code. ## 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 ## 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 ## 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 ## 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=pagefind,fuse-js,minisearch