justquick/django-activity-stream

Generate generic activity streams from the actions on your site. Users can follow any actors' activities for personalized streams.

Python

2,437

902 commits

updated Dec 15, 2025

See the code

README

Django Activity Stream
======================

.. image:: https://github.com/justquick/django-activity-stream/actions/workflows/workflow.yaml/badge.svg
    :target: https://github.com/justquick/django-activity-stream/actions/workflows/workflow.yaml

.. image:: https://badges.gitter.im/django-activity-stream/Lobby.svg
   :alt: Join the chat at https://gitter.im/django-activity-stream/Lobby
   :target: https://gitter.im/django-activity-stream/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge

.. image:: https://coveralls.io/repos/github/justquick/django-activity-stream/badge.svg?branch=master
    :target: https://coveralls.io/github/justquick/django-activity-stream?branch=master

.. image:: https://scrutinizer-ci.com/g/justquick/django-activity-stream/badges/quality-score.png?b=master
    :target: https://scrutinizer-ci.com/g/justquick/django-activity-stream/

.. image:: https://img.shields.io/pypi/v/django-activity-stream.svg
    :target: https://pypi.python.org/pypi/django-activity-stream



What is Django Activity Stream?
===============================

Django Activity Stream is a way of creating activities generated by the actions on your site.

It is designed for generating and displaying streams of interesting actions and can handle following and unfollowing of different activity sources.
For example, it could be used to emulate the Github dashboard in which a user sees changes to projects they are watching and the actions of users they are following.

Action events are categorized by four main components.

 * ``Actor``. The object that performed the activity.
 * ``Verb``. The verb phrase that identifies the action of the activity.
 * ``Action Object``. *(Optional)* The object linked to the action itself.
 * ``Target``. *(Optional)* The object to which the activity was performed.

``Actor``, ``Action Object`` and ``Target`` are `GenericForeignKeys <https://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/#django.contrib.contenttypes.fields.GenericForeignKey>`_ to any arbitrary Django object and so can represent any Django model in your project.
An action is a description of an action that was performed (``Verb``) at some instant in time by some ``Actor`` on some optional ``Target`` that results in an ``Action Object`` getting created/updated/deleted.

For example: `justquick <https://github.com/justquick/>`_ ``(actor)`` *closed* ``(verb)`` `issue 2 <https://github.com/justquick/django-activity-stream/issues/2>`_ ``(object)`` on `django-activity-stream <https://github.com/justquick/django-activity-stream/>`_ ``(target)`` 12 hours ago

Nomenclature of this specification is based on the Activity Streams Spec: `<http://activitystrea.ms/>`_

For complete documentation see `Django Activity Stream Documentation <http://django-activity-stream.rtfd.io/en/latest/>`_



Contributors

------------

This project exists thanks to all the people who contribute!

.. image:: https://opencollective.com/django-activity-stream/contributors.svg?width=890&button=false

Not written in Markdown, so it's shown here as plain text — view it formatted on GitHub.

justquick/django-activity-stream

Generate generic activity streams from the actions on your site. Users can follow any actors' activities for personalized streams.

Python

2,437

902 commits

updated Dec 15, 2025

See the code

README

Django Activity Stream
======================

.. image:: https://github.com/justquick/django-activity-stream/actions/workflows/workflow.yaml/badge.svg
    :target: https://github.com/justquick/django-activity-stream/actions/workflows/workflow.yaml

.. image:: https://badges.gitter.im/django-activity-stream/Lobby.svg
   :alt: Join the chat at https://gitter.im/django-activity-stream/Lobby
   :target: https://gitter.im/django-activity-stream/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge

.. image:: https://coveralls.io/repos/github/justquick/django-activity-stream/badge.svg?branch=master
    :target: https://coveralls.io/github/justquick/django-activity-stream?branch=master

.. image:: https://scrutinizer-ci.com/g/justquick/django-activity-stream/badges/quality-score.png?b=master
    :target: https://scrutinizer-ci.com/g/justquick/django-activity-stream/

.. image:: https://img.shields.io/pypi/v/django-activity-stream.svg
    :target: https://pypi.python.org/pypi/django-activity-stream



What is Django Activity Stream?
===============================

Django Activity Stream is a way of creating activities generated by the actions on your site.

It is designed for generating and displaying streams of interesting actions and can handle following and unfollowing of different activity sources.
For example, it could be used to emulate the Github dashboard in which a user sees changes to projects they are watching and the actions of users they are following.

Action events are categorized by four main components.

 * ``Actor``. The object that performed the activity.
 * ``Verb``. The verb phrase that identifies the action of the activity.
 * ``Action Object``. *(Optional)* The object linked to the action itself.
 * ``Target``. *(Optional)* The object to which the activity was performed.

``Actor``, ``Action Object`` and ``Target`` are `GenericForeignKeys <https://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/#django.contrib.contenttypes.fields.GenericForeignKey>`_ to any arbitrary Django object and so can represent any Django model in your project.
An action is a description of an action that was performed (``Verb``) at some instant in time by some ``Actor`` on some optional ``Target`` that results in an ``Action Object`` getting created/updated/deleted.

For example: `justquick <https://github.com/justquick/>`_ ``(actor)`` *closed* ``(verb)`` `issue 2 <https://github.com/justquick/django-activity-stream/issues/2>`_ ``(object)`` on `django-activity-stream <https://github.com/justquick/django-activity-stream/>`_ ``(target)`` 12 hours ago

Nomenclature of this specification is based on the Activity Streams Spec: `<http://activitystrea.ms/>`_

For complete documentation see `Django Activity Stream Documentation <http://django-activity-stream.rtfd.io/en/latest/>`_



Contributors

------------

This project exists thanks to all the people who contribute!

.. image:: https://opencollective.com/django-activity-stream/contributors.svg?width=890&button=false

Not written in Markdown, so it's shown here as plain text — view it formatted on GitHub.

Project health

Overall

4.3/10

Maintained

0/10

Code review

7/10
OpenSSF Scorecard

Latest release

2.0.0 · Oct 4, 2023

Releases this year

0

Significant stargazers

Carl Meyer

1,020 followers · starred Feb 2010

Ionel Cristian Mărieș

517 followers · starred Feb 2022

Stephen Finucane

127 followers · starred Oct 2016

Eric Holscher

1,426 followers · starred Feb 2010