Ephemeral (read: temporary) messaging with email addresses
JavaScript Python
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



An experiment with ephemeral messaging using email addresses.

Documentation and API Specs

Currently we are working on version 1.0. View the documentation

How it works

  • Sender creates a message and provides the receiver email address
  • Message sits in the server waiting to be read
  • When the receiver signs in using Persona and their email matches the receiver address they get a list of unread messages
  • Once the receiver views the message, it is deleted from the server

Possible features

  • Allow unread messages to die after a certain period of time
  • Encryption considerations (probably not necessary as someone who wants to encrypt can just paste the encrypted block into the message area. If they are that paranoid and want to still use the system. I mean, just use something else for now then, sheesh.)


mkvirtualenv detour

pip install -r requirements.txt

cp detour/settings.py-local detour/settings.py

Setting up nunjucks

This will allow you to compile your templates for production

To read more about nunjucks, check out the documentation

Install node

npm install

Download nunjucks and add it to detour/static/js/lib/nunjucks.js

If you are on development mode, use nunjucks-dev.js

If you are on production and have precompiled your templates, use nunjucks-min.js

Precompiling templates for nunjucks

In development mode, make sure detour/static/js/templates.js only has the following: define(function() {});

In production mode, run the following:

node_modules/nunjucks/bin/precompile detour/static/templates > detour/static/js/templates.js

Minifying files with Grunt


Configure client-side settings

If you need to override detour/static/js/settings.js, create detour/static/js/local_settings.js and return the new values. For example:

  function () {

  'use strict';

  return {
    DEBUG: true

Creating the database

Copy the following steps to set up and create the initial database::

cd detour
./migration.py version_control
./migration.py upgrade

Run the app

python detour/app.py


In the top level of the project, run the following