Search

The Electron website has a new search engine that delivers instant results for
API docs, tutorials, Electron-related npm packages, and more.

Learning a new technology or framework like Electron can be intimidating.
Once you get past the quick-start phase, it can
be difficult to learn best practices, find the right APIs, or discover the tools
that will help you build the app of your dreams. We want the Electron website to
be a better tool for finding the resources you need to build apps faster and
more easily.

Visit any page on electronjs.org and you'll find the
new search input at the top of the page.

When we first set about adding search to the website, we rolled our own
search engine using GraphQL as a backend. GraphQL was fun to work with and
the search engine was performant, but we quickly realized that building a search
engine is not a trivial task. Things like multi-word search and typo detection
require a lot of work to get right. Rather than reinventing the wheel,
we decided to use an existing search solution: Algolia.

Algolia is a hosted search service that has quickly become the
search engine of choice among popular open source projects like
React, Vue, Bootstrap, Yarn, and many others.

Here are some of the features that made Algolia a good fit for the Electron project:

Sometimes you know what you want to accomplish, but you don't know exactly
how to do it. Electron has over 750 API methods, events, and properties.
No human can easily remember all of them, but computers are good at this stuff.
Using Electron's JSON API docs,
we indexed all of this data in Algolia, and now you can easily find
the exact API you're looking for.

Trying to resize a window? Search for resize and jump straight to the method you need.

There are now over 700,000 packages in the npm registry and it's not
always easy to find the one you need. To make it easier to discover these modules,
we've created electron-npm-packages, a collection of the 3400+ modules in
the registry that are built specifically for use with Electron.

The folks at Libraries.io have created SourceRank,
a system for scoring software projects based on a combination of metrics like
code, community, documentation, and usage. We created a sourceranks
module that includes the score of every module in the npm registry, and we
use these scores to sort the package results.

If you've used GitHub's code search before,
you're probably aware of its colon-separated key-value filters like
extension:js or user:defunkt. We think this filtering technique is pretty
powerful, so we've added an is: keyword to Electron's search that lets you
filter results to only show a single type:

People love keyboard shortcuts! The new search can be used without taking
your fingers off the keyboard:

/ focuses the search input

esc focuses the search input and clears it

down moves to the next result

up moves to the previous result, or the search input

enter opens a result

We also open-sourced the module
that enables this keyboard interaction. It's designed for use with Algolia InstantSearch,
but is generalized to enable compatibility with different search implementations.