If you’re a WordPress pro, the awkwardness of deploying from a testing or dev server to a live server will be all-too-familiar. It’s easy enough to replicate a WordPress site, and there are plugins that will do the job for you, but the reality is usually messier than a simple migration.
Ideally, a WordPress staging installation is in the same state as the live site, and that includes the database. However, when both the staging site and the live site are constantly changing, keeping the two in sync is a real headache. You can’t simply copy the staging site to the production server if posts and pages have changed in the meantime.
Mergebot aims to solve this problem by making it easy to sync changes between sites, including merging databases. It works like this: the developer creates a copy of the production site on their staging or test server and installs the Mergebot plugin on both sites. Mergebot records all changes made to the development server. When the developer is ready to go live with their changes, Mergebot can sync the staging site to the live server while also retaining any changes that have been made to the live site.
In theory, that should make deploying to production a breeze. In practice, it’s not quite so simple, largely because of plugins. Plugins create their own database tables, and the most complex plugins can create many new tables. Without help, Mergebot can’t handle plugin database tables because it knows nothing about each plugin’s schema. In the most recent release of Mergebot, that problem is being addressed. Mergebot uses schema files to understand how plugins use the database. Many of the most popular plugins already have schemas available, and it’s not too tricky to create schemas for less popular plugins.
If the functionality offered by Mergebot sounds familiar, that’s because it does basically the same job as VersionPress, although the way Mergebot goes about syncing sites is different. Unlike VersionPress, Mergebot doesn’t require git, which makes it more likely to be compatible with shared WordPress hosting. VersionPress is somewhat more flexible and feature-rich than Mergebot, although that may change as Mergebot matures.
Another key difference between VersionPress and Mergebot is the way they’re made available by their respective developers. VersionPress is an open source plugin and is free to use. Mergebot is a SaaS product that requires a paid account. Both are perfectly legitimate business models, but it’s worth keeping in mind.
Both Mergebot and VersionPress are promising additions to a class of solutions that has been lacking in the WordPress ecosystem — tooling for developers. It’s exciting to see new tools that make life easier for developers and WordPress professionals.
Mergebot is still in closed beta, and is under active development. It’s not quite ready for production work, but I’ll be keeping a close eye on its development and, once it leaves beta, I plan to write a more thorough review of its capabilities.