
5.5k stars · MIT | [pagefind.app](https://pagefind.app) · v1.5.2 (2026-04-12) · Track this in Rising ↗
A search library that indexes a built static site and runs entirely in the browser.
Radar check
What we found when we opened it. Every bar is one fact, with its date.
Last code pushed 22 Oct 2026, 5 days before this check.
Latest release v1.5.2 on 12 Apr 2026.
Public since May 2022, a little over 4 years.
5,526 stars and 214 forks.
84 commits and 21 new issues in the last 90 days.
88 contributors. 84 pull requests merged in 90 days.
A security policy says how to report a problem. 1 published security advisory.
How the bars are scored
- Alive. Days since the last code push: a week or less 100, a month 90, three months 70, six months 50, a year 30, eighteen months 15, older 0.
- Releases. Age of the latest GitHub release, on a similar scale; no bar when the project publishes no releases.
- Maturity. Age of the project: eight years 100, five 90, three 70, two 55, one 40, six months 25, younger 10.
- Adoption. Stars on a log scale: 100,000 stars is 100, 10,000 is 80, 1,000 is 60, 100 is 40.
- Activity. Commits in the last 90 days: 300 or more 100, 100 85, 30 65, 10 45, any 25.
- Community. People who have contributed: 100 or more 100, 30 80, 10 60, 5 40, 2 25, one 10.
- Security. A published security policy 80, none 40; published advisories are listed, not scored.
Checked by Repo Radar on 25 Oct 2026 from the repository on GitHub. Covered in Edition 7.
▶Repo detailsthe review · specs · pros & cons · install
What it does
You run one command against the folder your site was built into. It reads the generated HTML, works out what the content of each page is, and writes a set of index fragments plus a small WebAssembly search engine — WebAssembly is a way of running compiled code inside a browser at near-native speed. At search time the browser fetches only the fragments that a particular query needs, so a large site costs a visitor tens of kilobytes rather than a whole index. A ready-made search interface ships with it, and there is a JavaScript interface for building a custom one. It supports filters, sorting, weighted content, multi-page sites in several languages, and indexing of non-HTML content through a separate mode. What it does not do is search anything that is not in the built output: data behind a login, records in a database, or a page published without a rebuild stays invisible until the next build.
Why it matters
Who it suits. Anyone with a documentation site, a blog or a handbook of more than a few dozen pages and no search at all, who does not want a hosted service in the path. It suits multilingual sites unusually well, because many static search tools handle anything other than English badly. Skip it if the content changes continuously outside the build, or if the thing people need to search is application data rather than pages.
Verdict. Worth an afternoon, and there is a second payoff that is easy to miss: what people type into a site's own search box is the clearest statement of what they expected to find. Wiring the query into an analytics event takes a few lines of code and produces a list nobody else in the market has. Edition 1 covered umami-software/umami for the analytics side of that. Version 1.5.2 of 12 April 2026 is current and code landed in October, and that release is worth knowing about if the build runs on an older Linux: 1.5.0 had an allocator problem that halved indexing speed on musl builds, and 1.5.2 fixes it. The project is also already the search engine inside Starlight, covered in Edition 4, so for a site built with that, extending the same search across the rest is configuration rather than a new dependency.
- MIT licensed, with no server, no service and no cost per search; the index is static files beside the pages.
- Multilingual support that treats languages other than English properly.
- A ready-made interface for a quick start and a JavaScript interface for a custom one.
- It indexes built output, so anything published outside a build is invisible until the next one.
- It cannot search an application's own data; that needs a database or a vector index instead.
- Capturing what people searched for needs a few lines of your own code — the second payoff is not automatic.
npx pagefind --site dist
