Skip to main content
Help us improve Python packaging – donate today!

A liveblogging solution for Plone.

Project Description

Life, the Universe, and Everything

A liveblog is a blog post which is intended to provide a rolling textual coverage of an ongoing event.

A liveblog is continuously updated with timestamped micro-updates which are placed above previous micro-updates.

Typical use case is the following:

  • The publisher of a news site creates a liveblog
  • Editors add micro-updates to the liveblog as the event goes on
  • Visitors of the site on the liveblog get micro-updates automatically via AJAX calls

Mostly Harmless

Travis CI badge Coveralls badge Downloads

Todo list

  • Use fuzzy dates
  • Prettify the prepend of micro-updates
  • Do not load all micro-updates by default as the page could grow huge and implement infinite scrolling
  • Make it responsive

Got an idea? Found a bug? Let us know by opening a support ticket.

Don’t Panic


To enable this package in a buildout-based installation:

  1. Edit your buildout.cfg and add add the following to it:

    eggs =

After updating the configuration you need to run ‘’bin/buildout’‘, which will take care of updating your system.

Go to the ‘Site Setup’ page in a Plone site and click on the ‘Add-ons’ link.

Check the box next to collective.liveblog and click the ‘Activate’ button.


You may have to empty your browser cache and save your resource registries in order to see the effects of the product installation.


After installing the package you will see a new content type available: Liveblog.

A liveblog has a title, a description and an image field. The image field is used to set up a header on the liveblog.

Before feeding the liveblog with micro-updates you will need to activate it. Now, go to the Update tab and start writing micro-updates.

A micro-update is basically a text that should optionally have a title. The date and time of the micro-update is automatically recorded for you. After publishing a micro-update you will see it on top of your liveblog before all previous micro-updates.

All people viewing your liveblog will receive automatic updates every minute.

Many editors can update the liveblog safely. When another editor adds a micro-update you will see it automatically on your screen even if you are writing a new one.

You can delete micro-updates also. This will trigger a complete page refresh on all current viewers to avoid the displaying of invalid content in your liveblog. The page refresh will happen withing the next minute. If another editor deletes a micro-update you will see a message on your screen but no content refresh will take place. This way we avoid interrupting editors from their work.

When a liveblog is not going to be updated anymore you should deactivate it.


The package defines a workflow to be used with the content type (Liveblog Workflow).

The workflow defines 3 states: private, active and inactive. Liveblogs are created in the private state. When activated, the liveblog will be published and automatic refresh of micro-updates will be enabled. When deactivated, the liveblog will remain public, but automatic refresh of micro-updates will be disabled. No micro-updates can be added to a liveblog in inactive state. To continue adding micro-updates, just activate the liveblog again.

Share and Enjoy

collective.liveblog would not have been possible without the contribution of the following people:

You can find an updated list of package contributors on GitHub.

Development sponsored by Simples Consultoria.


1.0b1 (2014-09-05)

  • Timestamp handling was simplified. [hvelarde]
  • Implement the Expires header on recent-updates view. This will help us control better how long the page is going to live. [hvelarde]
  • Add a workflow specific to liveblogs. The workflow defines 3 states: private, active and inactive. This way we can control when automatic refresh of micro-updates happens. [hvelarde]
  • Refresh the whole view when a micro-update has been deleted to avoid displaying invalid content. [hvelarde]
  • The header viewlet was including the html and body tags on rendering. [hvelarde]
  • Lack of id attribute on field text was preventing TinyMCE editor from loading on Plone 4.2. [hvelarde]
  • Fire ObjectModifiedEvent event on micro-updates deletion to invalidate caching on views. [hvelarde]
  • Implement handling of If-Modified-Since request header on recent-updates view. [hvelarde]
  • Markup of time tag used on automatic updates was fixed. [hvelarde]

1.0a1 (2014-09-01)

  • Initial release.

Release history Release notifications

History Node


History Node


History Node


History Node


History Node


History Node


This version
History Node


History Node


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date (317.6 kB) Copy SHA256 hash SHA256 Source None Sep 5, 2014

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page