⚡️ Lightning-fast search for your apps, by Algolia
Switch branches/tags
Clone or download
Permalink
Failed to load latest commit information.
.github chore(issues): Update issue templates (#2912) May 15, 2018
dev docs(demo): add e-commerce demo (#3108) Sep 12, 2018
docgen Add missing plus sign. (#3206) Oct 17, 2018
functional-tests docs: IE11 support (example + mentions) (#3021) Jul 3, 2018
scripts ci(commit-msgs): correct the conditional detecting PRs Sep 14, 2018
src fix(InstantSearch): avoid useless search on addWidgets (#3178) Oct 5, 2018
.babelrc chore(dependency): Remove React occurrences in the codebase (#2395) Oct 2, 2017
.editorconfig chore(formatting): add .editorconfig (#2435) Oct 3, 2017
.eslintignore chore(eslint): ignore the correct files (#2326) Sep 11, 2017
.eslintrc.js chore(): Run prettier & upgrade eslint-config-algolia Jul 18, 2017
.gitignore feat(routing): provide a mechanism to synchronize the search (#2829) Apr 9, 2018
.npmignore docs(readme): Update logo (#3030) Jul 11, 2018
.nvmrc fix(nvmrc): upgrade nodejs version (#2291) Aug 21, 2017
.prettierrc chore: add .prettierrc (#3131) Sep 20, 2018
.sass-lint.yml chore(linting): target correct folder (#2566) Nov 20, 2017
.sauce.yml test(functional): add functional test stack and first tests Jan 27, 2016
.travis.yml ci(linting): make linting a separate step in the build matrix (#2889) Apr 16, 2018
.yarnrc fix(yarnrc): use empty string for save-prefix (#2739) Feb 15, 2018
CHANGELOG.md v2.10.2 Sep 10, 2018
CONTRIBUTING.md docs(contributing): fix dev-novel link on deploy (#3107) Sep 11, 2018
LICENSE docs(react-instantsearch): remove mentions of ris (#2094) Apr 4, 2017
README.md docs(demo): add e-commerce demo (#3108) Sep 12, 2018
index.es6.js fix(warning): make sure suggested import is possible (#3014) Jun 28, 2018
index.js chore(lint): update to latest eslint Jul 12, 2016
netlify.toml chore(doc): publishing v2 doc on /v2 May 17, 2017
package.json fix(deps) unpinned production dependencies Oct 9, 2018
postcss.config.js Upgrade building tools (#2240) Jul 18, 2017
yarn.lock fix(deps) unpinned production dependencies Oct 9, 2018

README.md

InstantSearch.js

InstantSearch.js is a library for building blazing fast search-as-you-type search UIs with Algolia.


Build Status Version License

InstantSearch.js is a vanilla JavaScript library that lets you create an instant-search result experience using Algolia’s search API. It is part of the InstantSearch family:

InstantSearch.js | React InstantSearch | Vue InstantSearch | Angular InstantSearch | React InstantSearch Native | InstantSearch Android | InstantSearch iOS

Table of contents

Why

You should be using InstantSearch if you want to:

  • Design search experiences with best practices
  • Customize your components at will
  • Remain independent from external frameworks

Getting started

Using InstantSearch.js is as simple as adding this JavaScript code to your page:

// 1. Instantiate the search
const search = instantsearch({
  appId: 'latency',
  apiKey: '6be0576ff61c053d5f9a3225e2a90f76',
  indexName: 'instant_search',
});

// 2. Create an interactive search box
search.addWidget(
  instantsearch.widgets.searchBox({
    container: document.querySelector('#searchBox'),
    placeholder: 'Search for products',
  })
);

// 3. Plug the search results into the product container
search.addWidget(
  instantsearch.widgets.hits({
    container: document.querySelector('#products'),
    templates: {
      item: '{{{_highlightResult.name.value}}}',
    },
  })
);

// 4. Make the brands refinable
search.addWidget(
  instantsearch.widgets.refinementList({
    container: document.querySelector('#brand'),
    attributeName: 'brand',
  })
);

// 5. Start the search!
search.start();

Preview
Edit on CodeSandbox

To learn more about the library, follow the getting started guide or check how to add it to your own project.

Documentation

The documentation is available at community.algolia.com/instantsearch.js.

Demos

E-commerce Media Travel
E-commerce demo preview Media demo preview Tourism demo preview

See more examples on the website.

Playground

You can get to know InstantSearch.js on this playground.

Start by adding widgets and tweaking the display. Once you feel familiar with the library, we recommend following the getting started guide.

Browser support

We support the last two versions of major browsers (Chrome, Edge, Firefox, Safari).

To support IE11, we recommend loading polyfill.io with the following URL https://cdn.polyfill.io/v2/polyfill.min.js?features=default,Array.prototype.includes

Contributing

We welcome all contributors, from casual to regular 💙

  • Bug report. Is something not working as expected? Send a bug report.
  • Feature request. Would you like to add something to the library? Send a feature request.
  • Documentation. Did you find a typo in the doc? Click on the edit this page button.
  • Development. If you don't know where to start, you can check the open issues that are tagged easy, the bugs or chores.

To start contributing to code, you need to:

  1. Fork the project
  2. Clone the repository
  3. Install the dependencies: yarn
  4. Run the development mode: yarn run dev
  5. Open dev-novel

Please read our contribution process to learn more.

We're hiring

Join the InstantSearch squad and help us build tools that will empower thousands of other developers.

Open positions:

License

InstantSearch.js is MIT licensed.