VersionPress logo

VersionPress

the Undo button for WordPress, and more

VersionPress is a version control plugin for WordPress. It versions both files and the database enabling things like site-wide reverts, safe updates, easy staging etc. All on your server.

VersionPress started as a prototype and we're currently building the first public version.

VersionPress screenshot
Jeff Chandler

This could be the next big thing

The Problem

Possibly the best thing about WordPress is how simple it makes most tasks. Just log in to the administration, click here and there and boom, you have three new plugins installed, a new theme activated etc. People love this, and we do too.

There's a flip side to it, however. Once the site is deployed and used by real visitors, those buttons actually become sort of a threat to the site because they make all the changes irreversibly and straight in the production. That is a problem because 3rd party plugins sometimes have bugs, are incompatible with each other, the theme might need updates etc. There are ways to deal with it but it's a tricky job – so tricky that over 70% of WP sites in Alexa Top 1 Million gave up on updates.

And we felt this was just wrong.

WordPress is our CMS of choice, we love it and build many types of websites on it. There is one recurring problem though: once the site is published, how to make changes to it reliably? There will be plugin updates, design changes, we'll sometimes want to deploy new functionality etc.

By default, WordPress has various Install and Update buttons, textareas to edit the source files directly and so on. This sounds nice on paper but is actually pretty scary because all those changes are done in production and irreversibly. It means that sooner or later, any customized WP site will break in some way. It just will.

This is an issue with deep consequences. Probably the worst thing is that many people fear updates and ignore them, meaning that their WP instances are outdated, vulnerable to security attacks and so on. Even for professional WP admins that usually have some ways around it, it is currently not pleasant to deal with The Great Update Problem™.

We wanted to change that.

The Idea

We are primarily software developers and something occurred to us: the same problem is encountered all the time in our field and actually solved. There is a technique called version control which is very simple in principle – just store a new version after every update – but is extremely powerful in consequences. Just imagine WordPress could do all this:

  • Any historic version of the site can be restored from the archive and returned to

  • Changes can be undone selectively, without affecting the newer ones
  • More people (admins, developers, coders etc.) can work on the site simultaneously without problems
  • Testing environment is trivial to create and there is a two-way sync between it and the live site
  • Backup is created after every logical change, not at fixed time of a day
  • The repository is very space-efficient and works well with 3rd party tools

This sounded too good not to pursue it. So please (drumroll)...

Welcome VersionPress

VersionPress is our dream of how to develop and manage WordPress in a much more pleasant way. We took proven practices from software development, applied them to WordPress and packaged everything as an easy-to-use plugin.

The result is exciting. We don't know of any other solution for WordPress that would combine user friendliness and powerful technology in a way that VersionPress does.

Features

Versions the whole site

Table of versions

VersionPress creates a new version every time something changes, be it new comment, plugin update, some admin action or just anything.

This is the core feature of VersionPress. Technically, we version both files and the database which is a unique and powerful approach.

Quick undo any time

Revert feature

Maintaining historic versions means that VersionPress can return to any previous state of the site easily. It is always just one click away.

There are two options – either return to a historic version as it existed at that point in time, or just undo some specific change(s) from the history.

Smart Undo

Smart undo feature

The Undo feature is actually smart – you can roll back any change (or multiple changes) from the history without affecting the newer updates. For instance, you can return to an older theme while maintaining newer content updates.

This is often useful and not many undo implementations can do that.

Easy staging

Staging feature

Staging is crucial for reliable updates but has been traditionally bit of a pain to set up and work with.

VersionPress changes that. As it deeply understands what changed in a WP site, the sync between environments is painless and automatic most of the time.

Great for backup

Backup feature

VersionPress is extremely space-efficient when it comes to its internal storage. A site with hundreds of updates will still take just a few megabytes.

Another great thing is the granularity. New version is created after every logical change, not at a fixed time of day.

Respects your workflow

Custom workflow feature

No matter how you manage your WP site, whether through admin screens or by manually editing the files or the database in an external tool, VersionPress supports that. Use whatever workflow suits you best.

Ships as a plugin

Plugin feature

This is a small but very important point. VersionPress needs to integrate deeply with a WP site so we are very happy that it can ship as a standard plugin with all the advantages.

It also means that the data is 100% under your control – on your server – and only you decide where it goes.

Works behind the scenes

Works behind the scenes

Once installed, VersionPress runs silently behind the scenes. You don't need to see it, you don't need to worry about it, it just does its job.

However, should there be any problem with the site, VersionPress is right there to help you out.

Solid internals

Internals feature

We use Git to manage the internal storage. This has many advantages over custom MySQL tables and was an important decision up-front.

Git is an amazing system – used by millions around the world, reliable and supported by many 3rd party tools and services. We love it.

Availability

During June 2014, we have been running a crowd-funding campaign for VersionPress here. We didn't fully reach the funding goal but the response from the community was so overwhelming that we decided to go ahead and build the first public version anyway.

If you'd still like to contribute to the development and join the early access program, you can (this is the "early-access" level as it was during the campaign; if you're interested in something else please contact us). First development builds will be available during the summer and the expected release of v1 is in Q4 2014.

For updates, you can follow us on Twitter.

FAQ

Q: Can I download an early build now, even if not fully functional?

The main issue is not the feature incompleteness; it is that the current prototype can completely break the site under some circumstances. First public release will come when we are 100% sure that that doesn't happen.

Q: What to expect in the initial release ("v1") and when will it be available?

In v1, we plan to implement all the core features as described above and make it run on an own server with a clean or relatively mildly customized WordPress instance. This is expected to be delivered in Q4 2014 with preview releases available during the summer to backers from the "Early access" level up. After v1, we plan to focus on supporting more complex WP plugins and to make sure VersionPress works in as many hosting environments as possible.

Q: Doesn't WordPress already provide version control, like for pages, posts etc.?

Yes, it provides some basic version control for some of the contents but VersionPress goes far, far beyond that. Those two things are really not comparable and can actually live happily beside each other.

Q: Who's behind this?

The founder of the project is Borek Bernard (LinkedIn, Twitter), long-time software developer and blogger from the Czech Republic. He was joined by Jan Voráček (LinkedIn, Twitter) who is a great PHP developer and Borek's colleague for the last few years.

The legal entity behind this is Borek's company, see Terms & Conditions for full details. Should you have any questions or suggestions, please contact Borek.

Questions?

If you have any questions or suggestions, please email us or use the form below:

Sorry, the form could not be sent at the moment. Please consider contacting us via email.