Lets build a real world example base on the OMN tools set- a indymeda instance/network.

Looking at this very simply they are two pools of data – trusted and moderated

– the trusted data is displayed on the site and flows out from the site as feeds.

– the moderated is displayed on a back end moderation/draft feed the mods of the site get to decide what to do with this content, to add it to trusted, to leave in draft/mod for consensus, to remove it.

The content that is trusted is unedited, though the long tail of metadata can be edited and updated by mods.

The site banner and side links are static.

The site display is based on two main flows that are both #activertypub and #RSS.

Newswire and features (and optional individual flows based on user accounts)

* The first main flow, newswire, is made up of a number of sources

– user accounts from this instance (if turned on) based on roles defined by the .

– boolean logic tag created #activertypub or RSS feed – there should be on both ends of this flow in the best implementation – we can live with one end. These feeds are added by the mods of the site to allow a local network of publishing sites to be created and nurtured

* The features is a feed for storeys created from the resources published to the newswire, linking back to them. The flow is original content published as a feature by the mod crew based on if its in moderation it is treated as a draft not yet reach consensus if it is trusted it appears on the page and flow feed. This feed is a prime news resource to other newswires of indymedia sites that subscribe to it.


The OMN is a KISS project.

Let’s look at this from a different direction:

As a core coder your mission is to build pipes that carry data flows. Then your mission is to build 5 function connectors on the ends of the pipes. Then to build holding tanks, databases, that store the content of the flow.

In each “holding tank” the data soup has to be in sync with other holding tanks that have a pipe connecting them – this syncing is moderated by the switching of the connectors on the end of each pipe.

This is the core coding project.

Where are we at:

* The pipes are activertypub/RSS and perhaps odata so this part is already defined.

* the holding tank is any database we care to use.

* the end connector is the part we have to implement

* the sync function is something that needs thinking about – it can come from the feed speck/the database function or…

To sum up we have the pipes, the holding tank, we need to build the 5 function end connector, and we have to think about the sync function.