Skip to content
This repository has been archived by the owner on Feb 19, 2022. It is now read-only.


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Build Status


RRCHNM archived this repository in February 2022. Last actual code activity was May 2015. If you need more information or to unarchive this repository, please contact us at webmaster at


Serendip-o-matic connects your sources to digital materials located in libraries, museums, and archives around the world. By first examining your research interests, and then identifying related content in locations such as the Digital Public Library of America (DPLA), Europeana, and Flickr Commons, our serendipity engine helps you discover photographs, documents, maps and other primary sources.

Whether you begin with text from an article, a Wikipedia page, or a full Zotero collection, Serendip-o-matic's special algorithm extracts key terms and returns a surprising reflection of your interests. Because the tool is designed mostly for inspiration, search results aren't meant to be exhaustive, but rather suggestive, pointing you to materials you might not have discovered. At the very least, the magical input-output process helps you step back and look at your work from a new perspective. Give it a whirl. Your sources may surprise you.


Thanks to everyone who voted for us in the Digital Humanities Awards 2013. We won 'Best use of DH for fun'!

Serendi-o-matic was described as a 'cool discovery app for primary resources' and won 'Best New Mobile App' in the The Charleston Advisor's Fourteenth Annual Readers’ Choice Awards.

Installation notes for developers

Install pip if you don't have it: easy_install pip (or sudo easy_install pip)

(sudo) pip install -r requirements.txt

open question: do we want to use virtualenv?

Make a copy of smartstash/ named smartstash/ and fill in any required settings:

Add new python dependencies to requirements.txt as needed.

Installing the nltk stopwords corpus requires an additional step:

python -m nltk.downloader stopwords

Run syncdb to do initial database setup:

python syncdb

To start the local dev server:

python runserver