The future of VersionPress

During the past three weeks we have been running a crowd-funding campaign for VersionPress which has now ended. The numbers show that we didn’t reach our funding goal, however, so many exciting things have happened during that period that we actually have some good news to share. But first things first.

Anxious to know? Jump to The future of VersionPress.

How the campaign went

The goal of the campaign was $30,000 and we raised about 45 % of that. That doesn’t seem exactly like success but it’s not just the total number, it’s also how it is structured.

We have had several backer levels, from “fan” level starting at $5, middle-ground levels at around $50 and sponsorship levels from $500 up. For the campaign to be successful, we knew we would need backers in all three camps (or rather two camps – sponsorship levels and non-sponsorship levels).

We have been very successful in the non-sponsorship levels. We have had hundreds of supporters, most of them in the “early access” ($50) and “basic” ($20) levels. WordPress fans and users seemed to care a lot about VersionPress and we actually received more funding on average from every visitor than we expected. Thank you for that!

What didn’t happen, or at least not in the timeframe for this campaign, is some bigger sponsors joining in. I have to stress that the time factor is important here – for legal reasons here where we live, or at least what we have been advised, was to run the campaign within one calendar month and that was simply not enough time for bigger companies to make their decisions. There are still ongoing talks to a couple of 3rd parties interested in various sponsorship schemes and we were also very close to signing one platinum sponsor last week, which alone would make the campaign look much better.

Non-financial side of the campaign

But there were also many interesting things going on beside the fund raising. These are some of the highlights:

  • People actually liked the idea. This is not to be taken as granted – founders always believe deeply in what they do but that doesn’t necessarily mean that the rest of the world sees it the same way. In case of VersionPress, the response has been amazing and it got many people excited.
  • We have been published by some important web/WordPress-oriented media including WP Tavern, SitePoint, BestHostNews and others. None of that was a “sponsored review” or anything like that.
  • Twitter has been a great source of positive feedback, we have been flooded by mentions and responses at times.
  • Link to VersionPress made it to the Hacker News homepage for a couple of hours.
  • People actually contributed till the last day, even when it was almost certain that we won’t reach the funding goal. This is a great statement of trust and something we are humbled by.

I can’t tell you how encouraging all this is. If we learned something from the campaign it’s that it is certainly not just about fund raising. We received a lot of positive energy, some very good feedback and I have had many interesting conversations with people who deeply cared about VersionPress. We couldn’t just let it go.

The future of VersionPress

We’re announcing today that we will be creating VersionPress. We’ll self-fund the rest and start working on it this month. The first version should be delivered according to the plan – in Q4 2014 – and we’ll be enhancing VersionPress after that. We’ll continue talks with interested 3rd parties and also leave open the option for members of the community to join the early access program and contribute to the development (this will be ready in a short while).

We believe strongly in values behind VersionPress and the past three weeks confirmed that we are not alone. Thank you all, and now let’s make VersionPress a reality.

Standard

VersionPress is not just for geeks

Sometimes we hear something like “VersionPress is certainly interesting for developers but I’m not so sure about the common user.” Let me talk about why we are in fact very valid, maybe even more so, to them.

With VersionPress, we target two groups of people:

  1. Technical people like pro admins, developers etc. (“the 1%”)
  2. All the other users (“the 99%”)

The first group usually sees the value of VersionPress immediately and it’s true that the initial campaign is geared more towards to them for various reasons, but it’s also more likely that they will have the update problem sorted out, somehow, at least partially.

For example, I am a developer. I know Git well and use it daily. VersionPress is still valuable to me because 1) I have smaller project that I don’t always want to bother with proper versioning, staging etc., and 2) merging two databases (live and test) is still a relatively hard thing to do for me even if I try. So VersionPress has features that are directly useful to me.

But say that a small business owner has her small WordPress web – she typically doesn’t know how to protect herself from failed updates, how to do staging (she doesn’t even have a clue what that word means) etc. It’s her who will benefit from VersionPress greatly, and she will not need to know a thing about version control, Git, branches and other things because of the UI of VersionPress is designed to be user-friendly.

Simply put, the goal for VersionPress has always been not to target the geeky 1% of WordPress users but to bring something very useful to everyone. Jeff Chandler from WP Tavern called it “bringing version control to the masses” and that’s exactly what we’re trying to do.

Standard

Call for sponsors

Since we launched VersionPress a week and a half ago, it has received a very warm welcome around the globe. We have seen many encouraging blog posts, articles and tweets about it, and around 200 supporters joined the project and backed it so far.

We are really thankful for all that and please, keep it coming, but we’re also seeking some bigger sponsors which would greatly help to make the campaign a success. We believe that VersionPress has concrete benefits for companies doing WordPress-related work, be it hosting companies, consulting agencies etc., as it makes the delivery of “WordPress as a service” much more dependable and reliable from the customer’s point of view. That is hopefully a clear value added.

So if you are an owner of such company, work for one or know one, please consider getting in touch with us and help us fund the project. We have three sponsorship tiers starting at $500 and apart from technical benefits that VersionPress brings you, you will also have a special place on our website which should drive traffic back to your service. Win-win for both sides, and the community.

If you’re interested you can find all the details about our sponsorship tiers here. We’ll be happy to answer any question, just contact us at info@versionpress.net.

Thank you!

Standard

Git behind the scenes

We designed VersionPress to be usable by everyone so that the users don’t really need to know, or worry about, the technology we use behind the scenes. However, the geeks amongst you will be delighted to know that we use Git, the world’s most wide-spread distributed version control system. This has many advantages which I’m going to briefly talk about.

Why Git is so important

Generally speaking, there are many ways to implement version control. For instance, WordPress chose MySQL tables to store historic revisions of posts and pages and Wikipedia did something very similar. DropBox, for example, probably uses some kind of file-system-based versioned storage of their own. We also considered a couple of options but decided to go with Git, despite some of the technical challenges this brings.

We strongly believe in our decision for a couple of reasons:

  • Git is a very solid piece of software used by millions of developers around the world. It is dependable, actively developed, cross-platform etc.
  • Git has many features built-in. You see, storing historic revisions somewhere is relatively easy. The hard part is to be able to diff those revisions, merge changes from several branches, support reverts (reverse merges) etc. Git has all this sorted and there is a much higher chance that they did that properly than we would be able to.
  • Git is an “open format”. If you’re a Git user, you can work with our repository using the tools you like, or integrate with sites like GitHub and BitBucket easily. If we used some custom versioning storage, all this would be highly problematic, if possible at all. We want you to be in control of your data.

Is Git required on the server?

There is one challenge that choosing Git brings: how do we support a common LAMP hosting? We get this question a lot so I’d like to answer that.

In our current prototype, and this will probably be the truth also for our initial release, we count on Git being installed on the server. However, we know that the common hosting scenario is important and we will certainly support that as soon as we can. There is a way.

That way is based on implementing Git commands that we need for VersionPress in pure PHP. There are even projects that are trying to do this independently on us so in the best case scenario, we’ll just use some of those existing solutions. But even if we don’t find a suitable one, we’ll implement this on our own. The reason why we don’t promise common LAMP hosting support for v1 is that it is relatively a lot of work and we don’t want to promise what we’re not sure we can deliver.

To sum up…

Having Git behind the scenes is one of the most important design decisions of VersionPress, and one we strongly believe in. It means that you get proper version control, not some half-baked solution that can only do so much. We want VersionPress to be perfect :)

Standard

VersionPress: perfect for backups

Today, a typical backup solution for WordPress sites looks something like this: once a day, probably during the night, some script creates a MySQL dump, optionally adds server files to the mix and creates a ZIP that is stored somewhere (locally or in the cloud). This is often managed by some plugin which makes things easier and there are also many advanced (paid) services that help with that. However, there are still a couple of inherent problems most of the current solutions have:

  • Backups are not very granular. Even if you do backups every night, which is relatively good, you might lose some content if you restore e.g. the night’s backup in the following evening – all the morning’s content will be gone. Longer backup periods obviously make this much worse.
  • MySQL dumps are space inefficient. Every time you do them, they export all the information from the database. Chances are that 99% of that information is already in some previous backup so you’re basically wasting a lot of disk space. Of course, cloud companies where you store your backup files very much like that :)

VersionPress was not created as a backup solution per se, however, it turns out that it is excellent for it. Just see for yourself:

With VersionPress, you have infinitely granular backups – the backup is continuous rather than point in time. You can return to any previous version of the site, to any time of day you like. Actually, VersionPress is not driven by time, it is driven by actions. So if there were no updates to a site e.g. for a week, VersionPress will not add a single byte to the disk space. And if the site goes crazy and there are new comments, posts, plugins updates, theme customizations etc. all the time, VersionPress adds a new “backup” (version) every time something like that happens.

Second, the internal storage of VersionPress is extremely space efficient. How much you ask? We tried to run VersionPress and one of the most popular WP backup plugins on a test site that is mostly focused on content (think slightly advanced multi-user blog). We let it run for 30 days while doing all the common things on that site like adding new posts, updating plugins, playing with themes etc. so VersionPress would grow its internal repository (otherwise, it would not be a fair comparison). The comparison plugin was set to create a backup every night. After 30 days, the results were:

• The classical solution required about 600 MB of disk space (30 days times approximately 20 MB)
• VersionPress required about 25 MB before compression, and keep in mind that because of the much better granularity, VersionPress actually stored more useful information in those 25 MB than the standard solution did in 600 MB.

Please note that this is just a quick example and you could certainly do something about the size of a classical backup – store fewer backups, maybe adjust the period, be more selective about what you put in there etc. But the point is, with VersionPress you don’t need to worry about any of that. You’ll get the whole site history in so few megabytes it’s almost ridiculous.

VersionPress is simply great as a backup solution.

Standard

Announcing full GPL licensing

When we set off with VersionPress and the crowd-funding campaign for it, we were focused on technical things and wanted to postpone the final decision on licensing. That was a mistake and you let us know loud and clear. We heard you and have an important and exciting announcement to make today: VersionPress will be 100% GNU GPL-licensed.

What this means

First and foremost, this means that VersionPress will be completely in line with WordPress itself and many of its plugins and themes. By adopting GPL, VersionPress becomes true free software which guarantees that you can use, study, share and modify it as you wish (as long as the GPL freedoms are preserved). We believe this is great for our users and the whole community!

What doesn’t change since our last post on licensing is that our top-most priority is to make VersionPress a solid and dependable solution to the version control problem, and we are committed to supporting and evolving it in the long-term. So depending on how the future of this project works out (some big sponsor joining in vs. not, etc.), we might use some kind of premium model, be it paid support, some optional accompanying service or something like that. We don’t know and can’t know yet how things will work out, we just thought we’d mention that because although this is totally in line with GPL, some people don’t find it intuitive and could feel mislead. We have no intention of doing that.

To sum up

VersionPress becomes free software with this announcement and will try to be a good citizen in the WordPress landscape. We think it is really important for the project and we want to thank all the community members who talked to us about this issue and helped make it happen. Thank you!

Standard

Feature focus: the Undo functionality

If we should describe VersionPress in layman’s terms we would say it’s “the Undo button for WordPress”. The ability to revert anything and everything is the core feature of VersionPress and is actually quite smart compared to e.g. text editors. In this blog post, I’m going to show how it looks like and what it can do.

Let’s start by saying that VersionPress keeps track of every important action in a WP site and is definitely not restricted to just content or some selected areas. It can revert all kind of actions, some of which are quite advanced, for example:

  • Content updates (new, updated or deleted posts and pages, comments, images etc.)
  • Settings updates (site title, tagline, date format etc.)
  • User changes
  • Plugin installations and uninstallations
  • Theme customizations
  • Whole WP upgrades (for example, it can downgrade from WordPress 3.9 to 3.8 if needs be)
  • … and generally everything that happens on a site

This means that WP admins can approach their sites with a whole new level of confidence. If anything goes ever wrong, it can be undone in a single click.

That takes us to how the UI looks like. (Note that the following screenshot is taken using the current prototype which is a very early preview and not yet polished. For example, the messages will use human friendly names instead of IDs.)

VersionPress: undo and revert functionality

This screenshot shows a site where a couple of posts have been edited, some settings updated, new theme installed and customized etc. For each action, there is a line in a VersionPress log, and for every line except the newest one there are two actions available:

  1. To undo that specific action
  2. To revert (roll back) to a some previous state of a site

You can probably see how these things are both useful, just in a different way.

The “Undo this” functionality is used for instance when you install a new theme, do a couple of customizations to it and don’t like just one of them (for example, you don’t like the background color). So you’d just hit the Undo button and the background color will be back to its default, all other changes untouched. Note that this is something that e.g. MS Word cannot do – it cannot selectively undo actions from the past. VersionPress can.

The “Revert to this” functionality is a complete rollback of a site to some previous state. It is basically the same as clicking the Undo button for all the changes up until that historic revision. For instance, if you experiment with some new plugin, do a couple of changes to it but later decide that it was not a good choice, simply revert to the state before the installation and all the plugin files and database changes will be gone.

So hopefully that showed you how VersionPress can be useful for WP admins. We must admit that even we as creators are still amazed when we use the prototype on some of the test sites and see it do the reverts. This is such a useful thing that we can’t wait to share the working version with you.

Standard

VersionPress licensing

Important update: VersionPress will be 100% GNU GPL-licensed! Read more in this blog post.

We have been asked about VersionPress licensing a couple of times already so we thought we’d address that.

When you head over to versionpress.net and scroll down to the campaign section or further down to the FAQ, you’ll find a note that the licensing model is not set in stone yet. This concerns some people and their point is valid – they don’t want to contribute to something they don’t know whether will be open or closed source / commercial. However, from our point of view, this is the most honest thing we can say about licensing at the moment. Let me explain.

First and foremost, we want to see VersionPress built. We believe it is a hugely useful thing for WP admins and we, ourselves, always wanted that something like that existed. It is our top-most priority to build it and properly support it in the long run.

For that, we need to be realistic about funding. The current crowd-funding campaign will cover the initial development (if successful) but think about all the 3rd party plugins that do “interesting” things to WP sites, their combinations, various hosting configurations etc. VersionPress is a huge undertaking and if we want to do this professionally and keep the users (you) happy, realistic funding is key.

That’s why we cannot announce anything definitive about the licensing today. The campaign has been out only for a couple of days and we don’t know, can’t know, how things will work out. For instance, if some major sponsor appears we would be more than happy to make VersionPress available as open source, free to everyone. But what if there isn’t? We believe that in such case, it’s better to offer a reasonably priced plugin than nothing at all.

To sum up, the best we can announce today is that we would love this to be OSS but we’ll need some time to make a final decision on this. If you’re not comfortable with this, please do not contribute to the campaign and we’re sorry that we’ve lost you. However, we hope that many of you understand our situation and will support VersionPress just as a project that makes sense, regardless of the license.

Thank you and if you have any questions, I’ll be happy to answer them.
Borek

P.S. Thanks to all the people who brought up this issue on Twitter. Based on your feedback, we have also updated versionpress.net to make things clearer.

Standard

Introducing VersionPress

We’re happy to announce a project we’ve been working on for the past few months – VersionPress. It is a version control plugin for WordPress that keeps the whole site, files and the database, in a Git repository. This enables things like site-wide reverts, easy staging, efficient backups, and more. We have also launched a crowd-funding campaign at versionpress.net that you can join if you like what you see here.

VersionPress

The Promise of VersionPress

Versioning has long been a technique used by many different things and projects, from versioned content in Wikipedia or DropBox to professional version control systems used by software developers. In fact, WordPress itself uses version control to manage its development and could hardly live without it. So it’s a bit of an irony that typical WordPress sites cannot easily enjoy the same benefits – for instance, reverting to some previous state is not easy, merging changes from test site to live site is downright difficult, and so on.

The basic idea of VersionPress is to fix that. The only question was, how. The path we’ve chosen was technically demanding but opens up a whole new world of opportunities. Specifically, VersionPress provides these main features:

  • Any change can be easily undone, any historic version of the site can be returned to. This is great for updates – no more broken sites after failed updates, the working version of a site is always just one click away.
  • Built-in staging. We’re currently finalizing how the support will look like but as VersionPress deeply understands the site and can compare it to some other version of the site, we’ll be able to automatically sync changes between test / staging / live environment.
  • Efficient backup. The repository with hundreds or thousands of historic versions is still ridiculously small, so it’s a much better solution than storing MySQL dumps.

One other important point is that we didn’t want VersionPress to be useful only for geeks or technical people so we’ve packaged everything as an easy-to-use plugin. The benefits of versioning should be available to everyone, we believe.

Overall, the promise of VersionPress is to radically improve the experience for WP admins. We hope you like it.

We need your help

VersionPress is a prototype at the moment. We have confirmed that our approach works, however, a lot more work needs to be done should this become a real thing.

And that’s where we need your help. If you like what VersionPress has to offer, please spread the word and consider supporting us via a crowd-funding campaing running at http://versionpress.net/. The campaign will be active during June and we can’t make it without you.

Thanks!

P.S. If you have any comments or questions, I’ll be happy to answer them in the comment section.

Standard