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.



This package is maintained by Cosent.


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.


This package provides the “Hosts a local microblog” behavior that can be applied to Dexterity content. When applied to an context, it enables microblogging and activitystreams that are local to that context.

You can also use this on Archetypes content by marking an object as providing the IMicroblogContext interface. An example taken from plonesocial.suite:

# enable local microblog
directlyProvides(portal.workspace, IMicroblogContext)


An upgrade step is provided to add the UUID index introduced in 0.5 to older installations.


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
  • Hector Velarde


0.5.3 (2014-03-11)

  • Package distribution was fixed by adding classifiers, dependencies and fixing license version number as GPLv2; a file was also added. [hvelarde]
  • Brazilian Portuguese translation was added. [hvelarde]

0.5.2 (2013-07-31)

  • bump version after having pypi release confusion [gyst]
  • use backwardly compatible accessor [gyst]
  • trust context=None defaults [gyst]
  • French translation [tdesvenain]
  • Few fixes on microblog context when we are in subfolders of context [tdesvenain]

0.5.0rc1 (2013-07-04)

  • update docs [gyst]
  • finish IMicroblogContext implementation [gyst]
  • provide upgrade step to add uuid mapping on older installed microblog tool [gyst]
  • implement IMicroblogContext acquisition and storage for StatusUpdate [gyst, tdesvenain]
  • Simplify API to filter on either user or context, but not on both. Cleanup and restructure implementation [gyst]
  • fix testing thread cleanup [gyst]
  • reword IMicroblogContext behavior [gyst]
  • add a behaviour for IMicroblogContext local microblog support interface [tdesvenain]
  • define IMicroblogContext interface as integration hook for local workspaces [gyst]
  • fix flake8 errors [gyst]
  • implement and integrate context permission checks for local microblog spaces [gyst]
  • context filtering by uuid [gyst]
  • integration test with actual resolving [gyst]
  • refactor to (mocked) integration [gyst]
  • base implementation for context-aware statuscontainer [gyst]

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

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 (127.9 kB) Copy SHA256 hash SHA256 Source None

Supported by

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