In 2014, we started working on a project that brings the full power of Git to WordPress: not only files but also the database. We called this project VersionPress.
VersionPress automatically creates Git commits for both file and database changes, giving you a perfect log of what happened.
Plugins break, people make mistakes; sometimes, you just want that previous version of your site. Undo is a powerful thing.
Merging two versions of a site, e.g., staging and live, used to be a complicated process. With VersionPress, it's just
wp vp pull.
You can push to GitHub or any other service, your colleagues pull and make the site fully functional in seconds. MySQL becomes a cache.
VersionPress can store hundreds of full site snapshots in just a few megabytes. It's tough to beat Git when it comes to efficiency.
We care to make the experience available to anyone, not just developers. UI and commit messages are carefully designed.
With that being said, VersionPress is not without its challenges. The two biggest are plugin compatibility and hosting requirements:
VersionPress needs to understand site's data model and which actions can be taken. We've already covered WordPress core and some popular plugins but the long tail of 50,000+ plugins will take time and community effort.
VersionPress bets heavily on Git: all the amazing features are powered by it. The problem is that many shared hosts don't allow executing external binaries via
proc_open which VersionPress utilizes.
As these are not solved easily, we started working on VersionPress.com in 2016. It's a different take on the problem, solving both hosting and database merging at once.
This is how the two solutions compare: