Skip to content


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


Python Version Django Version

Table of Contents

Running Locally

First, clone the repository to your local machine:

git clone

Install the requirements:

pip install -r requirements/dev.txt

Apply the migrations:

python migrate

Load the initial data:

python loaddata services.json

Finally, run the development server:

python runserver

The site will be available at

Supported Services

Currently Woid crawl the following services to collect top stories:

  • Hacker News hn
  • Reddit reddit
  • GitHub github
  • The New York Times nytimes
  • Product Hunt producthunt


You can run the crawlers manually to collect the top stories using the following command:

python crawl reddit

You can pass multiple services at once:

python crawl reddit hn nytimes

Valid values: hn, reddit, github, nytimes, producthunt.

The New York Times

To crawl The New York Times you will need an API key.

You can register one application at

Product Hunt

Product Hunt require an API key to consume their API.

You can register one application at

Cron Jobs

You can set up cron jobs to execute the crawlers periodically. Here is what my crontab looks like:

*/5 * * * * /home/woid/venv/bin/python /home/woid/woid/ crawl reddit hn producthunt >> /home/woid/logs/cron.log 2>&1
*/30 * * * * /home/woid/venv/bin/python /home/woid/woid/ crawl nytimes github >> /home/woid/logs/cron.log 2>&1


The source code is released under the Apache 2.0 license.