Blog

News from the versioned universe

VersionPress.com enters beta

UPDATE: Thank you all for the interest! The beta is full now, you can subscribe to be notified when we can accept more users at https://versionpress.com.

TL;DR: VersionPress.com, a hosted WordPress platform with focus on workflows, enters beta today. It brings revolutionary staging with database merging and we've got a great offer for the first 100 of you who subscribe, please read on.

Workflows are still an unsolved problem in WordPress

When we started working on VersionPress (WordPress + Git) in 2013, the problem we were trying to solve was this: after you spend some working on your site in a staging environment (or similar, like local dev), how do you push your changes back to the live site? When I asked my WordPress friends, they usually had manual and not very convenient / reliable workflows like taking notes on paper and re-doing everything manually. The Mergebot guys have very similar observations.

Why is it that all these workflows are natural and well-supported in software development projects (via Git, GitHub, pull requests, push to publish, etc.) yet so hard to achieve in WordPress?

Because of the database.

Version control systems were created solely for files so no luck with MySQL there. As a consequence, workflows in WordPress are problematic and a concrete example is that most hosts will give you a staging environment today but won't really help you get your changes live (replacing the production database entirely is a very scary option, in our opinion).

This problem is worth solving, and the keyword here is database merging. There are three key solutions today:

  • VersionPress, an open-source project based on Git.
  • Mergebot, a cloud service by Delicious Brains, based on SQL query recording.
  • VersionPress.com staging.

Wait, what is that third item? Is that VersionPress or something new?

It's something new.

It is database merging for which we've taken our experience from building VersionPress but created a new implementation with two key characteristics:

  1. It has much better compatibility with WP plugins – basically, it works with any WordPress site without VersionPress-like plugin definitions.
  2. Git is no longer required. We still use it behind the scenes but the WordPress sites doesn't need to worry about it: it communicates via REST API with our backend services and the version control is transparent for them.

It is admittedly not as powerful as VersionPress but the compromise is really good: VersionPress.com staging is about 80% as powerful as VersionPress but close to 100% compatible with various plugins. This is a big win and a great starting point for future improvements, with the eventual goal being full VersionPress deployment when it's mature enough.

How staging saves work for you

A.k.a., a demo.

Let's say you work on a site of a small coffee shop, something like this:

image

On VersionPress.com, you get two environments for every site, staging and live. They are visualized like this in the management portal at my.versionpress.com and also inside WP admin (the beauty of React apps; use whichever context you like):

image

Each site also gets a clear indication in the admin bar so that you don't confuse them:

image

Now let's say that on the live site, someone updated the title:

image

In staging, we updated this title's color in the meantime:

image

These changes were simple enough but already pose a challenge when publishing live: how do we get the orange color out without rewriting the site title again?

On VersionPress.com, you'd press the Compare button. It scans both sites and shows an overview:

image

You can inspect each particular change if you wish and then press the Push button:

image

After a while (and a lovely arrow animation), you'll see a confirmation that the push was successful. There's also a button to Undo the changes easily:

image

Let's check the live site. It indeed combines both of the database changes!

image

This is a basic example but you can already see its power and the nice thing is that the same workflow is applicable to basically everything:

  • Updating plugins
  • Merging content (posts) with other types of changes
  • Doing design updates in staging, having them signed-off by the client and pushing them live

It changes how you think about updating your sites, and we want to make the staging experience great to the point that you'll never want to update your live site directly.

Note that this is our “v1” and many things can (and will) be improved, from visualizing the changes to iterating on the database merging technology. But even today, it is miles better than the traditional “would you like to overwrite your entire production database?” approach you see around the web.

Let us know in the comments below what you think about it.

Modern take on WordPress hosting

Apart from workflows, our other major goal was to build a modern infrastructure not for the sake of it but so that you and your site visitors can directly benefit from it. A couple of key technologies emerged over the past few years so here's our stack:

  • Everything is based on Docker. This is important on multiple levels, from giving you a full access to your site (e.g., SSH) to being able to provide awesome local workflows in the future. Each site is a set of isolated, scalable containers while keeping the costs close standard shared WP hosts.
  • We're running on AWS and utilize Kubernetes behind the scenes, it's an awesome technology!
  • CDN is a natural part of the snappy hosted service and we aim to provide it in 2018.
  • We only support HTTP/2 & HTTPS as protocols as they are fast and secure.
  • Same with PHP 7, we don't support old versions of PHP.

Simply put, we care about the infrastructure your sites are running on.

… and more

We come from a software developer background and spend most of our days in collaborative tools like GitHub so we're naturally inspired to bring some of it to the world of hosted WordPress, because most of the same principles apply.

VersionPress.com has team features like collaborating on a site with your colleagues and clients, being in different roles when it comes to site access, creating “organizations” as a natural structure for agencies, etc.

Again, VersionPress in general is all about workflows so expect more features from us in this area in the future.

Special beta offer

The platform has privately launched late last year and has been powering several production sites since February. In June, we opened the door for a couple more early customers and now, we're ready for public beta.

Beta means that you might still hit issues here and there but the service is reasonably stable. Note that we currently discourage e-shops and other complex WordPress sites because staging for them is quite challenging but it's ready for business websites, blogs, presentational sites, etc. We expect the beta to run for a couple of months.

As a special thank you for helping us iron things out, we offer the first 100 of you 50% off the Developer plan for life – 10 sites for just $49 / month. It's for life so you'll keep this price even after the beta ends (after the first 100 seats are gone, there will still be this discount but only for the beta period). If you're a WordPress developer or a small agency, we hope this helps :)

Summary

  • VersionPress.com enters beta today. It brings new kind of staging with database merging.
  • The implementation is inspired by VersionPress but not powered by it (yet). It is slightly less powerful but on the upside, it has almost perfect compatibility with WP plugins and doesn't require Git on the server. We think it's a really good compromise.
  • Besides workflows, we care a lot about infrastructure – all is based on Docker, running on AWS and supporting only modern and fast technologies like HTTP/2, HTTPS and PHP 7.
  • The first 100 of you can get the Developer plan (10 sites) for 50% off for life; get it here.

Thanks for reading. Let us know in the comments below what you think and if you have any questions, we'll be happy to answer them.

Discuss & subscribe on Reddit:

r/VersionPress