Transparency, openness, and collaboration are central to WikiTribune, so it follows that WikiTribune’s code should be open-sourced for others to use, improve, learn from and adapt, freely and for free.
This page will document code releases, describe what the code does on WikiTribune and outlining what else we’d like it to do in future versions. We’ll document future contributions made by others, and point to significant sources and inspirations for our code.
With your help, we’ll also indicate other places where WikiTribune code is in use. As with all WikiTribune articles, this page itself can be edited by anyone, so feel free to contribute.
The code itself is available at github.com/wikitribune.
Code for WordPress
WordPress is the content management system that WikiTribune is built upon. All of us who use WP know what a huge debt of gratitude we owe to those whose work we ourselves rely on, so we hope that code given back to the WordPress community and the commons will in turn be helpful to others.
Fabrica Collaborative Editing
What is it? A plugin to make WordPress more Wiki-like, by allowing more than one person to edit the same page at the same time. When there are conflicting edits, it helps users to view, compare, and merge changes before saving. NB each person works independently, without seeing what other people are typing.
Why was it developed? Fabrica Collaborative Editing was developed to allow journalists and contributors to collaborate quickly (and with minimal friction and distraction) on the editing of a time-critical news story.
If you’ve used “normal” WordPress’s admin/editing side at the same time as another person, you may have encountered the single-user post_lock – a safety mechanism that means only one user can edit a page at a time: if someone else is editing a Post that you too want to modify, you can either wait for them to finish, or you can unceremoniously kick them off and take over, but either of those options would have been off-putting for WikiTribune’s contributors, and detrimental to a speedy news cycle.
Who developed it, and when? The request for this plugin’s functionality came from Jimmy and Natalia at WikiTribune in August 2017. It was developed for and alongside WikiTribune by Yes We Work, ready for the site’s launch in October 2017. Read more about the development of the plugin on Medium.
Who else might find it useful? At its most general, Fabrica Collaborative Editing is a plugin for any multi-user WordPress site where people work together on content. It is especially suitable for other WordPress-based publications whose editorial model embraces collaborative journalism and community involvement, but FCE can also be helpful in other ways on multi-user WP sites:
- offer remote help to new users: FCE lets two users access the same Post’s edit screen, so a more experienced user can see what the novice sees, help them find issues, and talk them through specific steps.
- undertake admin tasks without interrupting: a colleague might wish to check a Post’s edit screen while someone else is working on it, and can do so without either forcibly ‘taking over’ from them, or having to wait for them to finish
Fabrica Pending Revisions
What is it? A WordPress plugin that enables updates to published content to be held in a draft state, or to be submitted for moderation and approval before they go live. It makes WP’s native Revisions more accountable by extending the system’s tracking of changes to taxonomy items and featured images, and improves the ‘Compare Revisions’ interface.
Why was it developed? Fabrica Pending Revisions was developed to give WikiTribune’s professional editors oversight of community contributions to news stories, and in particular to mitigate the (legal) risks of vandalism by ensuring that malicious edits could be kept away from the public face of the website.
Who developed it, and when? The request for this plugin’s functionality came from Jimmy and Natalia at WikiTribune in September 2017. It was developed for and alongside WikiTribune by Yes We Work, ready for the site’s launch in October 2017. Read more about the development of the plugin on Medium.
Who else might find it useful? It is suitable for publications and websites that need more control over the publication of content updates than WordPress provides by default. This might include organisations and sites where:
- oversight and moderation of content are required by law (or by policy).
- an editorial hierarchy or structure means that not all users / roles are responsible for publishing content or changes, or where not every contributor is automatically trusted.
- it’s desirable to have a ‘draft’ status for revisions of already-published content, because the author wants to be able to edit content over time, without every intermediate saved change immediately being made public.
- the author wants to make changes to content ahead of time, either to defer re-publishing to a future release date, or to make publication easier from a mobile device, or to enable a colleague to publish in the author’s absence.
Tools outside of WordPress
What is it? A setup for Matomo (previously Piwik) which is open source tool for analytics.
Why was it developed? This setup of Matomo was developed and open sourced because we could not find a set of steps and files to automatically deploy Matomo with docker-compose or AWS Elastic Container Service.
Although there are some docker images for Matomo, it doesn’t yet abide by the 12-factor app principles, making it difficult to install with little to no human interaction. We tried to make it so that after the first setup, you can redeploy over and over again getting the same results with the click of a button.
What does this include?
- docker composer file for local development of website using matomo which includes a nginx reverse proxy container, a matomo container and a MariaDB database container
- prepared config.ini.php file to skip installation after the first run
- nginx container which includes libmaxminddb and a compiled version of nginx geoip2 as a dynamic module
- nginx configuration which denies access to the most common file types used for hacking
Who developed it, and when? The request came from Jimmy Wales to move as much as we could from 3rd party tools/SaaS to Open Source software. The analytics package was specifically requested by him, so our IT Infrastructure guy, Miguel, developed it.