DuckDuckGo: A New Search Engine Built from Open Source
DuckDuckGo is a new search engine focused on relevant results and respecting user privacy. Actually a mash-up of several other sites like Wikipedia, About, Bing, and Yahoo, DuckDuckGo also uses it's own web crawler: the DuckDuckBot. DuckDuckGo uses what it calls Zero-click search results to try to guess what you are looking for and give it to you directly in your search results. I've been using DuckDuckGo for a few weeks now, and I'm impressed. What further impresses me is that the entire site is built on open source tools, ranging from FreeBSD for the operating system to good old-fashioned Perl for the logic.
According to DuckDuckGo's developer, Gabriel Weinberg, the stack looks like this:
- Web Server: Nginix
- Cache: Memcached and Solr
- Database: PostgreSQL
- Primary Language: Perl
- Operating System: FreeBSD for the main site or Ubuntu for Amazon EC2 failover images
It's like the evolution of the LAMP stack that has served so many sites so well for many years. Too bad there isn't a snappy acronym like LAMP for it. Maybe we can call it the Duck stack.
The search results from DuckDuckGo are clean and easy to read. More importantly, the results are generally just as accurate as a similar search with Google, if not more. DuckDuckGo also makes a point of not collecting any user data. When you do a search in Google, a lot of personally identifiable information is recorded and stored for an indefinite period of time. Google has come under attack by privacy advocates for its stance on the subject, but DuckDuckGo easily sidesteps the issue by making a point of collecting data anonymously from the start.
By far my favorite feature of DuckDuckGo is how hacker friendly it is. You can navigate search results using vi key bindings. I'm a long time vi user, so much so that the h, j, k, and l keys are memorized in the muscle of my fingers. I don't even have to think about navigating through the DuckDuckGo search results, and I don't have to lift my hands from the keyboard to use the mouse. Awesome. I did notice one small point of concern when using Firefox though. To start a new search, you can hit the forward slash (/), which is also a shortcut in Firefox to search for text in the current page. This bugged me a bit, until I realized that you could also start a new search using the h key. The best shortcut is using the v key to open new tabs for each search result in the background. Firefox needs a little tweaking to do this right, but changing the "browser.tabs.loadDivertedInBackground" key to "true" in about:config does the trick.
DuckDuckGo has a lot of great features, and I've just barely scratched the surface here. There are addons for Firefox, an iPhone and iPad app, and several other goodies available. DuckDuckGo is proof that the barrier to entry for a developer is lower now than ever before. The combined power of open source tools and cloud services like Amazon EC2 has brought the price of entry for a new web service down from thousands of dollars worth of hardware to nearly nothing. DuckDuckGo, run by a single developer, is competing with a company of thousands, and is doing a great job of it.