If you sell a WordPress product, then you’ve probably had a perspective customer ask if they could test it out first or if you have a demo available. Recently, we realized that our demo of Ninja Forms wasn’t working properly. Also, none of the plugins or extensions were up to date. We currently have 28 extensions plus Ninja Forms itself, so let’s just say keeping them all updated can be a difficult endeavour.
Challenges with demo sites
- They have to be kept up to date just like any other site. Let’s tell the truth; although demo sites can be great marketing tools, they often get put at the bottom our priority list. We need something we can set and forget.
- Users need to be able to make changes, and our demo needs to maintain consistent, testable data. We need a way to reset the database regularly to a pristine copy. This way, users can do all the testing that they want without any of their changes “sticking” to the database.
- The demo should be running the latest stable versions of our products. We need a system that will auto update core or any plugins or themes. This can seem at odds with the teflon database, so this needs to be automatic and not a pain in the rear.
- Sometimes the demo data has to be modified or added to. We need to be able to thaw the database, putting the site into an update mode. This way we can make content and setting changes, and then freeze the database in this new state as our new pristine copy. If this isn’t easy, it is likely to not get updated very often.
- Users don’t need to have access to everything within the WordPress admin. To fully test our plugins, users should be able to login as both an admin and a subscriber. Of course, we don’t want these admins being able to access everything within the wp-admin. Something that we can use to limit what admins have access to is a must.
We are currently working on a plugin that will accomplish all of the above and be super easy to set-up. What are your thoughts? Anything we’re missing?