23 Jul

Weekly Update 111: Revisiting Goodies, Spices, Fatheads and Longtails

This is a copy of our weekly newsletter for developers which you can subscribe to here.

Hello contributors,

We're fast approaching 1,000 Instant Answers (IAs) (thank you!) so now seems like a good time to have a quick refresher on the four types of DuckDuckGo IAs and what they're for.

Firstly, if your Instant Answer is not looking up data from another website then you should be making a Goodie. They're the most common type and range from JavaScript-heavy utilities such as the timer or color picker, to conversion tools. Cheat sheets are a special type of Goodie that just require one JSON file.

Next is an easy one — if you're creating an Instant Answer that pulls data from another website's JSON API, then it should be a Spice. Some examples of a Spice include the programming syntax search and the Pokemon lookup. These are quite straightforward to develop and are a good next step after creating a cheat sheet.

Finally, it's possible to scrape data from another site to show snippets based on the user's search query. If you plan to create a kind of key-value index, for example article titles and article content, then a Fathead is the way to go. To create a more thorough index of all the content within pages of the external site, a Longtail is required.

We currently have a few Fatheads being worked on as part of the programming mission. We're also trying to make it easier to run and test Fatheads locally so hopefully we can use them more to make a bigger impact on giving users what they're looking for, fast.

We have plenty of documentation and tutorials for all these types of IAs, but if you're looking for specific suggestions for contributing, here are some ideas...

5-minute Fixes

  • Music Chords: A vs. A#

    A user has reported that the IA does not distinguish between A and A# chords. Perhaps you can fix it?

  • MediaWiki cheat sheet: Finish off

    This PR seems to have been abandonded but is so close to being ready! Could you finish it off with a new pull request?

More quick fix ideas here...

Weekend Warriors

More high priority fix ideas here...

IAs for Adoption

The following Instant Answers are looking for a maintainer — someone to moderate suggested changes from the community as well as address any issues that pop up in the future. If you'd like to step forward, please create an issue on GitHub using the button at the bottom of each IA page.

Quick Tip

Continuing with the JavaScript theme from last week, here are a couple of similar tools that should improve your code, especially if you use them repeatedly over a period of time. They're both called linters and tell you which parts of your code are not following best practices, even if the code actually works.


JSLint, created by Doug Crockford, is the original and comes with a warning that it "will hurt your feelings"! Even so, give it a try and be sure to take a look at the options, for example the check for code meant for a browser.


This is similar but seems to be more flexible, and can be customized to suit you or your team's coding guidelines. Like JSLint, this, too, can hurt your feelings but it's well worth it!

Lint originally means the fluff you find in the bottom of your pockets, and these tools are great for helping you remove the unnecessary fluff from your code.

And with that, we wish you all a happy weekend.

- The DuckDuckGo Staff

0 Tweet

This blog has been archived

Thank you for reading and contributing lively discussion to our blog! Read more posts about online privacy on our new blog at spreadprivacy.com.