Skip to content
SearchJet
React Search Library

Instant Search for React — Hooks, Components & TypeScript

AI-Powered Search for Modern React Applications

Add AI-powered search to any React app in minutes. useSearch hook, pre-built components, zero-config setup.

The Problem

React Search Options Are Limited

Building search in React means choosing between expensive SaaS, complex infrastructure, or months of custom development.

Algolia = Expensive + Complex

Algolia pricing scales aggressively as your user base grows, and the setup is more complex than most React projects need.

ElasticSearch = Infrastructure Nightmare

Self-hosted ElasticSearch requires DevOps expertise, dedicated servers, and ongoing maintenance that pulls your team away from product work.

Custom Solution = Months of Work

Building relevance, typo tolerance, faceting, and autocomplete from scratch takes months and rarely matches purpose-built search quality.

The Solution

SearchJet React SDK

Drop-in React components with full hooks, TypeScript, and zero-config defaults. Built for any React stack.

useSearch Hook

Headless hook that gives you full control over search state and UI. Wire it to any component, any design system.

Pre-built Components

SearchBox, Hits, Facets, Pagination — ready to drop in. Customize or replace any piece with your own components.

TypeScript First

Full generic types for your data shape. Autocomplete everywhere — from SearchProvider props to hit objects.

Zero Config

Works out of the box with sensible defaults. Customize when you need to, but never forced to configure.

Framework Agnostic

Works with Vite, Create React App, Next.js, Remix, Astro, or any React setup. One package, everywhere.

Tiny Bundle

<10KB gzipped, tree-shakeable. Only ships the code you actually use. No bloat, no performance hit.

Copy-Paste Integration

Two approaches — simple components or full control with hooks

Basic Hook Usage

SearchPage.tsx
// SearchPage.tsx
import { SearchProvider, SearchBox, Hits, Highlight } from '@searchjet/react';

export default function SearchPage() {
  return (
    <SearchProvider
      indexName="your_index"
      searchApiKey="your_search_api_key"
    >
      <SearchBox placeholder="Search anything..." />
      <Hits>
        {({ hit }) => (
          <article className="p-4 border-b">
            <h3>
              <Highlight attribute="title" hit={hit} />
            </h3>
            <p>
              <Highlight attribute="content" hit={hit} />
            </p>
          </article>
        )}
      </Hits>
    </SearchProvider>
  );
}

Full Component with UI

SearchWithFilters.tsx
// SearchWithFilters.tsx
import { useSearch, useHits, useFacets } from '@searchjet/react';

export function SearchWithFilters() {
  const { query, setQuery, isSearching } = useSearch();
  const { hits } = useHits();
  const { facets } = useFacets();

  return (
    <div className="flex gap-8">
      {/* Sidebar filters */}
      <aside className="w-64">
        {facets.map(facet => (
          <FacetGroup key={facet.name} facet={facet} />
        ))}
      </aside>

      {/* Results */}
      <main className="flex-1">
        <input
          type="text"
          value={query}
          onChange={(e) => setQuery(e.target.value)}
          placeholder="Search products..."
          className="w-full p-3 border rounded-lg"
        />
        {isSearching ? (
          <Spinner />
        ) : (
          hits.map(hit => (
            <ProductCard key={hit.objectID} hit={hit} />
          ))
        )}
      </main>
    </div>
  );
}

Need a complete starter project?

View GitHub Examples
Real-World Impact

Quantifiable Results

MetricBeforeAfterImpact
Time to Implement4-6 weeks2-3 days90% faster launch
Bundle Impact55KB (Algolia)<10KB gzipped82% smaller
Search Latency300-500ms<50ms6-10x faster
Annual Costs$600-3600 (Algolia)$0-228 (SearchJet)90% savings

Frequently Asked Questions

Everything you need to know about SearchJet for React

Does SearchJet work with React 18?
Yes, SearchJet is fully compatible with React 18 including concurrent features, Suspense boundaries, and streaming SSR. No hydration issues.
What React versions are supported?
React 16.8+ is required (hooks support). Works with Vite, Create React App, Next.js, Remix, Astro, and any React-based setup.
Is there a useSearch hook?
Yes, SearchJet provides useSearch, useHits, useAutocomplete, and useFacets hooks for fully custom implementations with your own UI.
Can I customize the UI completely?
Absolutely. The headless hooks let you build any UI from scratch. Pre-built components are included for speed, but every piece is replaceable.
Does it work with React Native?
The core hooks work with React Native, but the pre-built components are web-only. Use the hooks to build native search UIs.
How does it handle large datasets?
Search runs on external infrastructure, so dataset size doesn't affect your React bundle or client-side performance. Results stream in as users type.

Ready to Add Search to Your React App?

Join developers building exceptional search experiences with SearchJet

Already have an account? Log in

Related Use Cases