Meet WP Snapshots: share complete snapshots of a WordPress setup

We’d like to introduce you to our latest open source project: WP Snapshots.

WP Snapshots is a command line interface (CLI) tool that empowers engineering teams to quickly share WordPress projects – including files and the database. Up until now, onboarding a new engineer onto a project has been tedious: he or she had to setup a local development environment, check out repositories, install matching versions of WordPress and any plugins, track down and import database dumps, copy over uploaded media, search and replace paths in the database, and so on. WP Snapshots turns a painstaking process into a few simple commands.

WP snapshots command example.

How Does it Work?

WP Snapshots enables “pushing” and “pulling” of snapshots, moving project data and configuration from your computer to the cloud or the cloud to your computer. A “push” command takes a snapshot of the current environment and sends it to a central repository. A “pull” command downloads a specific snapshot and sets it up locally, either inside of an existing local WordPress setup or by creating a new installation. Pulling a snapshot automatically replaces URLs, upgrades or downgrades the local version of WordPress to match that of the snapshot, and works with multisite.

WP Snapshots stores data in a “central repository” on Amazon Web Services (AWS), using S3 and DynamoDB. Buckets and tables are namespaced with your repository name, and snapshots are secured via AWS IAM. Therefore, any engineer using WP Snapshots will require their own set of AWS keys with read permissions (and write for creating snapshots) on the S3 bucket and DynamoDB table, named wpsnapshots-<repository> in AWS.

What’s Next?

The 10up engineering team is already benefiting from the efficiencies offered by WP Snapshots. We encourage everyone to share in those benefits, provide us feedback, and even contribute via pull requests and issues on GitHub. We are planning to integrate WP Snapshots with our local Docker environment, WP Local Docker, such that anyone can spin up a complete environment with a single CLI command.

Comments

  1. Looks really useful. Of course, not to be confused with WP Customize Snapshots; was the name a source of inspiration?

    • The similar name was just coincidence. With such a big and growing ecosystem, it’s almost impossible not to have a naming collision!

Leave a Comment

Let’s work together.

Connect with us to discuss your next project.