# When all you have is a pair of bolt cutters…

**TL;DR:** WordPress can do SharePoint better than SharePoint. A proposal to build document management and version control on top of WordPress's proven core.

Published 2011-04-04 · [View on Ben Balter's site](https://ben.balter.com/2011/04/04/when-all-you-have-is-a-pair-of-bolt-cutters/)

---

[<img src="http://imgs.xkcd.com/comics/golden_hammer.png" alt="Golden Hammer" class="mx-auto block" />](https://xkcd.com/801/)

My biggest gripe with [WordPress](https://wordpress.org), the open-source [content management system](https://en.wikipedia.org/wiki/Content_management_system) that silently works behind the scenes to power [more than 13%](http://w3techs.com/technologies/overview/content_management/all) of the internet, is that it sets far too high a bar with which other applications must compete. I cannot count the number of times that I have used a proprietary or commercial system and silently thought to myself, "WordPress can do this so much better." [^1]

This ritual saw no deviation, when I sat down to set up [SharePoint](https://en.wikipedia.org/wiki/Microsoft_SharePoint) in support of my [law journal](https://www.pcjl.org)'s upcoming publication workflow. Like Alice stumbling down the rabbit hole, it quickly became apparent that in the counterintuitive world of SharePoint, each step was going to be more and more alien than the last. And then it dawned on me: a corollary of Uncle Ben's law, *with great power does not have to come great complexity*.

## WordPress already does the hard parts

WordPress does many things right. It is an incredibly versatile tool, but like a body builder with a heart of gold, it is as friendly and approachable as it is powerful. WordPress has [more than eight years of rock-solid experience](http://core.trac.wordpress.org/browser/trunk?rev=3) storing, organizing, sorting, and searching all sorts of user-generated content. It's got a set of slick attachment functions to allow users to safely and securely upload and store their non-WordPress files in WordPress. For the past three years, it even has a proto-version control system in the form of its much-envied [post revisions](http://codex.wordpress.org/Revision_Management). [^2] And it does all this through an interface so dead-simple that even your grandparents could start their own site. It seems like a no-brainer then, to marry these tools to create a WordPress-based document management system.

## Build document management on WordPress's core

Imagine a workflow management and version control system [building on WordPress's existing core competencies](https://lists.automattic.com/pipermail/wp-hackers/2011-March/038727.html). By treating documents as a custom post type, users can build on WordPress's extensive attachment, revision, taxonomy, and URL rewriting functionality. Document permalinks can be routed through the traditional rewrite structure such that the latest revision of a file always remains at a static, authenticated URL, and users can toggle the visibility of documents (both internally and externally) as they currently do with post statuses and permissions. Similarly, file locking can extend WordPress's autosave functionality (as a ping), revision logs can extend WordPress's existing revision relationship and can be outputted as a traditional RSS feed, and so on

<img src="https://ben.balter.com/wp-content/uploads/2011/04/wireframe.png" alt="Wireframe of the proposed application" title="WP Document Revisions Wireframe" class="float-left mr-3" />

As seen in the above wireframe, document revisions would be inextricably linked to the essential WordPress experience. If you know WordPress, you know document revisions. Why reinvent the wheel when you have the best wheel the world has ever seen, and a passionate global community dedicated to improving it? This approach would not be limited to traditional documents. Images, PDFs, code: anything the user wants to collaborate with others on, or have a secure revision history can be thrown at it. Academics, lawyers, government folks, the possibilities are endless.

## Enterprise bloat is the real golden hammer

To be fair, WordPress has been arguably overextended in some cases, [^3] but I do not believe that to be the case here. Sure any WordPress enthusiast may be guilty of the [bolt-cutter mentality](https://xkcd.com/801/) every now and then, but if anything, it is enterprise stakeholders' tendency to gravitate toward bloated, commercial systems that is more akin to Wolf Blitzer's boat house, and a big reason why is because with the exception of an unnamed [^4] content management system's poorly executed attempt at document management, no open-source alternatives exist.

I am working on submitting this idea as a proposed [Google Summer of Code](https://summerofcode.withgoogle.com/) project, [^5] with the goal of giving WordPress parity with commercial and proprietary applications and injecting some open-source goodness into government and other enterprise environments, but before I do, I would love to hear your thoughts. [Get in touch](https://ben.balter.com/contact/), or leave a comment below.

**Update (8/29)**: The final result of the project is an [Open Source Document Management and Version Control System](https://ben.balter.com/2011/08/29/wp-document-revisions-document-management-version-control-wordpress/) for WordPress. An overview of its top-level features including a screencast of a typical use case is available on the WP Document Revisions page.

[^1]: *See, for example,* [Documentum](http://www.emc.com/enterprise-content-management/index.htm), [Liferay](https://www.liferay.com/), [Melange](http://code.google.com/p/soc/wiki/MelangeIntro), and [Gawker's CMS](http://www.mediaite.com/online/worse-than-previously-thought-gawker-content-management-system-hacked/).

[^2]: Nearly three years ago, at the time of the feature's inception, [WordPress founder Matt Mullenweg noted](https://wordpress.org/news/2008/07/wordpress-26-tyner/), "With the power of modern computers, it's silly that we still use save and editing metaphors from the time when the most common method of storage was floppy disks… now we're taking that to another level by allowing you to view who made what changes when… through a super-easy interface, much like Wikipedia or a version control system."

[^3]: *See, for example,* WordPress as an [email newsletter](http://net.tutsplus.com/tutorials/wordpress/build-a-wordburner-email-newsletter-manager-using-wordpress-and-feedburner/), [contact manager](http://publisherblog.automattic.com/2008/02/13/wp-contact-manager/), [CRM](https://web.archive.org/web/20101127162357/http://slipfire.com/wp-crm/), [invoice system](http://wordpress.org/extend/plugins/wp-invoice/), [job bank](http://wordpress.org/extend/plugins/job-manager/), or [real estate directory](http://wordpress.org/extend/plugins/great-real-estate/).

[^4]: Let's just call it "Frupal" for the sake of discussion.

[^5]: In hindsight, I probably shouldn't have ripped on Melange. *See supra note 1.*
