Skip to content
An experimental variation on a rich social messaging app for Django
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



It's a generic platform for topical discussions, with some unique characteristics:

  • Arbitrary content types: You can sculpt your discussion system to use more than just your typical "messages". See the example app for just a smidgen of what's possible.
  • Arbitrary participants: Your discussions can include any Django model object as a participant, not just User. For example, you could add an object representing a team of users. Or, you could add a Site object to represent discussions generated by a bot.
  • Fluid participants: You can sculpt your discussion system to allow your participants to come and go from discussions as they please. For example, Alice could initiate a discussion with Bob, who then adds Clara for further discussion; Bob, merely playing the "connector" role between Alice and Clara, could then leave or archive the discussion.

It's named after the Olympic goddess of messaging and rainbows.

It looks great with ponies.


In a virtualenv:

$ pip install -e 'git+'

From the root of your new django-iris repository clone:

$ pip install -r requirements.txt

Running tests

From the root of your django-iris repository clone:

$ iris/tests/ test iris

Running example project

From the root of your django-iris repository clone:

$ pip install -r iris/example/requirements.txt


This will install pyquery, which in turn relies on lxml. Please visit if you run into problems installing it.

$ iris/example/ syncdb --migrate --noinput
$ iris/example/ runserver

Now visit URLs for users in separate browser tabs or windows to experiment.

Visit http://localhost:8000/iris/ to view the anonymous user experience.

Visit http://localhost:8000/iris/?u=alice to simulate signing in as the user "alice". Other users include "bob", "carla", and "doug".

Be sure to look at iris.example.backends.ContrivedBackend to see an example of restricting the viewing of individual topics by users based on arbitrary criteria.

You can’t perform that action at this time.