Skip to main content

Simple microblogging in Plone

Project description


Plonesocial.microblog is part of the plonesocial suite.

If you’re an integrator or end-user looking for a pre-integrated solution, you should install plonesocial.suite.

This package, plonesocial.microblog, provides a building block for Plone developers who want to create a custom social business solution in Plone. You normally wouldn’t want to modify this unless you know exactly what you’re doing.


Plonesocial.microblog provides a ‘native’ Plone microblogging solution that stores status updates in a performance-optimized site utility.

This component provides only the status update form and storage. To display the stored microblog messages, use plonesocial.activitystream in combination with plonesocial.microblog, or install the full plonesocial.suite.

Plonesocial.microblog provides a microblogging solution for Plone using core content types only, without any external dependencies. It does not require an external service and can be set up and run with a normal Plone buildout configuration.

The intention is to make this native solution as simple and as fast as possible. The current implementation can handle hundreds of new messages per second in a stock Plone installation on outdated hardware. It achieves this by using batched async commits (without using and by not indexing status updates in ZCatalog. Instead, custom indexes on time, author and tags are provided.


Uninstalling either plonesocial.microblog or removes both utilities, deleting all data.


An extensive roadmap for the plonesocial suite is available on github.


Guido Stevens, Author

Maurits van Rees Leonardo J. Caballero G. Thomas Desvenain Maarten Kling


0.4.2 (2013-04-29)

  • Plone 4.3 compatiblity [tdesvenain]

0.4.1 (2012-11-26)

  • update changelog, release [gyst]
  • update travis config to new buildout [gyst]
  • provide a virtualenv-enabled Travis buildout that can be debugged on a dev box [gyst]
  • Added l10n for English and Dutch for plone domain [macagua]
  • Updated Spanish l10n [macagua]
  • Updated sync i18n script with plone domain, added i18n for portlets, Generic Setup register Profile [macagua]
  • Updated changelog contributors files and sync i18n script with plone domain, added i18n for portlets, Generic Setup register Profile [macagua]
  • Makefile changes [avelino]
  • pep8 and cleanups [avelino]
  • pep8/pyflakes [gyst]
  • update Travis CI configuration to include pep8/pyflakes testing [hvelarde]
  • update location of extended configuration as the plonetest repo was moved to GitHub [hvelarde]
  • update list of ignored objects [hvelarde]
  • update doc, bump version [gyst]
  • cleanup buildout [gyst]
  • add Travis CI configuration [hvelarde]

0.4 (2012-10-09)

  • .gitignores [gyst]
  • update docs [gyst]
  • fix dependency [gyst]
  • reindent for better pep8 [gyst]
  • s/_flush_queue/flush_queue/ [gyst]
  • more styling [gyst]
  • style status form [gyst]
  • ignore compiled i18n stuff [gyst]
  • document mentions todo [gyst]
  • strip interpunction from tag index [gyst]
  • refactor into re-usable status input provider [gyst]
  • protect against site errors on (partial) uninstalls [gyst]
  • GS name [gyst]
  • implement hashtag filtering [gyst]
  • pep8 [gyst]
  • version bump to 0.4 [gyst]
  • Fix pep8 [avelino]
  • add help (tag) in make file [avelino]

0.3 (2012-05-21)

  • update changelog [gyst]
  • permission rename s/Read/View/ [gyst]
  • use accesscontrols in portlets [gyst]
  • disable accesscontrol in lowlevel unittests [gyst]
  • add access controls [gyst]
  • remove old compatibility view [gyst]
  • set a default limit to make it hard to accidentally list() a 100k StatusUpdate generator [gyst]
  • not using annotations anymore [gyst]
  • internal btrees are protected, not private anymore [gyst]
  • provide performance-optimized sorting/slicing accessors [gyst]
  • remove unused imports [gyst]
  • update doc [gyst]
  • provide translations [gyst]
  • switch from annotationstorage to a utility [gyst]
  • clean up interface and method signatures [gyst]
  • extract queuing functionality from base class to make life easier for future /self [gyst]
  • implement memory queue with batched disk writes for maximal performance [gyst]
  • user index accessors [gyst]
  • document interface and namespace annotation key [gyst]
  • provide test coverage [gyst]
  • extract documentation by Maurits on using separate ZODB mount from plonesocial.activitystream [gyst]
  • clean up views, remove dependency [gyst]
  • refactor view logic WIP [gyst]
  • close down some more methods [gyst]
  • credit Maurits [gyst]
  • refactor storage backend [gyst]
  • fork form and viewlet from p.a.d. [gyst]
  • Extract Maurits’ activity model from plonesocial.activitystream [gyst]
  • bump version [gyst]

0.2 (2012-05-04)

  • Prepare plonesocial.microblog 0.2. [gyst]
  • make portlet automatically assignable [gyst]
  • async WIP [gyst]
  • get rid of src dir indirection [gyst]
  • remove unneccessary test [gyst]
  • provide “compact” rendering option [gyst]
  • remove statuses display, keep only form [gyst]
  • fix duplicate commenting bug [gyst]
  • unittests [gyst]
  • tune doc [gyst]
  • update documentation [gyst]
  • cleanup [gyst]
  • provide proper browserlayer isolation [gyst]
  • anchor the microblog portlet to the SiteRoot singleton where we’re storing our status updates [gyst]
  • customize comment rendering [gyst]
  • fork p.a.discussion comments rendering template [gyst]
  • render p.a.discussion comments as portlet, not as SiteRoot viewlet [gyst]

0.1 (unreleased)

  • proof of concept [gyst]
  • initial checkin from ZopeSkel [gyst]

Project details

Release history Release notifications

History Node


History Node


History Node


History Node


This version
History Node


History Node


History Node


History Node


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 (60.2 kB) Copy SHA256 hash SHA256 Source None Apr 29, 2013

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