Introducing WordPress Post Forking: Version Control For Writers

The WordPress platform has been helping writers publish their thoughts to the web for years. Though it now powers many large newsrooms and other organizations, the posting process still caters entirely to the individual writer working by himself on a post. Collaboration for multiple content creators is non-existent within the core right now.

The WordPress Editorial workflow is one dimensional in that only one person can be editing at a time. Although WordPress has a fancy new way of showing you who’s working on the post, you actually have to kick that person out to take over editing. The new Post Locking feature in WordPress 3.6, though useful to prevent overwriting, is actually the antithesis of collaboration:

There is also a limitation in the current WordPress publishing process that you may not have noticed. Once a post is published, the only way to make edits is to push changes immediately, which precludes scheduling updates to the content and/or further collaboration.

These limitations are what drove Aaron Jorbin and a small group of developers to create the Post Forking plugin.

What is Post Forking?

Post Forking is the solution to one-dimensional content creation. It opens the door for collaboration between multiple writers in WordPress. Essentially, the idea is that you can create a “fork” of the current post and make your own changes which can be submitted as a proposed revision and merged back into the final version.

I had the chance to chat with Aaron Jorbin and asked him what inspired the creation of a plugin that would offer git-style version control for words. He replied, “The first person I heard talk about this concept was Greg Linch, who spoke about Journalism and Version Control at Bar Camp News Innovation Philadelphia. Fast Forward to my friend and former Google Summer of Code mentee, Ben Balter, mentioning that he had started coding something up and asking if I wanted to take a look. It was a working prototype of what became version 0.1.”

The Post Forking plugin’s current features enable some new and interesting ways for online publishers to collaborate:

Allowing users without edit or publish post capabilities to edit and submit changes to content (similar to GitHub’s pull request system)

Collaborative editing (by resolving two users’ conflicted saves – Wired’s example)

Saving draft changes of already-published content

Scheduling pending changes to already-published content

This is a basic set of features. Sure, it’s better than nothing but Jorbin recognizes the current usability defects in the plugin and has a vision for much more.

Taking Post Forking to the Next Level

The Post Forking plugin has been downloaded more than 1,000 times and the community is starting to become more interested in the potential of this new way to collaborate. But Jorbin wants to take the plugin to the next level. He recently listed the project on Indiegogo and has chosen to adopt the patronage model to help fund improvements to the plugin. His reasoning is, “Creating software costs money. I want to do user testing, which costs money and also want to be able to focus on it for a little while without needing to worry about how to pay my rent. When people contribute, in code, documentation, support or with cash, it makes them a part of the team.”

Getting funding this way is a smart approach. Rather than sit around being frustrated by a lack of time to work on the project, he is allowing the WordPress community to demonstrate its interest and become part of something larger. Collaboration is the whole idea, after all, and Jorbin said that he has been inspired by the response: “Seeing how the community has responded has felt amazing. I know my goal isn’t low and getting 20% of the way there after one day validated the idea that the community can fund open source plugins and a commercial model isn’t the only way to develop great plugins.”

What new features will be added to the plugin with this round of funding? Jorbin’s first priority is usability, followed by better support for meta and taxonomies:

The first goal is to make it more usable and easily understandable by writers and contents creators. Unless you are a developer or have spent a lot of time around developers, the concept of forking and merging might be foreign. Features such as scheduling merges can be hard to find and the manual merging page is hard to use. Once the usability concerns are addressed, the highest priorities are integration with revisions and forking/merging meta, taxonomies and everything else connected to posts and pages.

Practical Uses For Post Forking

Wired Magazine once conducted an experiment wherein they put a story in process on github for anyone to contribute to and improve, resulting in their collaboration article: Lord of the Files: How GitHub Tamed Free Software (And More). Although the experiment was considered a success, the entry level geek knowledge of git required for contribution poses a definite hurdle in the daily application of story versioning. Post Forking is the answer to this.

If the idea of post forking is new to you, perhaps you’re wondering how the average Joe might make use of it. The benefits of forking posts do not just apply to major news rooms. Jorbin envisions benefits for a wide range of WordPress users:

On my personal site, I can imagine scheduling a fork to merge on my speaking page the day after I speak to move something from the future to the past. A company could have their API documentation in WordPress and prepare forks that they merge upon releasing an update. A team could write a book with all edits suggested by authors being cleared by the editor. It also could be used in many of the ways Wired has used it, to fix grammar and spelling mistakes and also for people to translate your writing for you.

If the idea of post forking catches on and becomes a more seamless part of the WordPress editorial workflow, Jorbin believes it could someday be a useful addition to the core.

If it’s highly usable and people are actually using it, it seems to me to be a natural fit for WordPress core. WordPress is about democratizing publishing. What is more democratic than participation and collaboration?

The first step towards making this a reality for users of the plugin is to get funding. This will allow Jorbin to devote time to making this more polished and usable for a larger section of publishers who may not be familiar with git terminology.

Help Fund Post Forking Improvements

You can help this plugin become an awesome tool for the WordPress community. Can you imagine the days of writing code before git collaboration was a possibility? That’s where we are right now as writers, locked out of posts and waiting turns while the work is going on. A fully featured and usable Post Forking plugin has the potential to radically change the editorial workflow for thousands of WordPress publishers around the world.

If you’re inspired by the possibilities of more collaboration in WordPress, please contribute to the Post Forking project on Indiegogo. There is also a bug tracker for feature requests and bug reports where you can contribute. Join the mailing list jump in at the #wp-postforking chatroom on IRC. Jorbin will be starting weekly chats to organize contributors.