Instant search for static sites.

Static site generators produce fast, secure websites, but they have no server to run search queries. Sprigr compiles your content into a client-side search engine that searches entirely in the browser. Works with Hugo, Jekyll, Eleventy, Astro, and every other SSG.

Sub-10ms queries
No backend required
Handles 50K+ records
Works with every SSG
The back office

The static site search back office

Your content is compiled into a client-side search engine and served as a static file alongside your site. The lightweight search engine loads in the browser and executes queries locally in under 10 ms. No server, no API calls, no ongoing infrastructure. Dynamic content pushed via API updates the index without rebuilding your site.

  • Build-time push Sprigr
  • Compiled index Sprigr
  • Local search Sprigr
  • Dynamic updates Sprigr

You focus on the work. Sprigr runs the paperwork.

Works with every static site generator

If it outputs HTML, Sprigr can add search to it.

Hugo

Add the Sprigr script to your base template. Push content from a post-build script that reads your public/ directory or Hugo's JSON output format.

Jekyll

Include the script tag in your default layout. Use a Rake task or a GitHub Actions step to push your _site/ content to Sprigr after jekyll build.

Eleventy

Add an Eleventy afterBuild event that reads your collection data and pushes it to Sprigr. Drop the script into your base Nunjucks or Liquid layout.

Astro

Load Sprigr in your Astro layout with a <script> tag. It works alongside Astro's island architecture. The search component hydrates independently of your framework components.

Gatsby

Use Gatsby's onPostBuild hook or a CI step to push your GraphQL-sourced content to Sprigr. Add the script tag via gatsby-ssr.js or the HTML head API.

Docs frameworks

MkDocs, VitePress, Docusaurus, Starlight. Any framework that outputs HTML can take the Sprigr script tag. Push content from your build pipeline and the search index stays in sync.

How Sprigr works with static sites

Index your content at build time. Search happens client-side.

01

Push content at build time

Add a step to your build pipeline that sends your content to the Sprigr REST API. A simple curl command or a short script in your CI/CD workflow is all you need.

02

Sprigr compiles a search index

Your records are compiled into a compact compiled search index. A 10,000-page site typically produces a 1-5 MB keyword index. Indexes with semantic search enabled are larger. Large indexes are split into parallel-loaded shards.

03

Users search locally

Visitors load the search engine once. Every search query runs in the browser with sub-10 ms latency, typo tolerance, faceted filtering, and highlighted results. No network calls after the initial load.

Push your content to Sprigr as part of your existing build process. curl -X POST "https://search.sprigr.com/1/indexes/your-index-id/batch" -H "X-Sprigr-API-Key: $SPRIGR_API_KEY" -d @records.json. You can also push records programmatically from Node.js, Python, or any language that can make HTTP requests.

Read the integration docs →

Frequently asked questions

Which static site generators does Sprigr work with?

All of them. Hugo, Jekyll, Eleventy, Astro, Gatsby, Next.js static export, Pelican, Zola, MkDocs, VitePress, Docusaurus. If your SSG outputs HTML, you can add the Sprigr script tag and get instant search. The integration is framework-agnostic.

How does Sprigr handle content updates?

Push updated records to the Sprigr REST API. You can do this from your build pipeline, a CMS webhook, or the admin dashboard. Unlike build-time-only tools, Sprigr can accept new records at any time without requiring a full site rebuild.

Can Sprigr index dynamic content like user comments?

Yes. The Sprigr REST API accepts new records at any time. You can push user-generated content, new products, or any data source without rebuilding your static site. The search index is recompiled automatically and cached by the browser on the next visit.

How large can the search index be?

Sprigr handles indexes with tens of thousands of records. A typical 10,000-page documentation site produces a 1-5 MB keyword index, which loads in under a second on most connections. Indexes with semantic search enabled include vector embeddings and are larger. Large indexes are automatically split into parallel-loaded shards. The index is cached by the browser, so subsequent visits load instantly.

How does Sprigr compare to Lunr.js, Pagefind, and Algolia DocSearch?

Lunr.js is unmaintained and slows down on larger datasets. Pagefind indexes only at build time and can't handle dynamic content. Algolia DocSearch is free only for open-source docs and requires application approval. Sprigr has a permanent free tier (1,000 objects), handles dynamic content via REST API, and scales to tens of thousands of records with sub-10 ms queries.

Is Sprigr free for open-source projects?

Sprigr has a permanent free tier that includes 1,000 objects, 1 index, analytics, and unlimited search queries. There is no separate open-source tier. Everyone gets the same core features. Paid plans start at $49 per month for larger indexes.

Add search to your static site in five minutes.

Free forever for small projects. Paid plans from $49/mo.