Build fast Nuxt search with Algolia.
SSR-first Algolia InstantSearch for Nuxt with declarative widgets, multi-index isolation, and strong vue-instantsearch parity — without sacrificing control.
One module, zero boilerplate
Add
@atoms-studio/nuxt-swiftsearch to your Nuxt config and you're ready to go. SSR, hydration, and widget registration are handled automatically — no manual setup required.nuxt.config.ts
export default defineNuxtConfig({
modules: ["@atoms-studio/nuxt-swiftsearch"],
});
SSR-first by default
AisInstantSearch owns widget registration, so SSR output and hydration remain deterministic. Your search results render on the server and hydrate seamlessly on the client — great for SEO and perceived performance.Declarative widgets
Author
<AisHits />, <AisSearchBox />, <AisRefinementList />, and 30+ other widgets directly in your Vue templates. No imperative API calls, no widget factories — just components.Multi-index isolation
Use explicit
indexId scoping to query multiple Algolia indices side by side without state leakage. Perfect for autocomplete, federated search, or dashboards with independent search contexts.Nuxt-native URL sync
useAisRouter() keeps query, filters, and pagination in route state. Users can share search URLs, use the back button naturally, and your search state survives page reloads.36 of 37 widgets — near-complete vue-instantsearch parity
Swiftsearch mirrors the full vue-instantsearch widget catalog. From
AisHits and AisRefinementList to AisDynamicWidgets and AisVoiceSearch, the API surface matches upstream so migration is straightforward.Swiftsearch tracks
vue-instantsearch@4.24.3 parity.36 of 37 upstream widgets are implemented with equivalent behavior.
AisInstantSearchSsr is intentionally merged into AisInstantSearch in Swiftsearch — one component handles both SSR and client rendering.