OpenSearch

I search online every day. I search on Google, StackOverflow, GitHub, Maven Central, Gradle Plugins repository, YouTube and dozen of other sites. And, I won’t deny, sometimes I search on Pornhub.

I bet you search too.

If you are a lucky Google Chrome (and, probably, Chromium) user, you may noticed that it detects search inputs and forms on the sites you visit once you have searched them. It looks like this:

When you start typing the site you’ve used to search before Chrome offers you to search it again quickly by pressing Tab. If you do so, Chrome will use a site specific search URL that it detected earlier and bypass your browser’s search engine. It’s very convenient and saves some time.

However, a few months ago I’ve switched to the Firefox and it is not that smart. Firefox does not detect search forms on sites, it only supports OpenSearch descriptors. Sites can advertise OpenSearch descriptors via HTML link tags to Firefox so users can install new search engines easily.

That’s it: you have to do it manually in Firefox.

Many sites actually have those descriptors. Kudos to them:

But not all:

WTF, Pornhub?

There is an online OpenSearch XML generator and it works great but has a flaw: generated OpenSearch descriptors are available only to those who generated them. I.e. if you have generated an OpenSearch descriptor for, let’s say, npmjs.org (yeah, they don’t have it), it is installed only in your browser. Moreover, Firefox sync does not sync search engines across your devices, so you’ll have to repeat it for every site you want to search on every device you use.

I decided to put my OpenSearch descriptors on GitHub: madhead/awesome-opensearch (actually a mirror of the GitLab repo):

  • It’s a perfect application of DRY principle: once I’ve created a descriptor it’s a matter of a few clicks to add it to any browser at any time.

  • Sharing is caring. Anyone can reuse any descriptor with the same few clicks!

The list of available descriptors is short, but I hope to support more sites with the help of your pull requests. If you don’t want to bother with OpenSearch descriptors, Git, Pull Request and all that stuff, but still want to have a search plugin — don’t hesitate to propose a site by submitting an issue. Or drop me a message if you don’t have a GitLab / GitHub account.

Thank you for staying to the end and I wish you the very best of luck in every your search!